Kitchen Sink PR (#17515)

* insanity

- Crawling
- Recursive Listeners
- Global Conversion to GLOB.
- Sound channels (and sound (but not looping sound yet))
- Species and gender specific sounds
- Admin proc to enable vore antag on a target
- Dying by being crushed inside of shoes now enables your vore_death flag
- *pain emote
- RNG Spaceslipping removed
- Selecting the groin with help intent will do a bellyrub on the target
- Xenochimera get lick wounds
- Wolves now get stomachs (and stomach overlays)
- Proper vantag handling
- Staff exiting will now notify staff
- Modular computers get a power on sound now

GET IN THERE

* whoops forgot to give it to mobs

* Bellyrubbing is now an emote

* Update vorestation.dme

* some small edits

actually gives voice freq a valid starting selection
makes the default voice less jarring

* Update atoms_movable.dm

* Update atoms_movable.dm
This commit is contained in:
Cameron Lennox
2025-04-25 16:21:35 -04:00
committed by GitHub
parent 4e2e0b77c6
commit d0787362cd
337 changed files with 835 additions and 346 deletions
@@ -11,10 +11,11 @@
var/weight_loss = 50 // Weight loss rate.
var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon. Default sharp.
var/offset_override = FALSE
var/voice_freq = 0
var/voice_sound = "beep-boop"
var/voice_freq = 42500
var/voice_sound = "goon speak 1"
var/custom_speech_bubble = "default"
var/custom_footstep = "Default"
var/species_sound = "Unset"
// Definition of the stuff for Sizing
/datum/category_item/player_setup_item/vore/size
@@ -267,6 +267,15 @@ var/global/list/valid_bloodreagents = list("default",REAGENT_ID_IRON,REAGENT_ID_
if(!(pref.blood_reagents == "default"))
new_S.blood_reagents = pref.blood_reagents
//Any additional non-trait settings can be applied here
new_S.blood_color = pref.blood_color
var/species_sounds_to_copy = pref.species_sound // What sounds are we using?
if(species_sounds_to_copy == "Unset") // Are we unset?
species_sounds_to_copy = select_default_species_sound(pref) // This will also grab gendered versions of the sounds, if they exist.
new_S.species_sounds = species_sounds_to_copy // Now we send our sounds over to the mob
if(pref.species == SPECIES_CUSTOM)
//Statistics for this would be nice
var/english_traits = english_list(new_S.traits, and_text = ";", comma_text = ";")
@@ -286,6 +295,7 @@ var/global/list/valid_bloodreagents = list("default",REAGENT_ID_IRON,REAGENT_ID_
var/points_left = pref.starting_trait_points
for(var/T in pref.pos_traits + pref.neg_traits)
points_left -= GLOB.traits_costs[T]
if(T in pref.pos_traits)
@@ -295,21 +305,21 @@ var/global/list/valid_bloodreagents = list("default",REAGENT_ID_IRON,REAGENT_ID_
if(points_left < 0 || traits_left < 0 || (!pref.custom_species && pref.species == SPECIES_CUSTOM))
. += span_red(span_bold("^ Fix things! ^")) + "<br>"
. += "<a href='byond://?src=\ref[src];add_trait=[POSITIVE_MODE]'>Positive Trait +</a><br>"
. += "<a href='byond://?src=\ref[src];add_trait=[POSITIVE_MODE]'>Positive Trait(s) (Limited) +</a><br>"
. += "<ul>"
for(var/T in pref.pos_traits)
var/datum/trait/trait = GLOB.positive_traits[T]
. += "<li>- <a href='byond://?src=\ref[src];clicked_pos_trait=[T]'>[trait.name] ([trait.cost])</a> [get_html_for_trait(trait, pref.pos_traits[T])]</li>"
. += "</ul>"
. += "<a href='byond://?src=\ref[src];add_trait=[NEUTRAL_MODE]'>Neutral Trait +</a><br>"
. += "<a href='byond://?src=\ref[src];add_trait=[NEUTRAL_MODE]'>Neutral Trait(s) (No Limit) +</a><br>"
. += "<ul>"
for(var/T in pref.neu_traits)
var/datum/trait/trait = GLOB.neutral_traits[T]
. += "<li>- <a href='byond://?src=\ref[src];clicked_neu_trait=[T]'>[trait.name] ([trait.cost])</a> [get_html_for_trait(trait, pref.neu_traits[T])]</li>"
. += "</ul>"
. += "<a href='byond://?src=\ref[src];add_trait=[NEGATIVE_MODE]'>Negative Trait +</a><br>"
. += "<a href='byond://?src=\ref[src];add_trait=[NEGATIVE_MODE]'>Negative Trait(s) (No Limit) +</a><br>"
. += "<ul>"
for(var/T in pref.neg_traits)
var/datum/trait/trait = GLOB.negative_traits[T]