Vore sound tweaks (#491)

* sound overhaul

* renaming folders correctly

* sound code and compile fixes

* sounds working

testing prey-induced loop, as well

* loops should stop upon ejections
This commit is contained in:
Poojawa
2017-04-20 09:08:26 -05:00
committed by GitHub
parent 5732fa5b2d
commit e760a8a472
137 changed files with 165 additions and 68 deletions
+7 -4
View File
@@ -11,7 +11,7 @@
/datum/belly
var/name // Name of this location
var/inside_flavor // Flavor text description of inside sight/sound/smells/feels.
var/vore_sound = 'sound/vore/gulp.ogg' // Sound when ingesting someone
var/vore_sound = 'sound/vore/pred/swallow_01.ogg' // Sound when ingesting someone
var/vore_verb = "ingest" // Verb for eating with this in messages
var/human_prey_swallow_time = 100 // Time in deciseconds to swallow /mob/living/carbon/human
var/nonhuman_prey_swallow_time = 60 // Time in deciseconds to swallow anything else
@@ -106,6 +106,7 @@
return 0
for (var/atom/movable/M in internal_contents)
M.forceMove(owner.loc) // Move the belly contents into the same location as belly's owner.
M << sound(null, repeat = 0, wait = 0, volume = 80, channel = 50)
internal_contents.Remove(M) // Remove from the belly contents
var/datum/belly/B = check_belly(owner) // This makes sure that the mob behaves properly if released into another mob
@@ -123,6 +124,7 @@
return FALSE // They weren't in this belly anyway
M.forceMove(owner.loc) // Move the belly contents into the same location as belly's owner.
M << sound(null, repeat = 0, wait = 0, volume = 80, channel = 50)
src.internal_contents.Add(M) // Remove from the belly contents
var/datum/belly/B = check_belly(owner)
if(B)
@@ -141,6 +143,7 @@
prey.forceMove(owner)
internal_contents.Add(prey)
prey << sound('sound/vore/prey/loop.ogg', repeat = 1, wait = 0, volume = 80, channel = 50)
if(inside_flavor)
prey << "<span class='notice'><B>[inside_flavor]</B></span>"
@@ -221,7 +224,7 @@
/datum/belly/proc/digestion_death(var/mob/living/M)
is_full = TRUE
internal_contents.Remove(M)
M << sound(null, repeat = 0, wait = 0, volume = 80, channel = 50)
// If digested prey is also a pred... anyone inside their bellies gets moved up.
if (is_vore_predator(M))
for (var/bellytype in M.vore_organs)
@@ -285,7 +288,7 @@
// for(var/mob/M in hearers(4, owner))
// M.visible_message(struggle_outer_message) // hearable
R.visible_message( "<span class='alert'>[struggle_outer_message]</span>", "<span class='alert'>[struggle_user_message]</span>")
playsound(R.loc, "struggle_sounds", 50, 0, -5)
playsound(R.loc, "struggle_sound", 80, 0, -5)
if(escapable && R.a_intent != "help") //If the stomach has escapable enabled and the person is actually trying to kick out
to_chat(R, "<span class='warning'>You attempt to climb out of \the [name].</span>")
@@ -296,7 +299,7 @@
release_specific_contents(R)
to_chat(R, "<span class='warning'>You climb out of \the [name].</span>")
to_chat(owner, "<span class='warning'>[R] climbs out of your [name]!</span>")
for(var/mob/M in hearers(4, owner))
for(var/mob/M in viewers(4, owner))
M.visible_message("<span class='warning'>[R] climbs out of [owner]'s [name]!</span>", 2)
return
else if(!(R in internal_contents)) //Aren't even in the belly. Quietly fail.
+16 -8
View File
@@ -18,11 +18,13 @@
//////////////////////////// DM_DIGEST ////////////////////////////
if(digest_mode == DM_DIGEST)
if(prob(50))
playsound(owner.loc, "digestion_sounds", 50, 0, -5)
for (var/mob/living/M in internal_contents)
if(prob(50))
M.stop_sound_channel(CHANNEL_PRED)
playsound(owner.loc,"digest_pred",75,0,-5,channel=CHANNEL_PRED)
M.stop_sound_channel(CHANNEL_PRED)
M.playsound_local(get_turf(M),"digest_prey",80, channel=CHANNEL_PREY)
//Pref protection!
if (!M.digestable)
continue
@@ -46,7 +48,10 @@
M.visible_message("<span class='notice'>You watch as [owner]'s form loses its additions.</span>", "<span class='warning'>[digest_alert_prey]</span>")
owner.nutrition += 400 // so eating dead mobs gives you *something*.
playsound(owner.loc, "death_gurgles", 50, 0, -5)
M.stop_sound_channel(CHANNEL_PRED)
playsound(owner.loc,"death_pred",75,0,-5,channel=CHANNEL_PRED)
M.stop_sound_channel(CHANNEL_PRED)
M.playsound_local(get_turf(M),"death_prey",80, channel=CHANNEL_PREY)
digestion_death(M)
owner.update_icons()
continue
@@ -60,10 +65,13 @@
///////////////////////////// DM_HEAL /////////////////////////////
if(digest_mode == DM_HEAL)
if(prob(50))
playsound(owner.loc, "digestion_sounds", 45, 0, -6) //very quiet gurgles, supposedly.
for (var/mob/living/M in internal_contents)
if(prob(50))
M.stop_sound_channel(CHANNEL_PRED)
playsound(owner.loc,"digest_pred",75,0,-5,channel=CHANNEL_PRED)
M.stop_sound_channel(CHANNEL_PRED)
M.playsound_local(get_turf(M),"digest_prey",80, channel=CHANNEL_PREY)
if(M.stat != DEAD)
if(owner.nutrition >= NUTRITION_LEVEL_STARVING && (M.health < M.maxHealth))
M.adjustBruteLoss(-1)
+5 -5
View File
@@ -231,7 +231,7 @@
return TRUE
selected.release_all_contents()
playsound(user, 'sound/effects/splat.ogg', 50, 1)
playsound(user, 'sound/vore/pred/escape.ogg', volume=80)
user.loc << "<span class='danger'>Everything is released from [user]!</span>"
if("Move all")
@@ -252,7 +252,7 @@
to_chat(tgt, "<span class='warning'>You're squished from [user]'s [selected] to their [B]!</span>")
for(var/mob/hearer in range(1,user))
hearer << sound('sound/vore/squish2.ogg',volume=80)
hearer << sound('sound/vore/pred/stomachmove.ogg',volume=80)
return TRUE
@@ -288,7 +288,7 @@
to_chat(tgt, "<span class='warning'>You're squished from [user]'s [lowertext(selected.name)] to their [lowertext(B.name)]!</span>")
for(var/mob/hearer in range(1,user))
hearer << sound('sound/vore/squish2.ogg',volume=80)
hearer << sound('sound/vore/pred/stomachmove.ogg',volume=80)
if(href_list["newbelly"])
if(user.vore_organs.len >= 10)
@@ -414,12 +414,12 @@
selected.vore_verb = new_verb
if(href_list["b_sound"])
var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") in GLOB.vore_sounds + "Cancel - No Changes"
var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") in GLOB.pred_vore_sounds + "Cancel - No Changes"
if(choice == "Cancel")
return 1
selected.vore_sound = GLOB.vore_sounds[choice]
selected.vore_sound = GLOB.pred_vore_sounds[choice]
if(href_list["b_soundtest"])
user << selected.vore_sound