Merge pull request #5842 from Rykka-Stormheart/shep-dev-ear-ringing

Adds Deafened Feedback, enhances looping sounds further
This commit is contained in:
Razgriz
2023-03-04 16:37:29 -07:00
committed by GitHub
33 changed files with 127 additions and 16 deletions

View File

@@ -38,6 +38,8 @@
// If inside the blast radius + world.view - 2
if(dist <= round(max_range + world.view - 2, 1))
M.playsound_local(epicenter, get_sfx("explosion"), 100, 1, frequency, falloff = 5) // get_sfx() is so that everyone gets the same sound
var/mob/living/mL = M // CHOMPStation Add: Ear Ringing/Deafness
mL.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
else if(dist <= far_dist)
var/far_volume = CLAMP(far_dist, 30, 50) // Volume is based on explosion size and dist
far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion

View File

@@ -143,6 +143,7 @@
M.SetSleeping(0)
M.stuttering += 20
M.ear_deaf += 30
M.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
M.Weaken(3)
if(prob(30))
M.Stun(10)

View File

@@ -38,6 +38,7 @@
else
H.Confuse(8)
H.Weaken(1)
H.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
if ((prob(14) || (H == src.loc && prob(70))))
H.ear_damage += rand(1, 10)
else
@@ -54,6 +55,7 @@
H.Confuse(6)
H.ear_damage += rand(0, 3)
H.ear_deaf = max(H.ear_deaf,10)
H.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
if(H.client)
if(prob(50))
@@ -65,15 +67,18 @@
H.Confuse(4)
H.ear_damage += rand(0, 1)
H.ear_deaf = max(H.ear_deaf,5)
H.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
if(H.ear_damage >= 15)
to_chat(H, "<span class='danger'>Your ears start to ring badly!</span>")
H.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
if(prob(H.ear_damage - 5))
to_chat(H, "<span class='danger'>You can't hear anything!</span>")
H.sdisabilities |= DEAF
else if(H.ear_damage >= 5)
to_chat(H, "<span class='danger'>Your ears start to ring!</span>")
H.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
if(istype(L, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = L
if(L.client)
@@ -82,4 +87,4 @@
else
L.client.spinright()
to_chat(R, "<span class='critical'>Gyroscopic failure.</span>")
return
return

View File

@@ -64,17 +64,20 @@
else
M.ear_damage += rand(0, 5)
M.ear_deaf = max(M.ear_deaf,15)
M.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
else if(get_dist(M, T) <= round(max_range * 0.5 * bang_effectiveness))
if(!ear_safety)
M.Confuse(8)
M.ear_damage += rand(0, 3)
M.ear_deaf = max(M.ear_deaf,10)
M.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
else if(!ear_safety && get_dist(M, T) <= (max_range * 0.7 * bang_effectiveness))
M.Confuse(4)
M.ear_damage += rand(0, 1)
M.ear_deaf = max(M.ear_deaf,5)
M.deaf_loop.start() // CHOMPStation Add: Ear Ringing/Deafness
//This really should be in mob not every check
if(ishuman(M))
@@ -162,4 +165,4 @@
var/dettime = rand(15,60)
spawn(dettime)
detonate()
detonate()