mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-09 16:12:17 +00:00
Update 1.0
Refactors lists into #defines, promptly cries. This part is agony and still worked on. Simplemobs can play injury sounds as well, selecting a sound based off a global list. Pain emotes occur based on updatehealth(), with respect to silicons and such. Pain emotes also occur at a 60% chance on traumatic shock. Simplemobs can also play death sounds based off the species sounds lists. Add Mouse, Robotic, Spider, None as options to the voice list. Fixes runtime/bug with Silicons (borgs) trying to get species var.
This commit is contained in:
@@ -310,37 +310,70 @@ var/list/goon_speak_roach_sound = list('sound/talksounds/goon/roach.ogg', 'sound
|
||||
var/list/goon_speak_skelly_sound = list('sound/talksounds/goon/skelly.ogg', 'sound/talksounds/goon/skelly_ask.ogg', 'sound/talksounds/goon/skelly_exclaim.ogg')
|
||||
|
||||
// CHOMPEdit Start: Species Pain/Scream/Death sounds. This is probably inefficient, but I'm sure someone will yell at me or just do it better later:tm:
|
||||
var/list/canine_scream_sounds = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg')
|
||||
var/list/canine_pain_sounds = list('modular_chomp/sound/voice/pain/canine/wolf_pain.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain2.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain3.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain4.ogg')
|
||||
var/list/canine_gasp_sounds = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg')
|
||||
var/list/canine_death_sounds = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg')
|
||||
var/list/feline_scream_sounds = list('modular_chomp/sound/voice/scream/feline/feline_scream.ogg')
|
||||
var/list/feline_pain_sounds = list('modular_chomp/sound/voice/pain/feline/feline_pain.ogg')
|
||||
var/list/feline_gasp_sounds = list('modular_chomp/sound/voice/gasp/feline/feline_gasp.ogg')
|
||||
var/list/feline_death_sounds = list('modular_chomp/sound/voice/death/feline/feline_death.ogg')
|
||||
var/list/cervine_scream_sounds = list('modular_chomp/sound/voice/scream/cervine/cervine_scream.ogg')
|
||||
// var/list/cervine_pain_sounds = list() // Doesn't exist
|
||||
// var/list/cervine_gasp_sounds = list() // Doesn't exist
|
||||
var/list/cervine_death_sounds = list('modular_chomp/sound/voice/death/cervine/cervine_death.ogg')
|
||||
// var/list/avian_scream_sounds = list() // TBD
|
||||
// var/list/avian_pain_sounds = list() // TBD
|
||||
// var/list/avian_death_sounds = list() // TBD
|
||||
var/list/male_generic_scream_sounds = 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')
|
||||
var/list/male_generic_pain_sounds = 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/list/male_generic_gasp_sounds = 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/list/male_generic_death_sounds = 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/list/female_generic_scream_sounds = 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/list/female_generic_pain_sounds = 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/list/female_generic_gasp_sounds = list('modular_chomp/sound/voice/gasp/generic/female/female_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/female/female_gasp2.ogg')
|
||||
var/list/female_generic_death_sounds = 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')
|
||||
#define canine_sounds list("scream" = list('modular_chomp/sound/voice/scream/canine/wolf_scream.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream2.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream3.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream4.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream5.ogg', 'modular_chomp/sound/voice/scream/canine/wolf_scream6.ogg'), "pain" = list('modular_chomp/sound/voice/pain/canine/wolf_pain.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain2.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain3.ogg', 'modular_chomp/sound/voice/pain/canine/wolf_pain4.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/canine/wolf_death1.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death2.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death3.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death4.ogg', 'modular_chomp/sound/voice/death/canine/wolf_death5.ogg'))
|
||||
#define feline_sounds list("scream" = list('modular_chomp/sound/voice/scream/feline/feline_scream.ogg'), "pain" = list('modular_chomp/sound/voice/pain/feline/feline_pain.ogg'), "gasp" = list('modular_chomp/sound/voice/gasp/feline/feline_gasp.ogg'), "death" = list('modular_chomp/sound/voice/death/feline/feline_death.ogg'))
|
||||
#define cervine_sounds list("scream" = list('modular_chomp/sound/voice/scream/cervine/cervine_scream.ogg'), "pain" = null, "gasp" = null, "death" = list('modular_chomp/sound/voice/death/cervine/cervine_death.ogg'))
|
||||
#define robot_sounds list("scream" = 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'), "pain" = 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'), "gasp" = null, "death" = list('modular_chomp/sound/voice/borg_deathsound.ogg'))
|
||||
#define male_generic_sounds list("scream" = 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'), "pain" = 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'), "gasp" = 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'), "death" = 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'))
|
||||
#define female_generic_sounds list("scream" = 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'), "pain" = 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'), "gasp" = list('modular_chomp/sound/voice/gasp/generic/female/female_gasp1.ogg', 'modular_chomp/sound/voice/gasp/generic/female/female_gasp2.ogg'), "death" = 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'))
|
||||
#define spider_sounds list("scream" = list('sound/voice/spiderchitter.ogg'), "pain" = null, "gasp" = null, "death" = list('modular_chomp/sound/voice/death/spider/spider_death.ogg'))
|
||||
#define mouse_sounds list("scream" = list('sound/effects/mouse_squeak_loud.ogg'), "pain" = list('sound/effects/mouse_squeak.ogg'), "gasp" = list('sound/effects/mouse_squeak.ogg'), "death" = list('sound/effects/mouse_squeak_loud.ogg'))
|
||||
#define no_sounds list("scream" = null, "pain" = null, "gasp" = null, "death" = null)
|
||||
#define use_default list("scream" = null, "pain" = null, "gasp" = null, "death" = null)
|
||||
/*
|
||||
var/list/vulpine_scream_sounds = list()
|
||||
var/list/vulpine_pain_sounds = list()
|
||||
var/list/vulpine_gasp_sounds = list()
|
||||
var/list/vulpine_death_sounds = list()
|
||||
var/list/lizard_scream_sounds = list('sound/effects/mob_effects/una_scream1.ogg','sound/effects/mob_effects/una_scream2.ogg')
|
||||
var/list/lizard_pain_sounds = list()
|
||||
var/list/lizard_gasp_sounds = list()
|
||||
var/list/lizard_death_sounds = list()
|
||||
* TBD Sound Defines below
|
||||
*/
|
||||
/*
|
||||
#define avian_sounds list(
|
||||
"scream" = list(),
|
||||
"pain" = list(),
|
||||
"gasp" = list(),
|
||||
"death" = list()
|
||||
)
|
||||
#define slime_sounds list(
|
||||
"scream" = list(),
|
||||
"pain" = list(),
|
||||
"gasp" = list(),
|
||||
"death" = list()
|
||||
)
|
||||
#define vulpine_sounds list(
|
||||
"scream" = list(),
|
||||
"pain" = list(),
|
||||
"gasp" = list(),
|
||||
"death" = list()
|
||||
)
|
||||
#define lizard_sounds list(
|
||||
"scream" = list(),
|
||||
"pain" = list(),
|
||||
"gasp" = list(),
|
||||
"death" = list()
|
||||
)
|
||||
*/
|
||||
|
||||
var/list/species_sounds = list()
|
||||
|
||||
var/list/species_sound_map = list(
|
||||
"Canine" = canine_sounds,
|
||||
"Feline" = feline_sounds,
|
||||
"Cervine" = cervine_sounds,
|
||||
"Robotic" = robot_sounds,
|
||||
"Human Male" = male_generic_sounds,
|
||||
"Human Female" = female_generic_sounds,
|
||||
"Spider" = spider_sounds,
|
||||
"Mouse" = mouse_sounds,
|
||||
"None" = no_sounds,
|
||||
"Unset" = use_default
|
||||
)
|
||||
|
||||
/hook/startup/proc/Init_species_sounds() // The entries we're checking over MUST have unique keys.
|
||||
for(var/i in species_sound_map)
|
||||
species_sounds |= species_sound_map[i]
|
||||
return 1
|
||||
|
||||
/proc/get_species_sound(var/sounds)
|
||||
/*
|
||||
if(user.pref.species_sounds == "Unset")
|
||||
return species_sound_map[coalesce(user.pref.custom_base, user.pref.species)]
|
||||
*/
|
||||
return species_sound_map[sounds]
|
||||
// CHOMPEdit End
|
||||
|
||||
@@ -62,8 +62,9 @@
|
||||
pref.size_multiplier = initial(pref.size_multiplier)
|
||||
if(!(pref.custom_speech_bubble in selectable_speech_bubbles))
|
||||
pref.custom_speech_bubble = "default"
|
||||
if(!(pref.species_sound)) // CHOMPEdit
|
||||
pref.species_sound = "Unset" // CHOMPEdit
|
||||
// var/datum/species/selected_species = GLOB.all_species[pref.species] // CHOMPEdit
|
||||
if(!(pref.species_sound)) // CHOMPEdit // && selected_species.selects_bodytype
|
||||
pref.species_sound = "Unset" // CHOMPEdit - otherwise, we leave this as null or w/e the default is
|
||||
|
||||
/datum/category_item/player_setup_item/vore/size/copy_to_mob(var/mob/living/carbon/human/character)
|
||||
character.weight = pref.weight_vr
|
||||
@@ -120,10 +121,10 @@
|
||||
. += "<a href='?src=\ref[src];voice_test=1'><b>Test Selected Voice</b></a><br>"
|
||||
. += "<b>Custom Speech Bubble:</b> <a href='?src=\ref[src];customize_speech_bubble=1'>[pref.custom_speech_bubble]</a><br>"
|
||||
// CHOMPEdit Start: Pain/Scream/Death Custom Sounds
|
||||
var/datum/species/selected_species = GLOB.all_species[pref.species]
|
||||
if(selected_species.selects_bodytype)
|
||||
. += "<br>"
|
||||
. += "<b>Species Sounds:</b> <a href='?src=\ref[src];species_sound_options=1'>[pref.species_sound]</a><br>"
|
||||
// var/datum/species/selected_species = GLOB.all_species[pref.species]
|
||||
// if(selected_species.selects_bodytype)
|
||||
. += "<br>"
|
||||
. += "<b>Species Injury Sounds:</b> <a href='?src=\ref[src];species_sound_options=1'>[pref.species_sound]</a><br>"
|
||||
. += "<a href='?src=\ref[src];scream_test=1'><b>Test Scream Sounds</b></a><br>"
|
||||
. += "<a href='?src=\ref[src];pain_test=1'><b>Test Pain Sounds</b></a><br>"
|
||||
. += "<a href='?src=\ref[src];gasp_test=1'><b>Test Gasp Sounds</b></a><br>"
|
||||
@@ -273,26 +274,28 @@
|
||||
return TOPIC_REFRESH // CHOMPEdit
|
||||
// CHOMPEdit Start: Pain/Scream/Death sounds
|
||||
else if(href_list["species_sound_options"]) // You shouldn't be able to see this option if you don't have the option to select a custom icon base, so we don't need to re-check for safety here.
|
||||
var/list/possible_species_sound_types = list(
|
||||
"Unset",
|
||||
"Generic/Human",
|
||||
"Canine",
|
||||
"Feline",
|
||||
"Cervine")
|
||||
//"Vulpine") TBD! Need moar sounds. :3
|
||||
var/list/possible_species_sound_types = species_sound_map
|
||||
testing("Loading species sound types for selection.")
|
||||
var/choice = tgui_input_list(usr, "Which set of sounds would you like to use for your character's pain, death, gasp, and scream sounds?", "Species Sounds", possible_species_sound_types)
|
||||
if(!choice)
|
||||
return TOPIC_REFRESH // No choice? Don't reset our selection
|
||||
else
|
||||
pref.species_sound = choice
|
||||
testing("Setting species sound type to [choice].")
|
||||
return TOPIC_REFRESH
|
||||
else if(href_list["scream_test"])
|
||||
var/datum/species/selected_species = GLOB.all_species[pref.species]
|
||||
if(selected_species.selects_bodytype)
|
||||
var/sound/S
|
||||
// if(selected_species.selects_bodytype)
|
||||
var/sound/S
|
||||
testing("About to test our voice. User is [user]. Our chosen species sound is [pref.species_sound].")
|
||||
testing("Species Sound map returns [get_species_sound(pref.species_sound)].")
|
||||
testing("We are fetching a sound, and will get [pick(species_sound_map[pref.species_sound["scream"]])].")
|
||||
S = sound(pick(species_sound_map[pref.species_sound["scream"]]))
|
||||
//S = sound(pick(get_species_sound(pref.species_sound["scream"])))
|
||||
/*
|
||||
switch(pref.species_sound)
|
||||
if("Canine")
|
||||
S = sound(pick(canine_scream_sounds))
|
||||
S = sound(pick(canine_sounds["scream"]))
|
||||
if("Feline")
|
||||
S = sound(pick(feline_scream_sounds))
|
||||
if("Cervine")
|
||||
@@ -303,38 +306,60 @@
|
||||
else
|
||||
S = sound(pick(male_generic_scream_sounds))
|
||||
if("Unset")
|
||||
var/datum/species/os = GLOB.all_species[pref.custom_base]
|
||||
var/datum/species/os
|
||||
if(!pref.custom_base) // Safety
|
||||
os = selected_species
|
||||
else
|
||||
os = GLOB.all_species[pref.custom_base]
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
S = sound(pick(os.female_scream_sound))
|
||||
else
|
||||
S = sound(pick(os.male_scream_sound))
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
if("Robotic")
|
||||
S = sound(pick(robot_scream_sounds))
|
||||
if("None" || null)
|
||||
to_chat(user, "<span class='warning'>This set does not have scream sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
*/
|
||||
if(pref.species_sound == "Unset")
|
||||
S = sound(pick(get_species_sound(coalesce(pref.species_sound, pref.custom_base, pref.species))["scream"]))
|
||||
if(pref.species_sound == "None" || pref.species_sound["scream"] == null || S == null)
|
||||
to_chat(user, "<span class='warning'>This set does not have scream sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
return TOPIC_REFRESH
|
||||
/*
|
||||
else
|
||||
var/sound/S
|
||||
var/datum/species/os = GLOB.all_species[pref.custom_base]
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
S = sound(pick(os.female_scream_sound))
|
||||
S = sound(pick(selected_species.female_scream_sound))
|
||||
else
|
||||
S = sound(pick(os.male_scream_sound))
|
||||
S = sound(pick(selected_species.male_scream_sound))
|
||||
if(S == null)
|
||||
to_chat(user, "<span class='warning'>This species does not have scream sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
return TOPIC_REFRESH
|
||||
*/
|
||||
|
||||
else if(href_list["pain_test"])
|
||||
var/datum/species/selected_species = GLOB.all_species[pref.species]
|
||||
if(selected_species.selects_bodytype)
|
||||
var/sound/S
|
||||
//if(selected_species.selects_bodytype)
|
||||
var/sound/S
|
||||
S = sound(pick(species_sound_map[pref.species_sound["pain"]]))
|
||||
//S = sound(pick(get_species_sound(pref.species_sound["pain"])))
|
||||
/*
|
||||
switch(pref.species_sound)
|
||||
if("Canine")
|
||||
S = sound(pick(canine_pain_sounds))
|
||||
if("Feline")
|
||||
S = sound(pick(feline_pain_sounds))
|
||||
if("Cervine")
|
||||
to_chat("<span class='warning'>This set does not have pain sounds!</span>")
|
||||
to_chat(user, "<span class='warning'>This set does not have pain sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
if("Generic/Human")
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
@@ -342,37 +367,59 @@
|
||||
else
|
||||
S = sound(pick(male_generic_pain_sounds))
|
||||
if("Unset")
|
||||
var/datum/species/os = GLOB.all_species[pref.custom_base]
|
||||
var/datum/species/os
|
||||
if(!pref.custom_base) // Safety
|
||||
os = selected_species
|
||||
else
|
||||
os = GLOB.all_species[pref.custom_base]
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
S = sound(pick(os.female_pain_sound))
|
||||
else
|
||||
S = sound(pick(os.male_pain_sound))
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
if("Robotic")
|
||||
S = sound(pick(robot_pain_sounds))
|
||||
if("None" || null)
|
||||
to_chat(user, "<span class='warning'>This set does not have pain sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
*/
|
||||
if(pref.species_sound == "Unset")
|
||||
S = sound(pick(get_species_sound(coalesce(pref.species_sound, pref.custom_base, pref.species))["pain"]))
|
||||
if(pref.species_sound == "None" || pref.species_sound["pain"] == null || S == null)
|
||||
to_chat(user, "<span class='warning'>This set does not have pain sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
return TOPIC_REFRESH
|
||||
/*
|
||||
else
|
||||
var/sound/S
|
||||
var/datum/species/os = GLOB.all_species[pref.custom_base]
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
S = sound(pick(os.female_pain_sound))
|
||||
S = sound(pick(selected_species.female_pain_sound))
|
||||
else
|
||||
S = sound(pick(os.male_pain_sound))
|
||||
S = sound(pick(selected_species.male_pain_sound))
|
||||
if(S == null)
|
||||
to_chat(user, "<span class='warning'>This species does not have pain sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
return TOPIC_REFRESH
|
||||
*/
|
||||
else if(href_list["gasp_test"])
|
||||
var/datum/species/selected_species = GLOB.all_species[pref.species]
|
||||
if(selected_species.selects_bodytype)
|
||||
var/sound/S
|
||||
// if(selected_species.selects_bodytype)
|
||||
var/sound/S
|
||||
S = sound(pick(species_sound_map[pref.species_sound["gasp"]]))
|
||||
//S = sound(pick(get_species_sound(pref.species_sound["gasp"])))
|
||||
/*
|
||||
switch(pref.species_sound)
|
||||
if("Canine")
|
||||
S = sound(pick(canine_gasp_sounds))
|
||||
if("Feline")
|
||||
S = sound(pick(feline_gasp_sounds))
|
||||
if("Cervine")
|
||||
to_chat("<span class='warning'>This set does not have gasp sounds!</span>")
|
||||
to_chat(user, "<span class='warning'>This set does not have gasp sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
if("Generic/Human")
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
@@ -380,30 +427,53 @@
|
||||
else
|
||||
S = sound(pick(male_generic_gasp_sounds))
|
||||
if("Unset")
|
||||
var/datum/species/os = GLOB.all_species[pref.custom_base]
|
||||
var/datum/species/os
|
||||
if(!pref.custom_base) // Safety
|
||||
os = selected_species
|
||||
else
|
||||
os = GLOB.all_species[pref.custom_base]
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
S = sound(pick(os.female_gasp_sound))
|
||||
else
|
||||
S = sound(pick(os.male_gasp_sound))
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
if("Robotic")
|
||||
to_chat(user, "<span class='warning'>This set does not have gasp sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
if("None" || null)
|
||||
to_chat(user, "<span class='warning'>This set does not have gasp sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
*/
|
||||
if(pref.species_sound == "Unset")
|
||||
S = sound(pick(get_species_sound(coalesce(pref.species_sound, pref.custom_base, pref.species))["gasp"]))
|
||||
if(pref.species_sound == "None" || pref.species_sound["gasp"] == null || S == null)
|
||||
to_chat(user, "<span class='warning'>This set does not have gasp sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
return TOPIC_REFRESH
|
||||
/*
|
||||
else
|
||||
var/sound/S
|
||||
var/datum/species/os = GLOB.all_species[pref.custom_base]
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
S = sound(pick(os.female_gasp_sound))
|
||||
S = sound(pick(selected_species.female_gasp_sound))
|
||||
else
|
||||
S = sound(pick(os.male_gasp_sound))
|
||||
S = sound(pick(selected_species.male_gasp_sound))
|
||||
if(S == null)
|
||||
to_chat(user, "<span class='warning'>This species does not have gasp sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
return TOPIC_REFRESH
|
||||
*/
|
||||
else if(href_list["death_test"])
|
||||
var/datum/species/selected_species = GLOB.all_species[pref.species]
|
||||
if(selected_species.selects_bodytype)
|
||||
var/sound/S
|
||||
// if(selected_species.selects_bodytype)
|
||||
var/sound/S
|
||||
S = sound(pick(species_sound_map[pref.species_sound["death"]]))
|
||||
// S = sound(pick(get_species_sound(pref.species_sound["death"])))
|
||||
/*
|
||||
switch(pref.species_sound)
|
||||
if("Canine")
|
||||
S = sound(pick(canine_death_sounds))
|
||||
@@ -417,25 +487,44 @@
|
||||
else
|
||||
S = sound(pick(male_generic_death_sounds))
|
||||
if("Unset")
|
||||
var/datum/species/os = GLOB.all_species[pref.custom_base]
|
||||
var/datum/species/os
|
||||
if(!pref.custom_base) // Safety
|
||||
os = selected_species
|
||||
else
|
||||
os = GLOB.all_species[pref.custom_base]
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
S = sound(pick(os.female_death_sound))
|
||||
else
|
||||
S = sound(pick(os.male_death_sound))
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
if("Robotic")
|
||||
S = sound(pick(robot_death_sounds))
|
||||
if("None" || null)
|
||||
to_chat(user, "<span class='warning'>This set does not have death sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
*/
|
||||
if(pref.species_sound == "Unset")
|
||||
S = sound(pick(get_species_sound(coalesce(pref.species_sound, pref.custom_base, pref.species))["death"]))
|
||||
if(pref.species_sound == "None" || pref.species_sound["gasp"] == null || S == null)
|
||||
to_chat(user, "<span class='warning'>This set does not have gasp sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
return TOPIC_REFRESH
|
||||
/*
|
||||
else
|
||||
var/sound/S
|
||||
var/datum/species/os = GLOB.all_species[pref.custom_base]
|
||||
if(pref.identifying_gender == FEMALE)
|
||||
S = sound(pick(os.female_death_sound))
|
||||
S = sound(pick(selected_species.female_death_sound))
|
||||
else
|
||||
S = sound(pick(os.male_death_sound))
|
||||
S = sound(pick(selected_species.male_death_sound))
|
||||
if(S == null)
|
||||
to_chat(user, "<span class='warning'>This species does not have death sounds!</span>")
|
||||
return TOPIC_REFRESH
|
||||
S.frequency = pick(pref.voice_freq)
|
||||
S.volume = 20
|
||||
SEND_SOUND(user, S)
|
||||
return TOPIC_REFRESH
|
||||
*/
|
||||
// CHOMPEdit End
|
||||
return ..();
|
||||
|
||||
@@ -257,8 +257,12 @@
|
||||
//Any additional non-trait settings can be applied here
|
||||
new_S.blood_color = pref.blood_color
|
||||
|
||||
if(pref.species_sound && new_S.selects_bodytype && pref.custom_base) // CHOMPEdit: Custom Scream/Death/Gasp/Pain Sounds. Don't try to do this if it doesn't exist, we aren't a custom species, and we don't have a custom base.
|
||||
/*
|
||||
if(pref.species_sound) // CHOMPEdit: Custom Scream/Death/Gasp/Pain Sounds. Don't try to do this if it doesn't exist. // && new_S.selects_bodytype && pref.custom_base) // we aren't a custom species, and we don't have a custom base.
|
||||
new_S.copy_species_sounds(new_S, pref.species_sound, pref.custom_base) // CHOMPEdit: Custom Scream/Death/Gasp/Pain Sounds
|
||||
*/
|
||||
// CHOMPEdit: Custom Scream/Death/Gasp/Pain Sounds.
|
||||
new_S.species_sounds = coalesce(pref.species_sound, pref.custom_base, pref.species)
|
||||
|
||||
if(pref.species == SPECIES_CUSTOM)
|
||||
//Statistics for this would be nice
|
||||
|
||||
@@ -1,17 +1,40 @@
|
||||
/decl/emote/audible/scream/get_emote_sound(var/atom/user)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_gender() == FEMALE)
|
||||
return list(
|
||||
"sound" = H.species.female_scream_sound,
|
||||
"vol" = 60,
|
||||
"exr" = 20,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_gender() == FEMALE)
|
||||
return list(
|
||||
"sound" = H.species.female_scream_sound,
|
||||
"vol" = 60,
|
||||
"exr" = 20,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
else
|
||||
return list(
|
||||
"sound" = H.species.male_scream_sound,
|
||||
"vol" = 60,
|
||||
"exr" = 20,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
/* // Not sure if needed, screams are a carbon-only thing rn.
|
||||
else
|
||||
return list(
|
||||
"sound" = H.species.male_scream_sound,
|
||||
"vol" = 60,
|
||||
"exr" = 20,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
var/mob/living/M = user
|
||||
if((M.get_gender() == FEMALE) && female_scream_sound) // If our mob has custom sounds per-gender defined, most won't.
|
||||
return list(
|
||||
"sound" = female_scream_sound,
|
||||
"vol" = 60,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
else if((M.get_gender() == MALE) && male_scream_sound) // If our mob has custom sounds per-gender defined, most won't.
|
||||
return list(
|
||||
"sound" = male_scream_sound,
|
||||
"vol" = 60,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
else
|
||||
return list(
|
||||
"sound" = scream_sound,
|
||||
"vol" = 60,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
*/
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
var/frustration = 0
|
||||
var/max_frustration = 0
|
||||
|
||||
can_pain_emote = FALSE // CHOMPEdit: Sanity/safety, if bots ever get emotes later, undo this
|
||||
|
||||
/mob/living/bot/New()
|
||||
..()
|
||||
update_icons()
|
||||
@@ -325,7 +327,7 @@
|
||||
if(makeStep(patrol_path))
|
||||
frustration = 0
|
||||
else if(max_frustration)
|
||||
frustration++
|
||||
frustration++
|
||||
//CHOMPEdit End
|
||||
return
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
icon_state = "brain1"
|
||||
no_vore = TRUE //VOREStation Edit - PLEASE. lol.
|
||||
can_pain_emote = FALSE // CHOMPEdit: Sanity/safety
|
||||
|
||||
/mob/living/carbon/brain/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -152,4 +152,39 @@
|
||||
|
||||
damage = damage * damage_mod
|
||||
|
||||
return damage
|
||||
return damage
|
||||
|
||||
/*
|
||||
* CHOMPEdit Start: Pain/etc calculations, but more efficient:tm: - this should work for literally anything that applies to health. Far better than slapping emote("pain") everywhere like scream does.
|
||||
* The reason we're doing this here is to enable carbons to handle pain differently if they need to - in this case, we're going to check if we're synthetic here, anyways. Essentially a dupe of human_damage.dm's updatehealth()
|
||||
* Human updatehealth() doesn't call parent, so we can safely ignore human checks, but we're going to put sanity in anyways
|
||||
*/
|
||||
/mob/living/carbon/updatehealth()
|
||||
if(status_flags & GODMODE)
|
||||
health = 100
|
||||
set_stat(CONSCIOUS)
|
||||
else
|
||||
var/initialhealth = health // CHOMPEdit: Getting our health before this check
|
||||
health = getMaxHealth() - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() - getCloneLoss() - halloss
|
||||
if(!((ishuman(src)) || (issilicon(src))) && can_feel_pain() || ((src.isSynthetic() && synth_cosmetic_pain))) // Only run this if we're non-human/non-silicon + can feel pain, bc humans already do this. human_damage doesn't call parent, but sanity is better here.
|
||||
if(health < initialhealth) // Did we lose health?
|
||||
// Yes. How much by?
|
||||
var/damage = initialhealth - health // Get our damage (say, 200 - 180 = 20, etc etc)
|
||||
var/pain_noise
|
||||
if(species)
|
||||
pain_noise = (damage * species.pain_mod) // Multiply the incoming damage by our mod. 50 damage becomes 25 x 0.6 on highest strength, meaning prob 15. 50 x 1.4 means prob 35, etc.
|
||||
else // Sanity, in case we don't have a species
|
||||
pain_noise = (damage * rand(0.5, 1.5)) // Multiply damage by our rand mod. 50 damage becomes 50 x 0.5, means prob 25. 50 x 1.5 means prob 75, etc.
|
||||
switch(damage)
|
||||
if(-INFINITY to 0)
|
||||
return
|
||||
if(1 to 25)
|
||||
if(prob(pain_noise) && !isbelly(loc)) // No pain noises inside bellies.
|
||||
emote("pain")
|
||||
if(26 to 50)
|
||||
if(prob(pain_noise * 1.5) && !isbelly(loc)) // No pain noises inside bellies.
|
||||
emote("pain")
|
||||
if(51 to INFINITY)
|
||||
if(prob(pain_noise * 3) && !isbelly(loc)) // More likely, most severe damage. No pain noises inside bellies.
|
||||
emote("pain")
|
||||
// CHOMPEdit End: Pain
|
||||
|
||||
@@ -317,7 +317,8 @@ var/list/_simple_mob_default_emotes = list(
|
||||
/decl/emote/audible/purr,
|
||||
/decl/emote/audible/purrlong,
|
||||
//CHOMP Add start
|
||||
/decl/emote/audible/prbt2
|
||||
/decl/emote/audible/prbt2,
|
||||
/decl/emote/audible/pain
|
||||
//CHOMP Add end
|
||||
)
|
||||
//VOREStation Add End
|
||||
|
||||
@@ -15,7 +15,30 @@
|
||||
total_brute += O.brute_dam
|
||||
total_burn += O.burn_dam
|
||||
|
||||
// CHOMPEdit Start: Pain/etc calculations, but more efficient:tm: - this should work for literally anything that applies to health. Far better than slapping emote("pain") everywhere like scream does.
|
||||
var/initialhealth = health // CHOMPEdit: Getting our health before this check
|
||||
health = getMaxHealth() - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute
|
||||
if(can_feel_pain() || ((isSynthetic() && synth_cosmetic_pain))) // Are we capable of feeling pain?
|
||||
if(health < initialhealth) // Did we lose health?
|
||||
// Yes. How much by?
|
||||
var/damage = initialhealth - health // Get our damage (say, 200 - 180 = 20, etc etc)
|
||||
var/pain_noise = (damage * species.pain_mod) // Multiply the incoming damage by our mod. 50 damage becomes 25 x 0.6 on highest strength, meaning prob 15. 50 x 1.4 means prob 35, etc.
|
||||
switch(damage)
|
||||
if(-INFINITY to 0)
|
||||
//TODO: fix husking
|
||||
if( ((getMaxHealth() - total_burn) < config.health_threshold_dead * huskmodifier) && stat == DEAD)
|
||||
ChangeToHusk()
|
||||
return
|
||||
if(1 to 25)
|
||||
if(prob(pain_noise) && !isbelly(loc)) // No pain noises inside bellies.
|
||||
emote("pain")
|
||||
if(26 to 50)
|
||||
if(prob(pain_noise * 1.5) && !isbelly(loc)) // No pain noises inside bellies.
|
||||
emote("pain")
|
||||
if(51 to INFINITY)
|
||||
if(prob(pain_noise * 3) && !isbelly(loc)) // More likely, most severe damage. No pain noises inside bellies.
|
||||
emote("pain")
|
||||
// CHOMPEdit End: Pain
|
||||
|
||||
//TODO: fix husking
|
||||
if( ((getMaxHealth() - total_burn) < config.health_threshold_dead * huskmodifier) && stat == DEAD)
|
||||
|
||||
@@ -1857,6 +1857,10 @@
|
||||
if(shock_stage == 40)
|
||||
if(traumatic_shock >= 80)
|
||||
to_chat(src, "<span class='danger'>[pick("The pain is excruciating", "Please, just end the pain", "Your whole body is going numb")]!</span>")
|
||||
// CHOMPEdit: Pain
|
||||
if(prob(60) && !isbelly(loc)) // Hopefully not spammy, only 60% of the time will we groan in pain + sanity for in-belly
|
||||
emote("pain")
|
||||
// CHOMPEdit End
|
||||
|
||||
if (shock_stage >= 60)
|
||||
if(shock_stage == 60 && !isbelly(loc)) //VOREStation Edit
|
||||
@@ -1864,23 +1868,37 @@
|
||||
if (prob(2))
|
||||
if(traumatic_shock >= 80)
|
||||
to_chat(src, "<span class='danger'>[pick("The pain is excruciating", "Please, just end the pain", "Your whole body is going numb")]!</span>")
|
||||
// CHOMPEdit: Pain
|
||||
if(prob(60) && !isbelly(loc)) // Hopefully not spammy, only 60% of the time will we groan in pain + sanity for in-belly
|
||||
emote("pain")
|
||||
// CHOMPEdit End
|
||||
Weaken(20)
|
||||
|
||||
if(shock_stage >= 80)
|
||||
if (prob(5))
|
||||
if(traumatic_shock >= 80)
|
||||
to_chat(src, "<span class='danger'>[pick("The pain is excruciating", "Please, just end the pain", "Your whole body is going numb")]!</span>")
|
||||
// CHOMPEdit: Pain
|
||||
if(prob(60) && !isbelly(loc)) // Hopefully not spammy, only 80% of the time will we groan in pain + sanity for in-belly
|
||||
emote("pain")
|
||||
// CHOMPEdit End
|
||||
Weaken(20)
|
||||
|
||||
if(shock_stage >= 120)
|
||||
if (prob(2))
|
||||
if(traumatic_shock >= 80)
|
||||
to_chat(src, "<span class='danger'>[pick("You black out", "You feel like you could die any moment now", "You are about to lose consciousness")]!</span>")
|
||||
// CHOMPEdit: Pain
|
||||
if(prob(60) && !isbelly(loc)) // Hopefully not spammy, only 60% of the time will we groan in pain + sanity for in-belly
|
||||
emote("pain")
|
||||
// CHOMPEdit End
|
||||
Paralyse(5)
|
||||
|
||||
if(shock_stage == 150)
|
||||
if(!isbelly(loc)) //VOREStation Edit
|
||||
custom_emote(VISIBLE_MESSAGE, "can no longer stand, collapsing!")
|
||||
if(prob(60)) // Hopefully not spammy, only 60% of the time will we groan in pain
|
||||
emote("pain")
|
||||
Weaken(20)
|
||||
|
||||
if(shock_stage >= 150)
|
||||
|
||||
@@ -26,4 +26,15 @@
|
||||
for(var/datum/soul_link/S as anything in shared_soul_links)
|
||||
S.sharer_died(gibbed)
|
||||
|
||||
// CHOMPStation Add: All mobs can play a death_sound if set. On carbons, this is going to be handled by species.
|
||||
if(!gibbed && (male_death_sound || female_death_sound) && !isbelly(loc))
|
||||
var/gender = src.gender
|
||||
if(gender == FEMALE)
|
||||
playsound(src, pick(female_death_sound), 40, 1, 20, volume_channel = VOLUME_CHANNEL_INJ_DEATH)
|
||||
else // Until we get more, sorry. :c
|
||||
playsound(src, pick(male_death_sound), 40, 1, 20, volume_channel = VOLUME_CHANNEL_INJ_DEATH)
|
||||
else if(!gibbed && death_sound && !isbelly(loc))
|
||||
playsound(src, pick(death_sound), 40, 1, 20, volume_channel = VOLUME_CHANNEL_INJ_DEATH)
|
||||
// CHOMPStation Add End
|
||||
|
||||
. = ..()
|
||||
|
||||
@@ -123,7 +123,27 @@
|
||||
health = 100
|
||||
set_stat(CONSCIOUS)
|
||||
else
|
||||
// CHOMPEdit Start: Pain/etc calculations, but more efficient:tm: - this should work for literally anything that applies to health. Far better than slapping emote("pain") everywhere like scream does.
|
||||
var/initialhealth = health // CHOMPEdit: Getting our health before this check
|
||||
health = getMaxHealth() - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss() - getCloneLoss() - halloss
|
||||
if(!((ishuman(src)) || (issilicon(src))) && src.can_pain_emote) // Only run this if we're non-human/non-silicon (bots and mechanical simplemobs should be allowed to make pain sounds) & can emote pain, bc humans + carbons already do this. human_damage doesn't call parent, but sanity is better here.
|
||||
if(health < initialhealth) // Did we lose health?
|
||||
// Yes. How much by?
|
||||
var/damage = initialhealth - health // Get our damage (say, 200 - 180 = 20, etc etc)
|
||||
var/pain_noise = (damage * rand(0.5, 1.5)) // Multiply damage by our rand mod. 50 damage becomes 50 x 0.5, means prob 25. 50 x 1.5 means prob 75, etc.
|
||||
switch(damage)
|
||||
if(-INFINITY to 0)
|
||||
return
|
||||
if(1 to 25)
|
||||
if(prob(pain_noise) && !isbelly(loc)) // No pain noises inside bellies.
|
||||
emote("pain")
|
||||
if(26 to 50)
|
||||
if(prob(pain_noise * 1.5) && !isbelly(loc)) // No pain noises inside bellies.
|
||||
emote("pain")
|
||||
if(51 to INFINITY)
|
||||
if(prob(pain_noise * 3) && !isbelly(loc)) // More likely, most severe damage. No pain noises inside bellies.
|
||||
emote("pain")
|
||||
// CHOMPEdit End: Pain
|
||||
|
||||
//This proc is used for mobs which are affected by pressure to calculate the amount of pressure that actually
|
||||
//affects them once clothing is factored in. ~Errorage
|
||||
|
||||
@@ -118,6 +118,17 @@
|
||||
)
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
pain_emote_1p = list("chitter", "click") //CHOMP Add
|
||||
pain_emote_3p = list("chitters", "clicks") //CHOMP Add
|
||||
|
||||
// CHOMPAdd: Has to be done on Init or New, bc we can't set a var to a non-constant
|
||||
/mob/living/simple_mob/animal/giant_spider/Initialize()
|
||||
pain_sound = get_species_sound(spider_sounds["pain"])
|
||||
death_sound = get_species_sound(spider_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
|
||||
// CHOMPAdd End
|
||||
|
||||
/mob/living/simple_mob/animal/giant_spider/apply_melee_effects(var/atom/A)
|
||||
if(isliving(A))
|
||||
@@ -148,4 +159,4 @@
|
||||
poison_per_bite *= 1.3
|
||||
|
||||
/decl/mob_organ_names/spider
|
||||
hit_zones = list("cephalothorax", "abdomen", "left forelegs", "right forelegs", "left hind legs", "right hind legs", "pedipalp", "mouthparts")
|
||||
hit_zones = list("cephalothorax", "abdomen", "left forelegs", "right forelegs", "left hind legs", "right hind legs", "pedipalp", "mouthparts")
|
||||
|
||||
@@ -41,14 +41,19 @@
|
||||
say_list_type = /datum/say_list/mouse
|
||||
|
||||
var/body_color //brown, gray and white, leave blank for random
|
||||
|
||||
|
||||
//CHOMP Addition: Added these vore variables in and swapped the booleans from their defaults too.
|
||||
can_be_drop_prey = TRUE
|
||||
can_be_drop_pred = FALSE
|
||||
|
||||
pain_emote_1p = list("squeak", "squik") // CHOMP Addition: Pain/etc sounds
|
||||
pain_emote_1p = list("squeaks", "squiks") // CHOMP Addition: Pain/etc sounds
|
||||
|
||||
/mob/living/simple_mob/animal/passive/mouse/New()
|
||||
..()
|
||||
|
||||
pain_sound = get_species_sound(mouse_sounds["pain"]) // CHOMP Addition: Pain/etc sounds
|
||||
|
||||
verbs += /mob/living/proc/ventcrawl
|
||||
verbs += /mob/living/proc/hide
|
||||
|
||||
@@ -177,7 +182,7 @@
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
maxbodytemp = 700
|
||||
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
|
||||
|
||||
//The names Cheese... Agent Cheese
|
||||
|
||||
@@ -33,6 +33,11 @@
|
||||
vore_icons = SA_ICON_LIVING | SA_ICON_REST
|
||||
center_offset = 0
|
||||
|
||||
pain_sound = list('sound/voice/raccoon.ogg')
|
||||
pain_emote_1p = list("chitter")
|
||||
pain_emote_3p = list("chitters")
|
||||
death_sound = list('sound/voice/raccoon.ogg')
|
||||
|
||||
/mob/living/simple_mob/animal/passive/raccoon_ch/Initialize()
|
||||
. = ..()
|
||||
ghostjoin = 1
|
||||
|
||||
@@ -27,6 +27,17 @@
|
||||
var/obj/item/inventory_head
|
||||
var/obj/item/inventory_back
|
||||
|
||||
// CHOMPAdd: :c
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
|
||||
// CHOMPAdd: Has to be done on Init or New, bc we can't set a var to a non-constant
|
||||
/mob/living/simple_mob/animal/passive/dog/Initialize()
|
||||
pain_sound = get_species_sound(canine_sounds["pain"])
|
||||
death_sound = get_species_sound(canine_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
// CHOMPAdd End
|
||||
|
||||
/mob/living/simple_mob/animal/passive/dog/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(istype(O, /obj/item/weapon/newspaper))
|
||||
@@ -284,4 +295,4 @@
|
||||
icon_dead = "brittany_dead"
|
||||
|
||||
/decl/mob_organ_names/corgi
|
||||
hit_zones = list("head", "body", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "tail", "heart") //You monster.
|
||||
hit_zones = list("head", "body", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "tail", "heart") //You monster.
|
||||
|
||||
@@ -69,6 +69,12 @@
|
||||
var/list/friend_loot_list = list(/obj/item/weapon/coin) // What will make this animal non-hostile if held?
|
||||
var/randomize_size = TRUE
|
||||
can_be_drop_prey = TRUE //CHOMP Add
|
||||
// CHOMPAdd: Pain/Death Sounds
|
||||
pain_sound = list('sound/voice/raccoon.ogg')
|
||||
pain_emote_1p = list("chitter")
|
||||
pain_emote_3p = list("chitters")
|
||||
death_sound = list('sound/voice/raccoon.ogg')
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/sif/sakimm/verb/remove_hat()
|
||||
set name = "Remove Hat"
|
||||
|
||||
@@ -62,12 +62,16 @@
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
|
||||
|
||||
var/rank //pyro, operative, ammo, stealth. more to come. Do not leave blank.
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
pain_emote_1p = list("squeak", "squik") // CHOMP Addition: Pain/etc sounds
|
||||
pain_emote_1p = list("squeaks", "squiks") // CHOMP Addition: Pain/etc sounds
|
||||
|
||||
/mob/living/simple_mob/animal/space/mouse_army/New()
|
||||
..()
|
||||
|
||||
pain_sound = get_species_sound(mouse_sounds["pain"]) // CHOMPAdd: Pain sounds
|
||||
|
||||
verbs += /mob/living/proc/ventcrawl
|
||||
verbs += /mob/living/proc/hide
|
||||
|
||||
|
||||
@@ -8,6 +8,12 @@
|
||||
min_n2 = 0 //breathe N2
|
||||
max_n2 = 0
|
||||
|
||||
// CHOMPAdd: Pain sounds
|
||||
pain_sound = list('sound/voice/shriek1.ogg')
|
||||
pain_emote_1p = list("shriek")
|
||||
pain_emote_3p = list("shrieks")
|
||||
// CHOMPAdd End
|
||||
|
||||
/mob/living/simple_mob/vox/armalis
|
||||
name = "serpentine alien"
|
||||
real_name = "serpentine alien"
|
||||
|
||||
@@ -29,8 +29,10 @@
|
||||
|
||||
mob_class = MOB_CLASS_SLIME
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
|
||||
|
||||
/mob/living/simple_mob/blob/speech_bubble_appearance()
|
||||
return "slime"
|
||||
@@ -88,4 +90,4 @@
|
||||
return ally
|
||||
|
||||
/decl/mob_organ_names/blob
|
||||
hit_zones = list("mass")
|
||||
hit_zones = list("mass")
|
||||
|
||||
@@ -30,6 +30,9 @@
|
||||
var/can_infest = FALSE
|
||||
var/is_infesting = FALSE
|
||||
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
|
||||
|
||||
/datum/say_list/spore
|
||||
emote_see = list("sways", "inflates briefly")
|
||||
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
icon = 'icons/mob/horror_show/GHPS.dmi'
|
||||
icon_gib = "generic_gib"
|
||||
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
|
||||
|
||||
/datum/ai_holder/simple_mob/horror
|
||||
hostile = TRUE // The majority of simplemobs are hostile, gaslamps are nice.
|
||||
cooperative = FALSE
|
||||
@@ -26,4 +29,4 @@
|
||||
minbodytemp = 0
|
||||
maxbodytemp = 700
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
// Basically, all we're doing here (for now) is defining pain/etc sounds for combat use
|
||||
/mob/living/simple_mob/humanoid
|
||||
pain_emote_1p = list("shout out in pain", "growl in pain", "grunt in pain", "gasp out in pain")
|
||||
pain_emote_3p = list("shouts out in pain", "growls in pain", "grunts in pain", "gasps out in pain")
|
||||
|
||||
/mob/living/simple_mob/humanoid/Initialize()
|
||||
pain_sound = get_species_sound(male_generic_sounds["pain"])
|
||||
female_pain_sound = get_species_sound(female_generic_sounds["pain"])
|
||||
male_pain_sound = get_species_sound(male_generic_sounds["pain"])
|
||||
death_sound = get_species_sound(male_generic_sounds["death"])
|
||||
male_death_sound = get_species_sound(male_generic_sounds["death"])
|
||||
female_death_sound = get_species_sound(female_generic_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
@@ -47,6 +47,8 @@
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/merc
|
||||
say_list_type = /datum/say_list/possessed //Set to Null on silenced.
|
||||
|
||||
can_pain_emote = FALSE
|
||||
death_sound = null
|
||||
|
||||
// corpse = /obj/effect/landmark/mobcorpse/possessed
|
||||
// Will eventually leave a full corpse with an activated RIG on it. But not yet.
|
||||
@@ -155,4 +157,4 @@
|
||||
desc = "A blood-red hardsuit featuring some fairly illegal technology. Seems to be worn down and damaged but moving with surprising speed!"
|
||||
movement_cooldown = 3 //You can try running
|
||||
base_attack_cooldown = 3 //You will just die tired
|
||||
melee_miss_chance = 25 //Not very coordinated though
|
||||
melee_miss_chance = 25 //Not very coordinated though
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
var/atom/movable/copying = null // The thing we're trying to look like.
|
||||
var/realistic = FALSE // If true, things like bullets and weapons will hit it, to be a bit more convincing from a distance.
|
||||
|
||||
can_pain_emote = FALSE // CHOMPEdit: Hallucinations can't feel pain and shouldn't take damage anyways, but, sanity
|
||||
death_sound = null // CHOMPEdit: Hallucinations shouldn't trigger death sounds anyways, but, sanity
|
||||
|
||||
/mob/living/simple_mob/illusion/update_icon() // We don't want the appearance changing AT ALL unless by copy_appearance().
|
||||
return
|
||||
|
||||
@@ -113,4 +116,4 @@
|
||||
|
||||
/mob/living/simple_mob/illusion/get_catalogue_delay()
|
||||
if(copying)
|
||||
return copying.get_catalogue_delay()
|
||||
return copying.get_catalogue_delay()
|
||||
|
||||
@@ -59,9 +59,15 @@
|
||||
var/evo_limit = 0
|
||||
var/next
|
||||
meat_type = /obj/item/toy/figure/bounty_hunter
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
|
||||
can_pain_emote = TRUE
|
||||
pain_sound = list('sound/metroid/metroidsee.ogg')
|
||||
pain_emote_1p = list("skree")
|
||||
pain_emote_3p = list("skrees")
|
||||
death_sound = list('sound/metroid/metroiddeath.ogg')
|
||||
|
||||
/mob/living/simple_mob/metroid/Initialize()
|
||||
nutrition = 100 //Have them start off pretty hungry still.
|
||||
existing_metroids += src //Keep track of how many for the event.
|
||||
@@ -114,5 +120,5 @@
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/metroid/death()
|
||||
playsound(src, 'sound/metroid/metroiddeath.ogg', 75, 1)
|
||||
..()
|
||||
// playsound(src, 'sound/metroid/metroiddeath.ogg', 75, 1)
|
||||
..()
|
||||
|
||||
@@ -71,7 +71,7 @@ GLOBAL_VAR_INIT(queen_amount, 0) //We only gonna want 1 queen in the world.
|
||||
|
||||
|
||||
/mob/living/simple_mob/metroid/mine/death()
|
||||
playsound(src, 'sound/metroid/metroiddeath.ogg', 50, 1)
|
||||
// playsound(src, 'sound/metroid/metroiddeath.ogg', 50, 1)
|
||||
..()
|
||||
if(prob(20))
|
||||
visible_message("<span class='notice'>\The [src] dropped some toy!</span>")
|
||||
@@ -213,7 +213,7 @@ GLOBAL_VAR_INIT(queen_amount, 0) //We only gonna want 1 queen in the world.
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/super/death()
|
||||
playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1)
|
||||
// playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1)
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/alpha
|
||||
@@ -266,7 +266,7 @@ GLOBAL_VAR_INIT(queen_amount, 0) //We only gonna want 1 queen in the world.
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/alpha/death()
|
||||
playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1)
|
||||
// playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1)
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/alpha //active noms
|
||||
@@ -343,7 +343,7 @@ GLOBAL_VAR_INIT(queen_amount, 0) //We only gonna want 1 queen in the world.
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/gamma/death()
|
||||
playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1)
|
||||
// playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1)
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/gamma //active noms
|
||||
@@ -441,7 +441,7 @@ GLOBAL_VAR_INIT(queen_amount, 0) //We only gonna want 1 queen in the world.
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/zeta/death()
|
||||
playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1)
|
||||
// playsound(src, 'sound/metroid/metroiddeath.ogg', 100, 1)
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/zeta //active noms
|
||||
@@ -533,12 +533,14 @@ GLOBAL_VAR_INIT(queen_amount, 0) //We only gonna want 1 queen in the world.
|
||||
evo_limit = 2000
|
||||
next = "/mob/living/simple_mob/metroid/juvenile/queen"
|
||||
|
||||
death_sound = list('sound/metroid/metroidomegadeath.ogg')
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/omega/Initialize()
|
||||
playsound(src, 'sound/metroid/metroidomega.ogg', 100, 1)
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/omega/death()
|
||||
playsound(src, 'sound/metroid/metroidomegadeath.ogg', 100, 1)
|
||||
// playsound(src, 'sound/metroid/metroidomegadeath.ogg', 100, 1)
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/omega //active noms
|
||||
@@ -628,13 +630,15 @@ GLOBAL_VAR_INIT(queen_amount, 0) //We only gonna want 1 queen in the world.
|
||||
next = null
|
||||
is_queen = TRUE
|
||||
|
||||
death_sound = list('sound/metroid/metroidqueendeath.ogg')
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/queen/Initialize()
|
||||
playsound(src, 'sound/metroid/metroidqueen.ogg', 100, 1)
|
||||
GLOB.queen_amount++
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/metroid/juvenile/queen/death()
|
||||
playsound(src, 'sound/metroid/metroidqueendeath.ogg', 100, 1)
|
||||
// playsound(src, 'sound/metroid/metroidqueendeath.ogg', 100, 1)
|
||||
GLOB.queen_amount--
|
||||
..()
|
||||
|
||||
|
||||
@@ -63,6 +63,8 @@
|
||||
// var/do_glow = TRUE
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
|
||||
|
||||
/mob/living/simple_mob/construct/place_spell_in_hand(var/path)
|
||||
if(!path || !ispath(path))
|
||||
@@ -157,4 +159,4 @@
|
||||
|
||||
/mob/living/simple_mob/construct/proc/remove_glow()
|
||||
cut_overlays()
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -29,8 +29,10 @@
|
||||
speak_emote = list("gibbers")
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
|
||||
|
||||
// Strong Variant
|
||||
/mob/living/simple_mob/creature/strong
|
||||
@@ -72,4 +74,4 @@
|
||||
melee_damage_upper = 25
|
||||
|
||||
/decl/mob_organ_names/abberation
|
||||
hit_zones = list("fleshy mass", "maw", "eye(?)", "orifice(?)")
|
||||
hit_zones = list("fleshy mass", "maw", "eye(?)", "orifice(?)")
|
||||
|
||||
@@ -41,8 +41,10 @@
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
minbodytemp = 0
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
|
||||
|
||||
/mob/living/simple_mob/faithless/Process_Spacemove(var/check_drift = 0)
|
||||
return 1
|
||||
@@ -81,4 +83,4 @@
|
||||
melee_damage_upper = 28
|
||||
|
||||
/decl/mob_organ_names/faithless
|
||||
hit_zones = list("body", "left appendage", "right appendage", "shadowy tendrils", "head", "right stump", "left stump", "infernal eye")
|
||||
hit_zones = list("body", "left appendage", "right appendage", "shadowy tendrils", "head", "right stump", "left stump", "infernal eye")
|
||||
|
||||
@@ -40,8 +40,10 @@
|
||||
var/all_special_attacks = list(GA_ADS, GA_CALLDOWN, GA_LINES, GA_BULLETHELL, GA_ILLUSION, GA_CONFUSION, GA_SPEEDUP)
|
||||
|
||||
loot_list = list(/obj/item/device/nif/glitch = 100)
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
|
||||
|
||||
/obj/item/projectile/energy/slow_orb
|
||||
name = "TROJAN"
|
||||
@@ -317,6 +319,9 @@
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/ranged/aggressive/bossmob_glitch_fake
|
||||
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds
|
||||
|
||||
/mob/living/simple_mob/glitch_boss_fake/strong
|
||||
maxHealth = 100
|
||||
health = 100
|
||||
@@ -346,4 +351,4 @@
|
||||
pointblank = TRUE
|
||||
intelligence_level = AI_SMART
|
||||
vision_range = 9
|
||||
closest_distance = 4
|
||||
closest_distance = 4
|
||||
|
||||
@@ -28,8 +28,10 @@
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/tomatomeat
|
||||
meat_amount = 4
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain and shouldn't take damage anyways, but, sanity
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds anyways, but, sanity
|
||||
|
||||
/decl/mob_organ_names/tomato
|
||||
hit_zones = list("flesh", "leaf", "mouth")
|
||||
hit_zones = list("flesh", "leaf", "mouth")
|
||||
|
||||
@@ -31,8 +31,10 @@
|
||||
meat_amount = 2
|
||||
|
||||
pixel_x = -16
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
can_pain_emote = FALSE // CHOMPEdit: Can't feel pain and shouldn't take damage anyways, but, sanity
|
||||
death_sound = null // CHOMPEdit: Shouldn't trigger death sounds anyways, but, sanity
|
||||
|
||||
/mob/living/simple_mob/animal/space/tree/apply_melee_effects(var/atom/A)
|
||||
if(isliving(A))
|
||||
@@ -48,4 +50,4 @@
|
||||
qdel(src)
|
||||
|
||||
/decl/mob_organ_names/tree
|
||||
hit_zones = list("trunk", "branches", "twigs")
|
||||
hit_zones = list("trunk", "branches", "twigs")
|
||||
|
||||
@@ -81,9 +81,15 @@ var/list/_slime_default_emotes = list(
|
||||
var/mood = ":3" // Icon to use to display 'mood', as an overlay.
|
||||
|
||||
can_enter_vent_with = list(/obj/item/clothing/head)
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
|
||||
// CHOMPAdd: Pain Sounds
|
||||
pain_sound = 'sound/effects/slime_squish.ogg'
|
||||
pain_emote_1p = list("squish", "squelch")
|
||||
pain_emote_3p = list("squishes", "squelches")
|
||||
// CHOMPAdd End
|
||||
|
||||
/mob/living/simple_mob/slime/get_available_emotes()
|
||||
return global._slime_default_emotes.Copy()
|
||||
|
||||
@@ -253,4 +259,4 @@ var/list/_slime_default_emotes = list(
|
||||
visible_message("<b>\The [src]</b> squishes!")
|
||||
|
||||
/decl/mob_organ_names/slime
|
||||
hit_zones = list("cytoplasmic membrane")
|
||||
hit_zones = list("cytoplasmic membrane")
|
||||
|
||||
@@ -62,6 +62,8 @@
|
||||
var/blood_spawn = 0
|
||||
var/is_shifting = FALSE
|
||||
|
||||
can_pain_emote = FALSE
|
||||
|
||||
/mob/living/simple_mob/vore/demonAI/init_vore()
|
||||
if(!voremob_loaded)
|
||||
return
|
||||
|
||||
@@ -50,6 +50,17 @@
|
||||
say_list_type = /datum/say_list/fennec
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/passive
|
||||
|
||||
// CHOMPAdd: :c
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
|
||||
/mob/living/simple_mob/vore/fennec/Initialize()
|
||||
pain_sound = get_species_sound(canine_sounds["pain"])
|
||||
death_sound = get_species_sound(canine_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
// CHOMPAdd End
|
||||
|
||||
// Activate Noms!
|
||||
/mob/living/simple_mob/vore/fennec
|
||||
vore_active = 1
|
||||
@@ -58,12 +69,12 @@
|
||||
vore_pounce_chance = 40
|
||||
vore_default_mode = DM_HOLD
|
||||
vore_icons = SA_ICON_LIVING
|
||||
|
||||
|
||||
/mob/living/simple_mob/vore/fennec/init_vore() // CHOMPEdit - Allow for customizing bellies on vorecritters
|
||||
if(!voremob_loaded)
|
||||
return
|
||||
. = ..()
|
||||
|
||||
|
||||
var/obj/belly/B = vore_selected
|
||||
B.name = "stomach"
|
||||
B.desc = "Warm, slick, and wet. You're somewhere hot, tight, and very cramped, unless you happen to somehow be smaller than the fennec you're in! It's hard to see, as rippling pink walls clench and smother over your form. If you don't want to be here, a newspaper from a friend ought to get you out. ...right?"
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
vore_pounce_chance = 35 //More likely to nom
|
||||
vore_icons = SA_ICON_LIVING | SA_ICON_REST
|
||||
|
||||
// CHOMPAdd: Don't think its checked, but just in case
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
|
||||
/mob/living/simple_mob/otie/zorgoia/New()
|
||||
..()
|
||||
switch(rand(9))
|
||||
@@ -51,6 +55,8 @@
|
||||
color = "#ff9f00"
|
||||
if(9)
|
||||
color = "#393939"
|
||||
pain_sound = get_species_sound(canine_sounds["pain"]) // CHOMPAdd: Pain
|
||||
death_sound = get_species_sound(canine_sounds["death"]) // CHOMPAdd: Pain
|
||||
|
||||
/mob/living/simple_mob/otie/zorgoia/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
|
||||
name = "agressive zorgoia"
|
||||
@@ -77,4 +83,4 @@
|
||||
emote_hear = list("chuffs", "murrs", "churls", "hisses", "lets out a cougar like scream", "yawns")
|
||||
emote_see = list("licks their maw", "stretches", "yawns", "noodles")
|
||||
say_maybe_target = list("weh?")
|
||||
say_got_target = list("Rurrr!", "ROAR!", "RAH!")
|
||||
say_got_target = list("Rurrr!", "ROAR!", "RAH!")
|
||||
|
||||
@@ -39,8 +39,18 @@
|
||||
can_buckle = TRUE
|
||||
buckle_movable = TRUE
|
||||
buckle_lying = FALSE
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
// CHOMPAdd: :c
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
|
||||
/mob/living/simple_mob/vore/greatwolf/Initialize()
|
||||
pain_sound = get_species_sound(canine_sounds["pain"])
|
||||
death_sound = get_species_sound(canine_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
// CHOMPAdd End
|
||||
|
||||
/mob/living/simple_mob/vore/greatwolf
|
||||
|
||||
|
||||
@@ -48,8 +48,13 @@
|
||||
vore_bump_emote = "tries to snap up"
|
||||
|
||||
nom_mob = TRUE
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
// CHOMPAdd: :c
|
||||
pain_sound = canine_pain_sounds
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
death_sound = canine_death_sounds
|
||||
|
||||
/datum/category_item/catalogue/fauna/leopardmander
|
||||
name = "Sivian Fauna - Va'aen Drake"
|
||||
|
||||
@@ -49,6 +49,16 @@
|
||||
vore_bump_emote = "tries to snap up"
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
// CHOMPAdd: :c
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
|
||||
/mob/living/simple_mob/vore/leopardmander/Initialize()
|
||||
pain_sound = get_species_sound(canine_sounds["pain"])
|
||||
death_sound = get_species_sound(canine_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
// CHOMPAdd End
|
||||
|
||||
/datum/category_item/catalogue/fauna/leopardmander
|
||||
name = "Sivian Fauna - Va'aen Drake"
|
||||
|
||||
@@ -46,8 +46,19 @@
|
||||
var/mob/living/carbon/human/friend
|
||||
var/tamed = 0
|
||||
var/tame_chance = 50 //It's a fiddy-fiddy default you may get a buddy pal or you may get mauled and ate. Win-win!
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
// CHOMPAdd: :c
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
|
||||
/mob/living/simple_mob/otie/Initialize()
|
||||
pain_sound = get_species_sound(canine_sounds["pain"])
|
||||
death_sound = get_species_sound(canine_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
// CHOMPAdd End
|
||||
|
||||
|
||||
// Activate Noms!
|
||||
|
||||
|
||||
@@ -41,8 +41,19 @@
|
||||
|
||||
say_list_type = /datum/say_list/panther
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
// CHOMPAdd: :c
|
||||
pain_emote_1p = list("yowl", "growl")
|
||||
pain_emote_3p = list("yowls", "growls")
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/panther/Initialize()
|
||||
pain_sound = get_species_sound(feline_sounds["pain"])
|
||||
death_sound = get_species_sound(feline_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
// CHOMPAdd End
|
||||
|
||||
|
||||
// Activate Noms!
|
||||
/mob/living/simple_mob/vore/aggressive/panther
|
||||
|
||||
@@ -32,19 +32,30 @@
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
|
||||
catalogue_data = list(/datum/category_item/catalogue/fauna/wolf)
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
// CHOMPAdd: :c
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/Initialize()
|
||||
pain_sound = get_species_sound(canine_sounds["pain"])
|
||||
death_sound = get_species_sound(canine_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
// CHOMPAdd End
|
||||
|
||||
|
||||
// Activate Noms!
|
||||
/mob/living/simple_mob/animal/wolf
|
||||
vore_active = 1
|
||||
vore_icons = SA_ICON_LIVING
|
||||
|
||||
|
||||
/mob/living/simple_mob/animal/wolf/init_vore() // CHOMPEdit - Allow for customizing bellies on vorecritters
|
||||
if(!voremob_loaded)
|
||||
return
|
||||
. = ..()
|
||||
|
||||
|
||||
var/obj/belly/B = vore_selected
|
||||
B.vore_sound = "Tauric Swallow" // CHOMPedit - Fancy Vore Sounds
|
||||
B.release_sound = "Pred Escape" // CHOMPedit - Fancy Vore Sounds
|
||||
|
||||
@@ -23,8 +23,19 @@
|
||||
|
||||
say_list_type = /datum/say_list/wolfgirl
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/retaliate/cooperative/wolfgirl
|
||||
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
// CHOMPAdd: :c
|
||||
pain_emote_1p = list("yelp", "whine", "bark", "growl")
|
||||
pain_emote_3p = list("yelps", "whines", "barks", "growls")
|
||||
|
||||
/mob/living/simple_mob/vore/wolfgirl/Initialize()
|
||||
pain_sound = get_species_sound(canine_sounds["pain"])
|
||||
death_sound = get_species_sound(canine_sounds["death"])
|
||||
|
||||
. = ..()
|
||||
// CHOMPAdd End
|
||||
|
||||
|
||||
// Activate Noms!
|
||||
/mob/living/simple_mob/vore/wolfgirl
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
/mob/living/voice
|
||||
no_vore = TRUE
|
||||
no_vore = TRUE
|
||||
can_pain_emote = FALSE // CHOMPEdit: Sanity/safety
|
||||
|
||||
@@ -38,12 +38,20 @@
|
||||
multilimb_pain_time = world.time + (100 - power)
|
||||
last_pain_message = message
|
||||
to_chat(src,message)
|
||||
// CHOMPAdd: Emote in pain for custom pain, too
|
||||
if(prob(power) && !isbelly(loc)) // No pain noises inside bellies.
|
||||
emote("pain")
|
||||
// CHOMPAdd End
|
||||
|
||||
else if(force || (message != last_pain_message) || (world.time >= next_pain_time))
|
||||
last_pain_message = message
|
||||
to_chat(src,message)
|
||||
next_pain_time = world.time + (100 - power)
|
||||
multilimb_pain_time = world.time + (100 - power)
|
||||
// CHOMPAdd: Emote in pain for custom pain, too
|
||||
if(prob(power) && !isbelly(loc)) // No pain noises inside bellies.
|
||||
emote("pain")
|
||||
// CHOMPAdd End
|
||||
|
||||
/mob/living/carbon/human/proc/handle_pain()
|
||||
if(stat)
|
||||
|
||||
@@ -7,28 +7,57 @@
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
return "You [pick(H.species.pain_verb_1p)] in pain!"
|
||||
else
|
||||
var/mob/living/M = user
|
||||
if(M.pain_emote_1p) // Sanity
|
||||
return "You [pick(M.pain_emote_1p)]!"
|
||||
. = ..()
|
||||
|
||||
/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!"
|
||||
else
|
||||
var/mob/living/M = user
|
||||
if(M.pain_emote_3p) // Sanity
|
||||
return "[pick(M.pain_emote_3p)]!"
|
||||
. = ..()
|
||||
|
||||
/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
|
||||
)
|
||||
if(ishuman(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
|
||||
)
|
||||
else
|
||||
return list(
|
||||
"sound" = H.species.male_pain_sound,
|
||||
"vol" = 60,
|
||||
"exr" = 10,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
var/mob/living/M = user
|
||||
if((M.get_gender() == FEMALE) && M.female_pain_sound) // If our mob has custom sounds per-gender defined, most won't.
|
||||
return list(
|
||||
"sound" = M.female_pain_sound,
|
||||
"vol" = 80,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
else if((M.get_gender() == MALE) && M.male_pain_sound) // If our mob has custom sounds per-gender defined, most won't.
|
||||
return list(
|
||||
"sound" = M.male_pain_sound,
|
||||
"vol" = 80,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
else
|
||||
return list(
|
||||
"sound" = M.pain_sound,
|
||||
"vol" = 80,
|
||||
"volchannel" = VOLUME_CHANNEL_INJ_DEATH
|
||||
)
|
||||
|
||||
@@ -19,14 +19,16 @@
|
||||
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')
|
||||
var/species_sounds
|
||||
|
||||
male_scream_sound = null
|
||||
female_scream_sound = null
|
||||
var/male_gasp_sound = null
|
||||
var/female_gasp_sound = null
|
||||
var/male_pain_sound = null
|
||||
var/female_pain_sound = null
|
||||
var/male_death_sound = null
|
||||
var/female_death_sound = null
|
||||
|
||||
// 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.
|
||||
@@ -59,3 +61,14 @@
|
||||
for(var/datum/trait/env_trait in env_traits)
|
||||
env_trait.handle_environment_special(H)
|
||||
return
|
||||
|
||||
/datum/species/New()
|
||||
male_scream_sound = get_species_sound(male_generic_sounds["scream"])
|
||||
female_scream_sound = get_species_sound(female_generic_sounds["scream"])
|
||||
male_gasp_sound = get_species_sound(male_generic_sounds["gasp"])
|
||||
female_gasp_sound = get_species_sound(female_generic_sounds["gasp"])
|
||||
male_pain_sound = get_species_sound(male_generic_sounds["pain"])
|
||||
female_pain_sound = get_species_sound(female_generic_sounds["pain"])
|
||||
male_death_sound = get_species_sound(male_generic_sounds["death"])
|
||||
female_death_sound = get_species_sound(female_generic_sounds["death"])
|
||||
..()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/datum/species/proc/copy_species_sounds(var/datum/species/S, var/species_sounds, var/custom_base)
|
||||
switch(species_sounds)
|
||||
get_species_sound(species_sounds)
|
||||
if("Canine")
|
||||
S.male_scream_sound = canine_scream_sounds
|
||||
S.female_scream_sound = canine_scream_sounds
|
||||
@@ -36,8 +37,21 @@
|
||||
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("Robotic")
|
||||
S.male_scream_sound = robot_scream_sounds
|
||||
S.female_scream_sound = robot_scream_sounds
|
||||
S.male_gasp_sound = null
|
||||
S.female_gasp_sound = null
|
||||
S.male_pain_sound = robot_pain_sounds
|
||||
S.female_pain_sound = robot_pain_sounds
|
||||
S.male_death_sound = robot_death_sounds
|
||||
S.female_death_sound = robot_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]
|
||||
var/datum/species/os
|
||||
if(!custom_base) // Safety
|
||||
os = base_species
|
||||
else
|
||||
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
|
||||
@@ -46,3 +60,12 @@
|
||||
S.female_pain_sound = os.female_pain_sound
|
||||
S.male_death_sound = os.male_death_sound
|
||||
S.female_death_sound = os.female_death_sound
|
||||
if("None") // If our users intentionally want no sounds
|
||||
S.male_scream_sound = null
|
||||
S.female_scream_sound = null
|
||||
S.male_gasp_sound = null
|
||||
S.female_gasp_sound = null
|
||||
S.male_pain_sound = null
|
||||
S.female_pain_sound = null
|
||||
S.male_death_sound = null
|
||||
S.female_death_sound = null
|
||||
|
||||
@@ -14,4 +14,25 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
|
||||
/mob/living/New(var/newloc)
|
||||
..()
|
||||
verbs |= /mob/living/proc/click_self
|
||||
*/
|
||||
*/
|
||||
|
||||
/mob/living
|
||||
/* TL;DR - the following is a lot of copypasta, but allows us to give simplemobs pain and death sounds.
|
||||
* Different from carbons, where we check species, here we just check on the mob itself.
|
||||
* TBD: Maybe port over from species to mob?
|
||||
*/
|
||||
var/can_pain_emote = TRUE
|
||||
var/pain_sound = null
|
||||
var/female_pain_sound = null
|
||||
var/male_pain_sound = null
|
||||
var/pain_emote_1p = null
|
||||
var/pain_emote_3p = null
|
||||
/* // Not sure if needed, screams aren't a carbon thing rn.
|
||||
var/scream_sound = null
|
||||
var/female_scream_sound = null
|
||||
var/male_scream_sound = null
|
||||
var/scream_emote = null
|
||||
*/
|
||||
var/death_sound = null
|
||||
var/male_death_sound = null
|
||||
var/female_death_sound = null
|
||||
|
||||
BIN
modular_chomp/sound/voice/death/spider/spider_death.ogg
Normal file
BIN
modular_chomp/sound/voice/death/spider/spider_death.ogg
Normal file
Binary file not shown.
BIN
sound/voice/raccoon.ogg
Normal file
BIN
sound/voice/raccoon.ogg
Normal file
Binary file not shown.
@@ -3297,6 +3297,7 @@
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\humanoid\clown.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\humanoid\cultist_ch.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid_ch.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid_vr.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\humanoid\pirates.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\humanoid\pirates_ch.dm"
|
||||
@@ -4584,7 +4585,6 @@
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\update_icons.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\species.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\species_shapeshift_ch.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\species_vr.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\outsider\vox.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\prommie_blob.dm"
|
||||
#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\station.dm"
|
||||
|
||||
Reference in New Issue
Block a user