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:
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user