mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-30 00:35:45 +01:00
Sound Update: Pain/Scream/Gasp/Death Sounds
This PR adds the following sounds; Death sounds Scream sounds Pain sounds Gasp sounds The sounds are organized into a category under character setup - navigate to the VORE tab and select one based on your preference. If Unset, or not chosen, it will default to whatever the icon base is for your species - for instance, Vulpkanin will get the Canine sounds. Sounds are grouped into 4 major lists so far, with plans for more once I get more files; Canine (Scream/Gasp/Death/Pain) Feline (Scream/Gasp/Death/Pain) Cervine (Scream/Death only) Generic/Human (Scream/Gasp/Death/Pain) Vulpkanin use Canine sounds. Tajaran use Feline. Humans get Generic/Human. Cervine is unset on any species, allowed to be taken by customs. Vox have a pain sound. This also enables **pain** emotes. These can be manually done with *pain, or triggered automatically on taking an injury. The pain trigger respects species pain mods - for instance, if you have Major Pain Tolerance, you'll hear yourself growl in pain far less than someone who has Intolerance. Pain is **not** triggered by spicy food or hallucinations, as those two add halloss on directly. Only effects that apply damage will add on pain. You can test out these sounds in the Character Setup panel. See [here](https://streamable.com/o9wr9g), and here:  A demonstration of human sounds is available [here](https://streamable.com/hqwpel). Canine sounds [here](https://streamable.com/41d0oj) Demonstrations of it during combat [here](https://streamable.com/y4nxea) and [here](https://streamable.com/gj2gl3). These can be muted by navigating to Sound and setting the Mob Injury Sounds variable, seen here:  Species that currently lack sounds have had their audible sounds disabled to prevent jarring human noises from playing on non-human species. This can be overridden upon request, but for now, it will serve as hopeful inspiration to encourage additional files.
This commit is contained in:
@@ -7,4 +7,22 @@
|
||||
emote_message_3p = "prbts."
|
||||
emote_message_1p_target = "You prbt at TARGET."
|
||||
emote_message_3p_target = "prbts at TARGET."
|
||||
emote_sound = 'sound/voice/prbt2.ogg'
|
||||
emote_sound = 'sound/voice/prbt2.ogg'
|
||||
|
||||
/decl/emote/audible/gasp/get_emote_sound(var/atom/user)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_gender() == FEMALE)
|
||||
return list(
|
||||
"sound" = H.species.female_gasp_sound,
|
||||
"vol" = 60,
|
||||
"exr" = 10,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
else
|
||||
return list(
|
||||
"sound" = H.species.male_gasp_sound,
|
||||
"vol" = 60,
|
||||
"exr" = 10,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/decl/emote/audible/pain
|
||||
key = "pain"
|
||||
emote_message_1p = "You yell in pain!"
|
||||
emote_message_3p = "yells in pain!"
|
||||
|
||||
/decl/emote/audible/pain/get_emote_message_1p(var/atom/user, var/atom/target, var/extra_params)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
return "You [pick(H.species.pain_verb_1p)] in pain!"
|
||||
. = ..()
|
||||
|
||||
/decl/emote/audible/pain/get_emote_message_3p(var/atom/user, var/atom/target, var/extra_params)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
return "[pick(H.species.pain_verb_3p)] in pain!"
|
||||
. = ..()
|
||||
|
||||
/decl/emote/audible/pain/get_emote_sound(var/atom/user)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_gender() == FEMALE)
|
||||
return list(
|
||||
"sound" = H.species.female_pain_sound,
|
||||
"vol" = 60,
|
||||
"exr" = 10,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
else
|
||||
return list(
|
||||
"sound" = H.species.male_pain_sound,
|
||||
"vol" = 60,
|
||||
"exr" = 10,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
@@ -19,6 +19,15 @@
|
||||
var/digi_allowed = FALSE
|
||||
var/vanity_base_fit //when shapeshifting using vanity_copy_to, this allows you to have add something so they can go back to their original species fit
|
||||
|
||||
male_scream_sound = list('modular_chomp/sound/voice/scream/generic/male/male_scream_1.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_2.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_3.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_4.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_5.ogg', 'modular_chomp/sound/voice/scream/generic/male/male_scream_6.ogg')
|
||||
female_scream_sound = list('modular_chomp/sound/voice/scream/generic/female/female_scream_1.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_2.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_3.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_4.ogg', 'modular_chomp/sound/voice/scream/generic/female/female_scream_5.ogg')
|
||||
var/male_gasp_sound = list('modular_chomp/sound/voice/gasp/generic/male/male_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/male/male_gasp2.ogg', 'modular_chomp/sound/voice/gasp/generic/male/male_gasp3.ogg')
|
||||
var/female_gasp_sound = list('modular_chomp/sound/voice/gasp/generic/female/female_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/female/female_gasp2.ogg')
|
||||
var/male_pain_sound = list('modular_chomp/sound/voice/pain/generic/male/male_pain_1.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_2.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_3.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_4.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_5.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_6.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_7.ogg', 'modular_chomp/sound/voice/pain/generic/male/male_pain_8.ogg')
|
||||
var/female_pain_sound = list('modular_chomp/sound/voice/pain/generic/female/female_pain_1.ogg', 'modular_chomp/sound/voice/pain/generic/female/female_pain_2.ogg', 'modular_chomp/sound/voice/pain/generic/female/female_pain_3.ogg')
|
||||
var/male_death_sound = list('modular_chomp/sound/voice/death/generic/male/male_death_1.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_2.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_3.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_4.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_5.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_6.ogg', 'modular_chomp/sound/voice/death/generic/male/male_death_7.ogg')
|
||||
var/female_death_sound = list('modular_chomp/sound/voice/death/generic/female/female_death_1.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_2.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_3.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_4.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_5.ogg', 'modular_chomp/sound/voice/death/generic/female/female_death_6.ogg')
|
||||
|
||||
// Handles non-standard eyes when using a species that utilizes a custom base icon set.
|
||||
// Eye data is stored in the head organ, and this needs to be handled specially.
|
||||
/datum/species/proc/handle_base_eyes(var/mob/living/carbon/human/H, var/custom_base)
|
||||
@@ -49,4 +58,4 @@
|
||||
/datum/species/handle_environment_special(var/mob/living/carbon/human/H)
|
||||
for(var/datum/trait/env_trait in env_traits)
|
||||
env_trait.handle_environment_special(H)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/datum/species/proc/copy_species_sounds(var/datum/species/S, var/species_sounds, var/custom_base)
|
||||
switch(species_sounds)
|
||||
if("Canine")
|
||||
S.male_scream_sound = canine_scream_sounds
|
||||
S.female_scream_sound = canine_scream_sounds
|
||||
S.male_gasp_sound = canine_gasp_sounds
|
||||
S.female_gasp_sound = canine_gasp_sounds
|
||||
S.male_pain_sound = canine_pain_sounds
|
||||
S.female_pain_sound = canine_pain_sounds
|
||||
S.male_death_sound = canine_death_sounds
|
||||
S.female_death_sound = canine_death_sounds
|
||||
if("Feline")
|
||||
S.male_scream_sound = feline_scream_sounds
|
||||
S.female_scream_sound = feline_scream_sounds
|
||||
S.male_gasp_sound = feline_gasp_sounds
|
||||
S.female_gasp_sound = feline_gasp_sounds
|
||||
S.male_pain_sound = feline_pain_sounds
|
||||
S.female_pain_sound = feline_pain_sounds
|
||||
S.male_death_sound = feline_death_sounds
|
||||
S.female_death_sound = feline_death_sounds
|
||||
if("Cervine")
|
||||
S.male_scream_sound = cervine_scream_sounds
|
||||
S.female_scream_sound = cervine_scream_sounds
|
||||
S.male_gasp_sound = null
|
||||
S.female_gasp_sound = null
|
||||
S.male_pain_sound = null
|
||||
S.female_pain_sound = null
|
||||
S.male_death_sound = cervine_death_sounds
|
||||
S.female_death_sound = cervine_death_sounds
|
||||
if("Generic/Human")
|
||||
S.male_scream_sound = male_generic_scream_sounds
|
||||
S.female_scream_sound = female_generic_scream_sounds
|
||||
S.male_gasp_sound = male_generic_gasp_sounds
|
||||
S.female_gasp_sound = female_generic_gasp_sounds
|
||||
S.male_pain_sound = male_generic_pain_sounds
|
||||
S.female_pain_sound = female_generic_pain_sounds
|
||||
S.male_death_sound = male_generic_death_sounds
|
||||
S.female_death_sound = female_generic_death_sounds
|
||||
if("Unset") // If our users haven't set anything, pick the sounds based off our custom base - Vulp gets canine, etc etc.
|
||||
var/datum/species/os = GLOB.all_species[custom_base]
|
||||
S.male_scream_sound = os.male_scream_sound
|
||||
S.female_scream_sound = os.female_scream_sound
|
||||
S.male_gasp_sound = os.male_gasp_sound
|
||||
S.female_gasp_sound = os.female_gasp_sound
|
||||
S.male_pain_sound = os.male_pain_sound
|
||||
S.female_pain_sound = os.female_pain_sound
|
||||
S.male_death_sound = os.male_death_sound
|
||||
S.female_death_sound = os.female_death_sound
|
||||
+8
-2
@@ -58,8 +58,14 @@
|
||||
|
||||
rarity_value = 5
|
||||
|
||||
female_scream_sound = 'modular_chomp/sound/voice/scream_silicon.ogg'
|
||||
male_scream_sound = 'modular_chomp/sound/voice/scream_silicon.ogg'
|
||||
female_scream_sound = list('modular_chomp/sound/voice/scream_silicon.ogg', 'modular_chomp/sound/voice/android_scream.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream1.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream2.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream3.ogg')
|
||||
male_scream_sound = list('modular_chomp/sound/voice/scream_silicon.ogg', 'modular_chomp/sound/voice/android_scream.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream1.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream2.ogg', 'modular_chomp/sound/voice/scream/robotic/robot_scream3.ogg')
|
||||
male_gasp_sound = null // Missing gasp sounds
|
||||
female_gasp_sound = null // Missing gasp sounds
|
||||
male_pain_sound = list('modular_chomp/sound/voice/pain/robotic/robot_pain1.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain2.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain3.ogg')
|
||||
female_pain_sound = list('modular_chomp/sound/voice/pain/robotic/robot_pain1.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain2.ogg', 'modular_chomp/sound/voice/pain/robotic/robot_pain3.ogg')
|
||||
male_death_sound = list('modular_chomp/sound/voice/borg_deathsound.ogg')
|
||||
female_death_sound = list('modular_chomp/sound/voice/borg_deathsound.ogg')
|
||||
|
||||
crit_mod = 4 //Unable to go crit
|
||||
var/obj/item/weapon/rig/protean/OurRig
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
//Any species commented out here must be made restricted elsewhere. They are kept here for easy reference of what we disabled.
|
||||
//Note that at the time of this PR we are simply disabling everything new to discuss keeping versus scrapping later.
|
||||
|
||||
/datum/species
|
||||
var/pain_verb_1p = list("shout", "growl", "grunt", "gasp")
|
||||
var/pain_verb_3p = list("shouts", "growls", "grunts", "gasps")
|
||||
|
||||
///datum/species/zaddat
|
||||
// spawn_flags = SPECIES_IS_RESTRICTED //Species has been enabled elsewhere.
|
||||
|
||||
@@ -77,4 +81,3 @@
|
||||
|
||||
/datum/species/protean
|
||||
digi_allowed = TRUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user