A whole bunch of vore related fixes.

-Fixes prey not hearing gurgles from inside the gut.
-Prey now gets it privately in full glory.
-Tweaked the miniscule vore sound falloff that made things barely audible at all. People not in the immediately adjacent tiles may hear some faint noises if they listen intently enough, but that feels like a less of a problem compared to the stuff being barely hearable on ground zero tile.
-Fixes hunger noises.
-Hunger noises now scale gradually from 0 to 100% vol in the span of 250 to 0 nutrition.
-Fixes attack anims messing up pixel offsets on our big voremobs and dogborgs.
-Removes prey size multiplier from mob vore "fullness" that would prevent 1-seater mobs from touching any even slightly taller than average chars. They already have a max size blocker in the will_eat thing.
-Makes bellies hide prey deathmessages again.
-Fixes security oties not changing to hold mode for human arrests.(I swear I had fixed this thing before???)
This commit is contained in:
Verkister
2018-03-05 14:38:55 +02:00
parent 6ce25e9166
commit 6e816a3517
14 changed files with 35 additions and 12 deletions
+5 -5
View File
@@ -1,4 +1,4 @@
#define VORE_SOUND_FALLOFF 0.05
#define VORE_SOUND_FALLOFF 0.1
//
// Belly system 2.0, now using objects instead of datums because EH at datums.
@@ -44,7 +44,7 @@
var/tmp/list/items_preserved = list() // Stuff that wont digest so we shouldn't process it again.
var/tmp/next_emote = 0 // When we're supposed to print our next emote, as a belly controller tick #
var/tmp/recent_sound = FALSE // Prevent audio spam
// Don't forget to watch your commas at the end of each line if you change these.
var/list/struggle_messages_outside = list(
"%pred's %belly wobbles with a squirming meal.",
@@ -152,14 +152,14 @@
//Generic entered message
to_chat(owner,"<span class='notice'>[thing] slides into your [lowertext(name)].</span>")
//Sound w/ antispam flag setting
if(vore_sound && !recent_sound)
var/soundfile = vore_sounds[vore_sound]
if(soundfile)
playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises)
recent_sound = TRUE
//Messages if it's a mob
if(isliving(thing))
var/mob/living/M = thing
@@ -168,7 +168,7 @@
var/taste
if(can_taste && (taste = M.get_taste_message(FALSE)))
to_chat(owner, "<span class='notice'>[M] tastes of [taste].</span>")
// Release all contents of this belly into the owning mob's location.
// If that location is another mob, contents are transferred into whichever of its bellies the owning mob is in.
// Returns the number of mobs so released.
+4 -2
View File
@@ -3,7 +3,7 @@
if((times_fired < next_process) || !contents.len)
recent_sound = FALSE
return SSBELLIES_IGNORED
if(loc != owner)
if(istype(owner))
loc = owner
@@ -41,7 +41,7 @@
if(prob(50)) //Was SO OFTEN. AAAA.
play_sound = pick(digestion_sounds)
for (var/mob/living/M in contents)
//Pref protection!
if (!M.digestable || M.absorbed)
@@ -472,5 +472,7 @@
put_in_egg(P,1)
if(play_sound)
for (var/mob/living/M in contents)
M << sound(play_sound)
playsound(src, play_sound, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, ignore_walls = FALSE, preference = /datum/client_preference/digestion_noises)
return SSBELLIES_PROCESSED