Merge branch 'master' into upstream-merge-13339

This commit is contained in:
BlackMajor
2022-07-19 18:43:41 +12:00
committed by GitHub
71 changed files with 347 additions and 10 deletions

View File

@@ -291,3 +291,18 @@
var/list/keyboard_sound = list ('sound/effects/keyboard/keyboard1.ogg','sound/effects/keyboard/keyboard2.ogg','sound/effects/keyboard/keyboard3.ogg', 'sound/effects/keyboard/keyboard4.ogg') var/list/keyboard_sound = list ('sound/effects/keyboard/keyboard1.ogg','sound/effects/keyboard/keyboard2.ogg','sound/effects/keyboard/keyboard3.ogg', 'sound/effects/keyboard/keyboard4.ogg')
var/list/bodyfall_sound = list('sound/effects/bodyfall1.ogg','sound/effects/bodyfall2.ogg','sound/effects/bodyfall3.ogg','sound/effects/bodyfall4.ogg') var/list/bodyfall_sound = list('sound/effects/bodyfall1.ogg','sound/effects/bodyfall2.ogg','sound/effects/bodyfall3.ogg','sound/effects/bodyfall4.ogg')
var/list/teppi_sound = list('sound/voice/teppi/gyooh1.ogg', 'sound/voice/teppi/gyooh2.ogg', 'sound/voice/teppi/gyooh3.ogg', 'sound/voice/teppi/gyooh4.ogg', 'sound/voice/teppi/gyooh5.ogg', 'sound/voice/teppi/gyooh6.ogg', 'sound/voice/teppi/snoot1.ogg', 'sound/voice/teppi/snoot2.ogg') var/list/teppi_sound = list('sound/voice/teppi/gyooh1.ogg', 'sound/voice/teppi/gyooh2.ogg', 'sound/voice/teppi/gyooh3.ogg', 'sound/voice/teppi/gyooh4.ogg', 'sound/voice/teppi/gyooh5.ogg', 'sound/voice/teppi/gyooh6.ogg', 'sound/voice/teppi/snoot1.ogg', 'sound/voice/teppi/snoot2.ogg')
var/list/talk_sound = list('sound/talksounds/a.ogg','sound/talksounds/b.ogg','sound/talksounds/c.ogg','sound/talksounds/d.ogg','sound/talksounds/e.ogg','sound/talksounds/f.ogg','sound/talksounds/g.ogg','sound/talksounds/h.ogg')
var/list/emote_sound = list('sound/talksounds/me_a.ogg','sound/talksounds/me_b.ogg','sound/talksounds/me_c.ogg','sound/talksounds/me_d.ogg','sound/talksounds/me_e.ogg','sound/talksounds/me_f.ogg')
var/list/goon_speak_one_sound = list('sound/talksounds/goon/speak_1.ogg', 'sound/talksounds/goon/speak_1_ask.ogg', 'sound/talksounds/goon/speak_1_exclaim.ogg')
var/list/goon_speak_two_sound = list('sound/talksounds/goon/speak_2.ogg', 'sound/talksounds/goon/speak_2_ask.ogg', 'sound/talksounds/goon/speak_2_exclaim.ogg')
var/list/goon_speak_three_sound = list('sound/talksounds/goon/speak_3.ogg', 'sound/talksounds/goon/speak_3_ask.ogg', 'sound/talksounds/goon/speak_3_exclaim.ogg')
var/list/goon_speak_four_sound = list('sound/talksounds/goon/speak_4.ogg', 'sound/talksounds/goon/speak_4_ask.ogg', 'sound/talksounds/goon/speak_4_exclaim.ogg')
var/list/goon_speak_blub_sound = list('sound/talksounds/goon/blub.ogg', 'sound/talksounds/goon/blub_ask.ogg', 'sound/talksounds/goon/blub_exclaim.ogg')
var/list/goon_speak_bottalk_sound = list('sound/talksounds/goon/bottalk_1.ogg', 'sound/talksounds/goon/bottalk_2.ogg', 'sound/talksounds/goon/bottalk_3.ogg', 'sound/talksounds/goon/bottalk_4.wav')
var/list/goon_speak_buwoo_sound = list('sound/talksounds/goon/buwoo.ogg', 'sound/talksounds/goon/buwoo_ask.ogg', 'sound/talksounds/goon/buwoo_exclaim.ogg')
var/list/goon_speak_cow_sound = list('sound/talksounds/goon/cow.ogg', 'sound/talksounds/goon/cow_ask.ogg', 'sound/talksounds/goon/cow_exclaim.ogg')
var/list/goon_speak_lizard_sound = list('sound/talksounds/goon/lizard.ogg', 'sound/talksounds/goon/lizard_ask.ogg', 'sound/talksounds/goon/lizard_exclaim.ogg')
var/list/goon_speak_pug_sound = list('sound/talksounds/goon/pug.ogg', 'sound/talksounds/goon/pug_ask.ogg', 'sound/talksounds/goon/pug_exclaim.ogg')
var/list/goon_speak_pugg_sound = list('sound/talksounds/goon/pugg.ogg', 'sound/talksounds/goon/pugg_ask.ogg', 'sound/talksounds/goon/pugg_exclaim.ogg')
var/list/goon_speak_roach_sound = list('sound/talksounds/goon/roach.ogg', 'sound/talksounds/goon/roach_ask.ogg', 'sound/talksounds/goon/roach_exclaim.ogg')
var/list/goon_speak_skelly_sound = list('sound/talksounds/goon/skelly.ogg', 'sound/talksounds/goon/skelly_ask.ogg', 'sound/talksounds/goon/skelly_exclaim.ogg')

View File

@@ -95,7 +95,7 @@ var/list/_client_preferences_by_type
key = "DIGEST_NOISES" key = "DIGEST_NOISES"
enabled_description = "Noisy" enabled_description = "Noisy"
disabled_description = "Silent" disabled_description = "Silent"
/datum/client_preference/belch_noises // Belching noises - pref toggle for 'em /datum/client_preference/belch_noises // Belching noises - pref toggle for 'em
description = "Burping" description = "Burping"
key = "BELCH_NOISES" key = "BELCH_NOISES"
@@ -301,6 +301,30 @@ var/list/_client_preferences_by_type
enabled_description = "On" enabled_description = "On"
disabled_description = "Off" disabled_description = "Off"
/datum/client_preference/say_sounds
description = "Say Sounds"
key = "SAY_SOUNDS"
enabled_description = "On"
disabled_description = "Off"
/datum/client_preference/emote_sounds
description = "Me Sounds"
key = "EMOTE_SOUNDS"
enabled_description = "On"
disabled_description = "Off"
/datum/client_preference/whisper_sounds
description = "Whisper Sounds"
key = "WHISPER_SOUNDS"
enabled_description = "On"
disabled_description = "Off"
/datum/client_preference/subtle_sounds
description = "Subtle Sounds"
key = "SUBTLE_SOUNDS"
enabled_description = "On"
disabled_description = "Off"
/datum/client_preference/runechat_mob /datum/client_preference/runechat_mob
description = "Runechat (Mobs)" description = "Runechat (Mobs)"
key = "RUNECHAT_MOB" key = "RUNECHAT_MOB"

View File

@@ -3,6 +3,8 @@
#define WEIGHT_MAX 500 #define WEIGHT_MAX 500
#define WEIGHT_CHANGE_MIN 0 #define WEIGHT_CHANGE_MIN 0
#define WEIGHT_CHANGE_MAX 100 #define WEIGHT_CHANGE_MAX 100
#define MAX_VOICE_FREQ 70000
#define MIN_VOICE_FREQ 15000
// Define a place to save in character setup // Define a place to save in character setup
/datum/preferences /datum/preferences
@@ -12,6 +14,8 @@
var/weight_gain = 100 // Weight gain rate. var/weight_gain = 100 // Weight gain rate.
var/weight_loss = 50 // Weight loss rate. var/weight_loss = 50 // Weight loss rate.
var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon. Default sharp. var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon. Default sharp.
var/voice_freq = 0
var/voice_sound = "beep-boop"
// Definition of the stuff for Sizing // Definition of the stuff for Sizing
/datum/category_item/player_setup_item/vore/size /datum/category_item/player_setup_item/vore/size
@@ -24,6 +28,8 @@
S["weight_gain"] >> pref.weight_gain S["weight_gain"] >> pref.weight_gain
S["weight_loss"] >> pref.weight_loss S["weight_loss"] >> pref.weight_loss
S["fuzzy"] >> pref.fuzzy S["fuzzy"] >> pref.fuzzy
S["voice_freq"] >> pref.voice_freq
S["voice_sound"] >> pref.voice_sound
/datum/category_item/player_setup_item/vore/size/save_character(var/savefile/S) /datum/category_item/player_setup_item/vore/size/save_character(var/savefile/S)
S["size_multiplier"] << pref.size_multiplier S["size_multiplier"] << pref.size_multiplier
@@ -31,12 +37,17 @@
S["weight_gain"] << pref.weight_gain S["weight_gain"] << pref.weight_gain
S["weight_loss"] << pref.weight_loss S["weight_loss"] << pref.weight_loss
S["fuzzy"] << pref.fuzzy S["fuzzy"] << pref.fuzzy
S["voice_freq"] << pref.voice_freq
S["voice_sound"] << pref.voice_sound
/datum/category_item/player_setup_item/vore/size/sanitize_character() /datum/category_item/player_setup_item/vore/size/sanitize_character()
pref.weight_vr = sanitize_integer(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX, initial(pref.weight_vr)) pref.weight_vr = sanitize_integer(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX, initial(pref.weight_vr))
pref.weight_gain = sanitize_integer(pref.weight_gain, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_gain)) pref.weight_gain = sanitize_integer(pref.weight_gain, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_gain))
pref.weight_loss = sanitize_integer(pref.weight_loss, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_loss)) pref.weight_loss = sanitize_integer(pref.weight_loss, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_loss))
pref.fuzzy = sanitize_integer(pref.fuzzy, 0, 1, initial(pref.fuzzy)) pref.fuzzy = sanitize_integer(pref.fuzzy, 0, 1, initial(pref.fuzzy))
if(pref.voice_freq != 0)
pref.voice_freq = sanitize_integer(pref.voice_freq, MIN_VOICE_FREQ, MAX_VOICE_FREQ, initial(pref.fuzzy))
if(pref.size_multiplier == null || pref.size_multiplier < RESIZE_TINY || pref.size_multiplier > RESIZE_HUGE) if(pref.size_multiplier == null || pref.size_multiplier < RESIZE_TINY || pref.size_multiplier > RESIZE_HUGE)
pref.size_multiplier = initial(pref.size_multiplier) pref.size_multiplier = initial(pref.size_multiplier)
@@ -45,12 +56,47 @@
character.weight_gain = pref.weight_gain character.weight_gain = pref.weight_gain
character.weight_loss = pref.weight_loss character.weight_loss = pref.weight_loss
character.fuzzy = pref.fuzzy character.fuzzy = pref.fuzzy
character.voice_freq = pref.voice_freq
character.resize(pref.size_multiplier, animate = FALSE, ignore_prefs = TRUE) character.resize(pref.size_multiplier, animate = FALSE, ignore_prefs = TRUE)
if(!pref.voice_sound)
character.voice_sounds_list = talk_sound
else
switch(pref.voice_sound)
if("beep-boop")
character.voice_sounds_list = talk_sound
if("goon speak 1")
character.voice_sounds_list = goon_speak_one_sound
if("goon speak 2")
character.voice_sounds_list = goon_speak_two_sound
if("goon speak 3")
character.voice_sounds_list = goon_speak_three_sound
if("goon speak 4")
character.voice_sounds_list = goon_speak_four_sound
if("goon speak blub")
character.voice_sounds_list = goon_speak_blub_sound
if("goon speak bottalk")
character.voice_sounds_list = goon_speak_bottalk_sound
if("goon speak buwoo")
character.voice_sounds_list = goon_speak_buwoo_sound
if("goon speak cow")
character.voice_sounds_list = goon_speak_cow_sound
if("goon speak lizard")
character.voice_sounds_list = goon_speak_lizard_sound
if("goon speak pug")
character.voice_sounds_list = goon_speak_pug_sound
if("goon speak pugg")
character.voice_sounds_list = goon_speak_pugg_sound
if("goon speak roach")
character.voice_sounds_list = goon_speak_roach_sound
if("goon speak skelly")
character.voice_sounds_list = goon_speak_skelly_sound
/datum/category_item/player_setup_item/vore/size/content(var/mob/user) /datum/category_item/player_setup_item/vore/size/content(var/mob/user)
. += "<br>" . += "<br>"
. += "<b>Scale:</b> <a href='?src=\ref[src];size_multiplier=1'>[round(pref.size_multiplier*100)]%</a><br>" . += "<b>Scale:</b> <a href='?src=\ref[src];size_multiplier=1'>[round(pref.size_multiplier*100)]%</a><br>"
. += "<b>Scaled Appearance:</b> <a [pref.fuzzy ? "" : ""] href='?src=\ref[src];toggle_fuzzy=1'><b>[pref.fuzzy ? "Fuzzy" : "Sharp"]</b></a><br>" . += "<b>Scaled Appearance:</b> <a [pref.fuzzy ? "" : ""] href='?src=\ref[src];toggle_fuzzy=1'><b>[pref.fuzzy ? "Fuzzy" : "Sharp"]</b></a><br>"
. += "<b>Voice Frequency:</b> <a href='?src=\ref[src];voice_freq=1'>[pref.voice_freq]</a><br>"
. += "<b>Voice Sounds:</b> <a href='?src=\ref[src];voice_sounds_list=1'>[pref.voice_sound]</a><br>"
. += "<br>" . += "<br>"
. += "<b>Relative Weight:</b> <a href='?src=\ref[src];weight=1'>[pref.weight_vr]</a><br>" . += "<b>Relative Weight:</b> <a href='?src=\ref[src];weight=1'>[pref.weight_vr]</a><br>"
. += "<b>Weight Gain Rate:</b> <a href='?src=\ref[src];weight_gain=1'>[pref.weight_gain]</a><br>" . += "<b>Weight Gain Rate:</b> <a href='?src=\ref[src];weight_gain=1'>[pref.weight_gain]</a><br>"
@@ -104,4 +150,43 @@
pref.weight_loss = round(text2num(weight_loss_rate),1) pref.weight_loss = round(text2num(weight_loss_rate),1)
return TOPIC_REFRESH return TOPIC_REFRESH
else if(href_list["voice_freq"])
var/list/preset_voice_freqs = list("high" = MAX_VOICE_FREQ, "middle-high" = 56250, "middle" = 42500, "middle-low"= 28750, "low" = MIN_VOICE_FREQ, "custom" = 1, "random" = 0)
var/choice = tgui_input_list(usr, "What would you like to set your voice frequency to? ([MIN_VOICE_FREQ] - [MAX_VOICE_FREQ])", "Voice Frequency", preset_voice_freqs)
if(!choice)
return
choice = preset_voice_freqs[choice]
if(choice == 0)
pref.voice_freq = choice
return TOPIC_REFRESH
else if(choice == 1)
choice = tgui_input_number(user, "Choose your character's voice frequency, ranging from [MIN_VOICE_FREQ] to [MAX_VOICE_FREQ]", "Custom Voice Frequency", null, MAX_VOICE_FREQ, MIN_VOICE_FREQ, round_value = TRUE)
if(choice > MAX_VOICE_FREQ)
choice = MAX_VOICE_FREQ
else if(choice < MIN_VOICE_FREQ)
choice = MIN_VOICE_FREQ
pref.voice_freq = choice
return TOPIC_REFRESH
else if(href_list["voice_sounds_list"])
var/list/possible_voice_types = list(
"beep-boop",
"goon speak 1",
"goon speak 2",
"goon speak 3",
"goon speak 4",
"goon speak blub",
"goon speak bottalk",
"goon speak buwoo",
"goon speak cow",
"goon speak lizard",
"goon speak pug",
"goon speak pugg",
"goon speak roach",
"goon speak skelly")
var/choice = tgui_input_list(usr, "Which set of sounds would you like to use for your character's speech sounds?", "Voice Sounds", possible_voice_types)
if(!choice)
pref.voice_sound = "beep-boop"
else
pref.voice_sound = choice
return ..(); return ..();

View File

@@ -406,6 +406,58 @@
feedback_add_details("admin_verb","TRadioSounds") feedback_add_details("admin_verb","TRadioSounds")
/client/verb/toggle_say_sounds()
set name = "Sound Toggle: Say"
set category = "Preferences"
set desc = "Toggle hearing a sound when somebody speaks using say."
var/pref_path = /datum/client_preference/say_sounds
toggle_preference(pref_path)
SScharacter_setup.queue_preferences_save(prefs)
to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/say_sounds)) ? "hear" : "not hear"] say sounds.")
feedback_add_details("admin_verb","TSaySounds")
/client/verb/toggle_emote_sounds()
set name = "Sound Toggle: Me"
set category = "Preferences"
set desc = "Toggle hearing a sound when somebody speaks using me ."
var/pref_path = /datum/client_preference/emote_sounds
toggle_preference(pref_path)
SScharacter_setup.queue_preferences_save(prefs)
to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/emote_sounds)) ? "hear" : "not hear"] me sounds.")
feedback_add_details("admin_verb","TMeSounds")
/client/verb/toggle_whisper_sounds()
set name = "Sound Toggle: Whisper"
set category = "Preferences"
set desc = "Toggle hearing a sound when somebody speaks using whisper."
var/pref_path = /datum/client_preference/whisper_sounds
toggle_preference(pref_path)
SScharacter_setup.queue_preferences_save(prefs)
to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/whisper_sounds)) ? "hear" : "not hear"] whisper sounds.")
feedback_add_details("admin_verb","TWhisperSounds")
/client/verb/toggle_subtle_sounds()
set name = "Toggle Subtle Sounds"
set category = "Preferences"
set desc = "Toggle hearing a sound when somebody uses subtle."
var/pref_path = /datum/client_preference/subtle_sounds
toggle_preference(pref_path)
SScharacter_setup.queue_preferences_save(prefs)
to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/subtle_sounds)) ? "hear" : "not hear"] subtle sounds.")
feedback_add_details("admin_verb","TSubtleSounds")
// Not attached to a pref datum because those are strict binary toggles // Not attached to a pref datum because those are strict binary toggles
/client/verb/toggle_examine_mode() /client/verb/toggle_examine_mode()
set name = "Toggle Examine Mode" set name = "Toggle Examine Mode"

View File

@@ -109,7 +109,7 @@
/obj/item/clothing/under/hyperfiber/bluespace/mob_can_unequip(mob/M, slot, disable_warning = 0) /obj/item/clothing/under/hyperfiber/bluespace/mob_can_unequip(mob/M, slot, disable_warning = 0)
. = ..() . = ..()
if(. && ishuman(M) && original_size) if(. && ishuman(M) && original_size && !disable_warning)
var/mob/living/carbon/human/H = M var/mob/living/carbon/human/H = M
H.resize(original_size, ignore_prefs = TRUE) H.resize(original_size, ignore_prefs = TRUE)
original_size = null original_size = null
@@ -129,7 +129,7 @@
/obj/item/clothing/gloves/bluespace/mob_can_equip(mob/M, gloves, disable_warning = 0) /obj/item/clothing/gloves/bluespace/mob_can_equip(mob/M, gloves, disable_warning = 0)
. = ..() . = ..()
if(. && ishuman(M)) if(. && ishuman(M) && !disable_warning)
var/mob/living/carbon/human/H = M var/mob/living/carbon/human/H = M
if(!H.resizable) if(!H.resizable)
return return
@@ -145,7 +145,7 @@
/obj/item/clothing/gloves/bluespace/mob_can_unequip(mob/M, gloves, disable_warning = 0) /obj/item/clothing/gloves/bluespace/mob_can_unequip(mob/M, gloves, disable_warning = 0)
. = ..() . = ..()
if(. && ishuman(M) && original_size) if(. && ishuman(M) && original_size && !disable_warning)
var/mob/living/carbon/human/H = M var/mob/living/carbon/human/H = M
if(!H.resizable) if(!H.resizable)
return return

View File

@@ -191,16 +191,21 @@
if(message) if(message)
message = encode_html_emphasis(message) message = encode_html_emphasis(message)
var/ourfreq = null
if(isliving(src))
var/mob/living/L = src
if(L.voice_freq > 0 )
ourfreq = L.voice_freq
// Hearing gasp and such every five seconds is not good emotes were not global for a reason. // Hearing gasp and such every five seconds is not good emotes were not global for a reason.
// Maybe some people are okay with that. // Maybe some people are okay with that.
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
if(!T) return if(!T) return
<<<<<<< HEAD
=======
if(client) if(client)
playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/emote_sounds) playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/emote_sounds)
>>>>>>> 26ae8528a9... Merge pull request #13339 from Very-Soft/saysound
var/list/in_range = get_mobs_and_objs_in_view_fast(T,range,2,remote_ghosts = client ? TRUE : FALSE) var/list/in_range = get_mobs_and_objs_in_view_fast(T,range,2,remote_ghosts = client ? TRUE : FALSE)
var/list/m_viewers = in_range["mobs"] var/list/m_viewers = in_range["mobs"]
var/list/o_viewers = in_range["objs"] var/list/o_viewers = in_range["objs"]

View File

@@ -33,4 +33,75 @@
to_chat(usr, "OOC notes updated.") to_chat(usr, "OOC notes updated.")
log_admin("[key_name(usr)] updated their OOC notes mid-round.") log_admin("[key_name(usr)] updated their OOC notes mid-round.")
/mob/living/verb/set_voice_freq()
set name = "Set Voice Frequency"
set desc = "Sets your voice frequency to be higher or lower pitched!"
set category = "OOC"
var/list/preset_voice_freqs = list("high" = MAX_VOICE_FREQ, "middle-high" = 56250, "middle" = 425000, "middle-low"= 28750, "low" = MIN_VOICE_FREQ, "custom" = 1, "random" = 0)
var/choice = tgui_input_list(src, "What would you like to set your voice frequency to?", "Voice Frequency", preset_voice_freqs)
if(!choice)
return
choice = preset_voice_freqs[choice]
if(choice == 0)
voice_freq = choice
return
else if(choice == 1)
choice = tgui_input_number(src, "Choose your character's voice frequency, ranging from [MIN_VOICE_FREQ] to [MAX_VOICE_FREQ]", "Custom Voice Frequency", null, MAX_VOICE_FREQ, MIN_VOICE_FREQ, round_value = TRUE)
else if(choice > MAX_VOICE_FREQ)
choice = MAX_VOICE_FREQ
else if(choice < MIN_VOICE_FREQ)
choice = MIN_VOICE_FREQ
voice_freq = choice
/mob/living/verb/set_voice_type()
set name = "Set Voice Type"
set desc = "Sets your voice style!"
set category = "OOC"
var/list/possible_voice_types = list(
"beep-boop",
"goon speak 1",
"goon speak 2",
"goon speak 3",
"goon speak 4",
"goon speak blub",
"goon speak bottalk",
"goon speak buwoo",
"goon speak cow",
"goon speak lizard",
"goon speak pug",
"goon speak pugg",
"goon speak roach",
"goon speak skelly")
var/choice = tgui_input_list(usr, "Which set of sounds would you like to use for your character's speech sounds?", "Voice Sounds", possible_voice_types)
if(!choice)
voice_sounds_list = talk_sound
switch(choice)
if("beep-boop")
voice_sounds_list = talk_sound
if("goon speak 1")
voice_sounds_list = goon_speak_one_sound
if("goon speak 2")
voice_sounds_list = goon_speak_two_sound
if("goon speak 3")
voice_sounds_list = goon_speak_three_sound
if("goon speak 4")
voice_sounds_list = goon_speak_four_sound
if("goon speak blub")
voice_sounds_list = goon_speak_blub_sound
if("goon speak bottalk")
voice_sounds_list = goon_speak_bottalk_sound
if("goon speak buwoo")
voice_sounds_list = goon_speak_buwoo_sound
if("goon speak cow")
voice_sounds_list = goon_speak_cow_sound
if("goon speak lizard")
voice_sounds_list = goon_speak_lizard_sound
if("goon speak pug")
voice_sounds_list = goon_speak_pug_sound
if("goon speak pugg")
voice_sounds_list = goon_speak_pugg_sound
if("goon speak roach")
voice_sounds_list = goon_speak_roach_sound
if("goon speak skelly")
voice_sounds_list = goon_speak_skelly_sound

View File

@@ -13,13 +13,13 @@
to_chat(src,"<span class='notice'>Mob AI disabled while you are controlling the mob.</span>") to_chat(src,"<span class='notice'>Mob AI disabled while you are controlling the mob.</span>")
AddComponent(/datum/component/character_setup) AddComponent(/datum/component/character_setup)
// Vore stuff // Vore stuff
verbs |= /mob/living/proc/escapeOOC verbs |= /mob/living/proc/escapeOOC
verbs |= /mob/living/proc/lick verbs |= /mob/living/proc/lick
verbs |= /mob/living/proc/smell verbs |= /mob/living/proc/smell
verbs |= /mob/living/proc/switch_scaling verbs |= /mob/living/proc/switch_scaling
if(!no_vore) if(!no_vore)
verbs |= /mob/living/proc/vorebelly_printout verbs |= /mob/living/proc/vorebelly_printout
if(!vorePanel) if(!vorePanel)
@@ -29,4 +29,40 @@
verbs += /mob/living/proc/vore_check_reagents //CHOMP If mob doesnt have bellies it cant use this verb for anything verbs += /mob/living/proc/vore_check_reagents //CHOMP If mob doesnt have bellies it cant use this verb for anything
verbs += /mob/living/proc/vore_bellyrub //CHOMP If mob doesnt have bellies it probably won't be needing this anyway verbs += /mob/living/proc/vore_bellyrub //CHOMP If mob doesnt have bellies it probably won't be needing this anyway
//VOREStation Add Start
if(!voice_sounds_list.len || !voice_sounds_list)
if(client.prefs.voice_sound)
var/prefsound = client.prefs.voice_sound
switch(prefsound)
if("beep-boop")
voice_sounds_list = talk_sound
if("goon speak 1")
voice_sounds_list = goon_speak_one_sound
if("goon speak 2")
voice_sounds_list = goon_speak_two_sound
if("goon speak 3")
voice_sounds_list = goon_speak_three_sound
if("goon speak 4")
voice_sounds_list = goon_speak_four_sound
if("goon speak blub")
voice_sounds_list = goon_speak_blub_sound
if("goon speak bottalk")
voice_sounds_list = goon_speak_bottalk_sound
if("goon speak buwoo")
voice_sounds_list = goon_speak_buwoo_sound
if("goon speak cow")
voice_sounds_list = goon_speak_cow_sound
if("goon speak lizard")
voice_sounds_list = goon_speak_lizard_sound
if("goon speak pug")
voice_sounds_list = goon_speak_pug_sound
if("goon speak pugg")
voice_sounds_list = goon_speak_pugg_sound
if("goon speak roach")
voice_sounds_list = goon_speak_roach_sound
if("goon speak skelly")
voice_sounds_list = goon_speak_skelly_sound
else
voice_sounds_list = talk_sound
//VOREStation Add End
return . return .

View File

@@ -259,6 +259,9 @@ var/list/channel_to_radio_key = new
//Default range and italics, may be overridden past here //Default range and italics, may be overridden past here
var/message_range = world.view var/message_range = world.view
var/italics = 0 var/italics = 0
var/do_sound = TRUE
if(!voice_sounds_list || !voice_sounds_list.len)
do_sound = FALSE
//Speaking into radios //Speaking into radios
if(used_radios.len) if(used_radios.len)
@@ -302,6 +305,7 @@ var/list/channel_to_radio_key = new
for(var/datum/multilingual_say_piece/S in message_pieces) for(var/datum/multilingual_say_piece/S in message_pieces)
if((S.speaking.flags & NONVERBAL) || (S.speaking.flags & INAUDIBLE)) if((S.speaking.flags & NONVERBAL) || (S.speaking.flags & INAUDIBLE))
custom_emote(1, "[pick(S.speaking.signlang_verb)].") custom_emote(1, "[pick(S.speaking.signlang_verb)].")
do_sound = FALSE
//These will contain the main receivers of the message //These will contain the main receivers of the message
var/list/listening = list() var/list/listening = list()
@@ -398,12 +402,20 @@ var/list/channel_to_radio_key = new
C.images -= I C.images -= I
qdel(I) qdel(I)
var/ourfreq = null
if(voice_freq > 0 )
ourfreq = voice_freq
//Log the message to file //Log the message to file
if(message_mode) if(message_mode)
message = "([message_mode == "headset" ? "Common" : capitalize(message_mode)]) [message]" //Adds radio keys used if available message = "([message_mode == "headset" ? "Common" : capitalize(message_mode)]) [message]" //Adds radio keys used if available
if(whispering) if(whispering)
if(do_sound && message)
playsound(T, pick(voice_sounds_list), 25, TRUE, extrarange = -6, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/whisper_sounds)
log_whisper(message, src) log_whisper(message, src)
else else
if(do_sound && message)
playsound(T, pick(voice_sounds_list), 75, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/say_sounds)
log_say(message, src) log_say(message, src)
return 1 return 1

View File

@@ -145,6 +145,7 @@
// Vorestation Edit: Meta Info for pAI // Vorestation Edit: Meta Info for pAI
if (client.prefs) if (client.prefs)
ooc_notes = client.prefs.metadata ooc_notes = client.prefs.metadata
src << sound('sound/effects/pai_login.ogg', volume = 75) //VOREStation Add
// this function shows the information about being silenced as a pAI in the Status panel // this function shows the information about being silenced as a pAI in the Status panel
/mob/living/silicon/pai/proc/show_silenced() /mob/living/silicon/pai/proc/show_silenced()

View File

@@ -67,6 +67,8 @@
else else
spawn(0) spawn(0)
M.show_message(message, 2) M.show_message(message, 2)
if(M.is_preference_enabled(/datum/client_preference/subtle_sounds))
M << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
for(var/obj/O as anything in vis_objs) for(var/obj/O as anything in vis_objs)
spawn(0) spawn(0)
@@ -145,10 +147,14 @@
else else
pb = db.pred_body pb = db.pred_body
to_chat(pb, "<span class='changeling'>The captive mind of \the [M] thinks, \"[message]\"</span>") //To our pred if dominated brain to_chat(pb, "<span class='changeling'>The captive mind of \the [M] thinks, \"[message]\"</span>") //To our pred if dominated brain
if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds))
pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
else if(M.absorbed && isbelly(M.loc)) else if(M.absorbed && isbelly(M.loc))
pb = M.loc.loc pb = M.loc.loc
to_chat(pb, "<span class='changeling'>\The [M] thinks, \"[message]\"</span>") //To our pred if absorbed to_chat(pb, "<span class='changeling'>\The [M] thinks, \"[message]\"</span>") //To our pred if absorbed
if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds))
pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
if(pb) //We are prey, let's do the prey thing. if(pb) //We are prey, let's do the prey thing.
@@ -157,11 +163,15 @@
if(istype(I, /mob/living/dominated_brain) && I != M) if(istype(I, /mob/living/dominated_brain) && I != M)
var/mob/living/dominated_brain/db = I var/mob/living/dominated_brain/db = I
to_chat(db, "<span class='changeling'>The captive mind of \the [M] thinks, \"[message]\"</span>") //To any dominated brains in the pred to_chat(db, "<span class='changeling'>The captive mind of \the [M] thinks, \"[message]\"</span>") //To any dominated brains in the pred
if(db.is_preference_enabled(/datum/client_preference/subtle_sounds))
db << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
for(var/B in pb.vore_organs) for(var/B in pb.vore_organs)
for(var/mob/living/L in B) for(var/mob/living/L in B)
if(L.absorbed && L != M && L.ckey) if(L.absorbed && L != M && L.ckey)
to_chat(L, "<span class='changeling'>\The [M] thinks, \"[message]\"</span>") //To any absorbed people in the pred to_chat(L, "<span class='changeling'>\The [M] thinks, \"[message]\"</span>") //To any absorbed people in the pred
if(L.is_preference_enabled(/datum/client_preference/subtle_sounds))
L << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
//Let's also check and see if there's anyone inside of us to send the message to. //Let's also check and see if there's anyone inside of us to send the message to.
@@ -169,18 +179,26 @@
if(istype(I, /mob/living/dominated_brain)) if(istype(I, /mob/living/dominated_brain))
var/mob/living/dominated_brain/db = I var/mob/living/dominated_brain/db = I
to_chat(db, "<span class='changeling'><b>\The [M] thinks, \"[message]\"</b></span>") //To any dominated brains inside us to_chat(db, "<span class='changeling'><b>\The [M] thinks, \"[message]\"</b></span>") //To any dominated brains inside us
if(db.is_preference_enabled(/datum/client_preference/subtle_sounds))
db << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
for(var/B in M.vore_organs) for(var/B in M.vore_organs)
for(var/mob/living/L in B) for(var/mob/living/L in B)
if(L.absorbed) if(L.absorbed)
to_chat(L, "<span class='changeling'><b>\The [M] thinks, \"[message]\"</b></span>") //To any absorbed people inside us to_chat(L, "<span class='changeling'><b>\The [M] thinks, \"[message]\"</b></span>") //To any absorbed people inside us
if(L.is_preference_enabled(/datum/client_preference/subtle_sounds))
L << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
if(f) //We found someone to send the message to if(f) //We found someone to send the message to
if(pb) if(pb)
to_chat(M, "<span class='changeling'>You think \"[message]\"</span>") //To us if we are the prey to_chat(M, "<span class='changeling'>You think \"[message]\"</span>") //To us if we are the prey
if(M.is_preference_enabled(/datum/client_preference/subtle_sounds))
M << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
else else
to_chat(M, "<span class='changeling'><b>You think \"[message]\"</b></span>") //To us if we are the pred to_chat(M, "<span class='changeling'><b>You think \"[message]\"</b></span>") //To us if we are the pred
if(M.is_preference_enabled(/datum/client_preference/subtle_sounds))
M << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
for (var/mob/G in player_list) for (var/mob/G in player_list)
if (istype(G, /mob/new_player)) if (istype(G, /mob/new_player))
continue continue
@@ -225,11 +243,15 @@
else else
pb = db.pred_body pb = db.pred_body
to_chat(pb, "<span class='changeling'>\The [M] [message]</span>") //To our pred if dominated brain to_chat(pb, "<span class='changeling'>\The [M] [message]</span>") //To our pred if dominated brain
if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds))
pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
else if(M.absorbed && isbelly(M.loc)) else if(M.absorbed && isbelly(M.loc))
pb = M.loc.loc pb = M.loc.loc
to_chat(pb, "<span class='changeling'>\The [M] [message]</span>") //To our pred if absorbed to_chat(pb, "<span class='changeling'>\The [M] [message]</span>") //To our pred if absorbed
if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds))
pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
if(pb) //We are prey, let's do the prey thing. if(pb) //We are prey, let's do the prey thing.
@@ -238,11 +260,15 @@
if(istype(I, /mob/living/dominated_brain) && I != M) if(istype(I, /mob/living/dominated_brain) && I != M)
var/mob/living/dominated_brain/db = I var/mob/living/dominated_brain/db = I
to_chat(db, "<span class='changeling'>\The [M] [message]</span>") //To any dominated brains in the pred to_chat(db, "<span class='changeling'>\The [M] [message]</span>") //To any dominated brains in the pred
if(db.is_preference_enabled(/datum/client_preference/subtle_sounds))
db << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
for(var/B in pb.vore_organs) for(var/B in pb.vore_organs)
for(var/mob/living/L in B) for(var/mob/living/L in B)
if(L.absorbed && L != M && L.ckey) if(L.absorbed && L != M && L.ckey)
to_chat(L, "<span class='changeling'>\The [M] [message]</span>") //To any absorbed people in the pred to_chat(L, "<span class='changeling'>\The [M] [message]</span>") //To any absorbed people in the pred
if(L.is_preference_enabled(/datum/client_preference/subtle_sounds))
L << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
//Let's also check and see if there's anyone inside of us to send the message to. //Let's also check and see if there's anyone inside of us to send the message to.
@@ -250,18 +276,26 @@
if(istype(I, /mob/living/dominated_brain)) if(istype(I, /mob/living/dominated_brain))
var/mob/living/dominated_brain/db = I var/mob/living/dominated_brain/db = I
to_chat(db, "<span class='changeling'><b>\The [M] [message]</b></span>") //To any dominated brains inside us to_chat(db, "<span class='changeling'><b>\The [M] [message]</b></span>") //To any dominated brains inside us
if(db.is_preference_enabled(/datum/client_preference/subtle_sounds))
db << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
for(var/B in M.vore_organs) for(var/B in M.vore_organs)
for(var/mob/living/L in B) for(var/mob/living/L in B)
if(L.absorbed) if(L.absorbed)
to_chat(L, "<span class='changeling'><b>\The [M] [message]</b></span>") //To any absorbed people inside us to_chat(L, "<span class='changeling'><b>\The [M] [message]</b></span>") //To any absorbed people inside us
if(L.is_preference_enabled(/datum/client_preference/subtle_sounds))
L << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
f = TRUE f = TRUE
if(f) //We found someone to send the message to if(f) //We found someone to send the message to
if(pb) if(pb)
to_chat(M, "<span class='changeling'>\The [M] [message]</span>") //To us if we are the prey to_chat(M, "<span class='changeling'>\The [M] [message]</span>") //To us if we are the prey
if(M.is_preference_enabled(/datum/client_preference/subtle_sounds))
M << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
else else
to_chat(M, "<span class='changeling'><b>\The [M] [message]</b></span>") //To us if we are the pred to_chat(M, "<span class='changeling'><b>\The [M] [message]</b></span>") //To us if we are the pred
if(M.is_preference_enabled(/datum/client_preference/subtle_sounds))
M << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
for (var/mob/G in player_list) for (var/mob/G in player_list)
if (istype(G, /mob/new_player)) if (istype(G, /mob/new_player))
continue continue

View File

@@ -30,6 +30,8 @@
var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr. var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr.
var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time. var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time.
var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon. var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon.
var/voice_freq = 0 // Preference for character voice frequency
var/list/voice_sounds_list = list() // The sound list containing our voice sounds!
var/permit_healbelly = TRUE var/permit_healbelly = TRUE
var/stumble_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway var/stumble_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
var/slip_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway var/slip_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway

BIN
sound/effects/pai_login.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/a.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/b.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/c.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/d.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/e.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/f.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/g.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
sound/talksounds/h.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/me_a.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/me_b.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/me_c.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/me_d.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/me_e.ogg Normal file

Binary file not shown.

BIN
sound/talksounds/me_f.ogg Normal file

Binary file not shown.

Binary file not shown.