Adds sensitive hearing (#12151)

This commit is contained in:
Casper3667
2021-10-15 19:02:12 +02:00
committed by GitHub
parent 781ca0dd26
commit fb13f6615f
46 changed files with 330 additions and 59 deletions
+7 -2
View File
@@ -41,14 +41,19 @@
return
if(emagged)
if(insults)
user.visible_message("<B>[user]</B> broadcasts, <FONT size=3>\"[pick(insultmsg)]\"</FONT>")
user.audible_message("<B>[user]</B> broadcasts, <FONT size=3>\"[pick(insultmsg)]\"</FONT>", "<B>[user]</B> speaks into \the [src].", 7)
insults--
else
to_chat(user, SPAN_WARNING("*BZZZZzzzzzt*"))
else
user.visible_message("<B>[user]</B> broadcasts, <FONT size=3>\"[message]\"</FONT>")
user.audible_message("<B>[user]</B> broadcasts, <FONT size=3>\"[message]\"</FONT>", "<B>[user]</B> speaks into \the [src].", 7)
if(activation_sound)
playsound(loc, activation_sound, 100, 0, 1)
for (var/mob/living/carbon/human/C in range(user, 2) - user)
if (C in range(user, 1))
C.earpain(3, TRUE, 2)
else
C.earpain(2, TRUE, 2)
spamcheck = world.time + 50
return
@@ -65,20 +65,28 @@
if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M))
if(!(ear_safety > 0))
if ((prob(14) || (M == src.loc && prob(70))))
M.ear_damage += rand(1, 10)
M.adjustEarDamage(rand(1, 10), 0, TRUE)
else
M.ear_damage += rand(0, 5)
M.ear_deaf = max(M.ear_deaf,15)
M.adjustEarDamage(rand(0, 5), 15, TRUE)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if (H.is_listening())
if (H.get_hearing_sensitivity() == HEARING_VERY_SENSITIVE)
H.Weaken(5)
else
H.Weaken(2)
else if(get_dist(M, T) <= 5)
if(!ear_safety)
sound_to(M, sound('sound/weapons/flash_ring.ogg',0,1,0,100))
M.ear_damage += rand(0, 3)
M.ear_deaf = max(M.ear_deaf,10)
M.adjustEarDamage(rand(0, 3), 10, TRUE)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if (H.get_hearing_sensitivity() == HEARING_VERY_SENSITIVE)
H.Weaken(2)
else if(!ear_safety)
M.ear_damage += rand(0, 1)
M.ear_deaf = max(M.ear_deaf,5)
M.adjustEarDamage(rand(0, 1), 5, TRUE)
//This really should be in mob not every check
if(ishuman(M))
@@ -89,15 +97,6 @@
if(!banglet && !(istype(src , /obj/item/grenade/flashbang/clusterbang)))
if (E.damage >= E.min_broken_damage)
to_chat(M, "<span class='danger'>You can't see anything!</span>")
if (M.ear_damage >= 15)
to_chat(M, "<span class='danger'>Your ears start to ring badly!</span>")
if(!banglet && !(istype(src , /obj/item/grenade/flashbang/clusterbang)))
if (prob(M.ear_damage - 10 + 5))
to_chat(M, "<span class='danger'>You can't hear anything!</span>")
M.sdisabilities |= DEAF
else
if (M.ear_damage >= 5)
to_chat(M, "<span class='danger'>Your ears start to ring!</span>")
M.update_icon()
/obj/item/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve
@@ -459,7 +459,7 @@
escapee.next_move = world.time + 100
escapee.last_special = world.time + 100
to_chat(escapee, "<span class='warning'>You lean on the back of \the [src] and start pushing the door open. (this will take about [breakout_time] minutes)</span>")
visible_message("<span class='danger'>\The [src] begins to shake violently!</span>")
visible_message(SPAN_DANGER("\The [src] begins to shake violently!"), SPAN_DANGER("You hear the sound of metal trashing around nearby."), intent_message = THUNK_SOUND)
var/time = 6 * breakout_time * 2
@@ -471,6 +471,7 @@
for(var/i in 1 to time) //minutes * 6 * 5seconds * 2
playsound(loc, 'sound/effects/grillehit.ogg', 100, 1)
shake_animation()
intent_message(THUNK_SOUND)
if (bar)
bar.update(i)