From e311f17431a1ec12caa722bfd9c70ec973957fd4 Mon Sep 17 00:00:00 2001 From: MacHac Date: Wed, 20 May 2020 01:07:04 -0400 Subject: [PATCH 1/3] Rebalanced security grenades --- code/game/objects/items/grenades/flashbang.dm | 22 +++++++++++-------- .../mob/living/carbon/alien/alien_defense.dm | 2 +- .../mob/living/carbon/carbon_defense.dm | 6 ++--- .../carbon/human/species_types/golems.dm | 6 ++--- .../chemistry/reagents/food_reagents.dm | 9 ++++++-- .../chemistry/recipes/pyrotechnics.dm | 4 ++-- 6 files changed, 29 insertions(+), 20 deletions(-) diff --git a/code/game/objects/items/grenades/flashbang.dm b/code/game/objects/items/grenades/flashbang.dm index 73224e1d5eb2..55d8639c02b6 100644 --- a/code/game/objects/items/grenades/flashbang.dm +++ b/code/game/objects/items/grenades/flashbang.dm @@ -21,16 +21,20 @@ /obj/item/grenade/flashbang/proc/bang(turf/T , mob/living/M) if(M.stat == DEAD) //They're dead! return - M.show_message("BANG", 2) + M.show_message("BANG", 2) var/distance = max(0,get_dist(get_turf(src),T)) - -//Flash - if(M.flash_act(affect_silicon = 1)) - M.Paralyze(max(200/max(1,distance), 60)) -//Bang + message_admins(distance) if(!distance || loc == M || loc == M.loc) //Stop allahu akbarring rooms with this. M.Paralyze(200) - M.soundbang_act(1, 200, 10, 15) + M.soundbang_act(1, 20, 10, 15) + return + + var/flashed = M.flash_act(affect_silicon = 1) + var/banged = M.soundbang_act(1, 20/max(1,distance), rand(0, 5)) - else - M.soundbang_act(1, max(200/max(1,distance), 60), rand(0, 5)) + // If missing two resists + if(flashed > 0 && banged > 0) + M.Paralyze(max(150/max(1,distance), 60)) + // If missing one resist + else if (flashed > 0 || banged > 0) + M.Paralyze(max(50/max(1, distance), 30)) diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index 927345b6fde3..13c0e63170f9 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -123,7 +123,7 @@ In all, this is a lot like the monkey code. /N Unconscious(20) adjustEarDamage(15,60) -/mob/living/carbon/alien/soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 5, deafen_pwr = 15) +/mob/living/carbon/alien/soundbang_act(intensity = 1, conf_pwr = 20, damage_pwr = 5, deafen_pwr = 15) return 0 /mob/living/carbon/alien/acid_act(acidpwr, acid_volume) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 1611b4deaa23..18df8d3e899d 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -340,7 +340,7 @@ mind.disrupt_spells(0) -/mob/living/carbon/soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 5, deafen_pwr = 15) +/mob/living/carbon/soundbang_act(intensity = 1, conf_pwr = 20, damage_pwr = 5, deafen_pwr = 15) var/list/reflist = list(intensity) // Need to wrap this in a list so we can pass a reference SEND_SIGNAL(src, COMSIG_CARBON_SOUNDBANG, reflist) intensity = reflist[1] @@ -348,8 +348,8 @@ var/obj/item/organ/ears/ears = getorganslot(ORGAN_SLOT_EARS) var/effect_amount = intensity - ear_safety if(effect_amount > 0) - if(stun_pwr) - Paralyze(stun_pwr*effect_amount) + if(conf_pwr) + confused += conf_pwr*effect_amount if(istype(ears) && (deafen_pwr || damage_pwr)) var/ear_damage = damage_pwr * effect_amount diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index af4b8bdc8dbd..e7fa6fa9db4d 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -871,21 +871,21 @@ if(M == H) H.show_message("You cringe with pain as your body rings around you!", 2) H.playsound_local(H, 'sound/effects/gong.ogg', 100, TRUE) - H.soundbang_act(2, 0, 100, 1) + H.soundbang_act(2, 0, 10, 1) H.jitteriness += 7 var/distance = max(0,get_dist(get_turf(H),get_turf(M))) switch(distance) if(0 to 1) M.show_message("GONG!", 2) M.playsound_local(H, 'sound/effects/gong.ogg', 100, TRUE) - M.soundbang_act(1, 0, 30, 3) + M.soundbang_act(1, 0, 10, 3) M.confused += 10 M.jitteriness += 4 SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "gonged", /datum/mood_event/loud_gong) if(2 to 3) M.show_message("GONG!", 2) M.playsound_local(H, 'sound/effects/gong.ogg', 75, TRUE) - M.soundbang_act(1, 0, 15, 2) + M.soundbang_act(1, 0, 5, 2) M.jitteriness += 3 SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "gonged", /datum/mood_event/loud_gong) else diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index deccfd4d4c43..56b1292e0b31 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -275,6 +275,7 @@ description = "A chemical agent used for self-defense and in police work." color = "#B31008" // rgb: 179, 16, 8 taste_description = "scorching agony" + metabolization_rate = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/condensedcapsaicin/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(!ishuman(M) && !ismonkey(M)) @@ -313,8 +314,12 @@ victim.update_damage_hud() /datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/carbon/M) - if(prob(5)) - M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]") + if(prob(10)) + M.visible_message("[M] [pick("dry heaves!","splutters!")]") + if(prob(15)) + M.emote("cough") + + M.adjustStaminaLoss(3) ..() /datum/reagent/consumable/sodiumchloride diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 9aeab2fac595..a2b5887b71ca 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -327,7 +327,7 @@ var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/3, location)) - C.soundbang_act(1, 100, rand(0, 5)) + C.soundbang_act(1, 10, rand(0, 5)) /datum/chemical_reaction/sonic_powder_deafen name = "sonic_powder_deafen" @@ -339,7 +339,7 @@ var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) - C.soundbang_act(1, 100, rand(0, 5)) + C.soundbang_act(1, 10, rand(0, 5)) /datum/chemical_reaction/phlogiston name = /datum/reagent/phlogiston From ea19643320795301b44b8d16d2241ae1271834ec Mon Sep 17 00:00:00 2001 From: MacHac Date: Wed, 20 May 2020 01:07:35 -0400 Subject: [PATCH 2/3] Fixed oopsie --- code/game/objects/items/grenades/flashbang.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/items/grenades/flashbang.dm b/code/game/objects/items/grenades/flashbang.dm index 55d8639c02b6..1fb2eb717441 100644 --- a/code/game/objects/items/grenades/flashbang.dm +++ b/code/game/objects/items/grenades/flashbang.dm @@ -23,7 +23,6 @@ return M.show_message("BANG", 2) var/distance = max(0,get_dist(get_turf(src),T)) - message_admins(distance) if(!distance || loc == M || loc == M.loc) //Stop allahu akbarring rooms with this. M.Paralyze(200) M.soundbang_act(1, 20, 10, 15) From e87a7dc2bdcfd5558238af80db1c7a248789bf41 Mon Sep 17 00:00:00 2001 From: alexkar598 <25136265+alexkar598@users.noreply.github.com> Date: Sat, 20 Jun 2020 17:53:03 -0400 Subject: [PATCH 3/3] Update code/game/objects/items/grenades/flashbang.dm --- code/game/objects/items/grenades/flashbang.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/grenades/flashbang.dm b/code/game/objects/items/grenades/flashbang.dm index 1fb2eb717441..5d308f4999bd 100644 --- a/code/game/objects/items/grenades/flashbang.dm +++ b/code/game/objects/items/grenades/flashbang.dm @@ -32,8 +32,8 @@ var/banged = M.soundbang_act(1, 20/max(1,distance), rand(0, 5)) // If missing two resists - if(flashed > 0 && banged > 0) + if(flashed && banged) M.Paralyze(max(150/max(1,distance), 60)) // If missing one resist - else if (flashed > 0 || banged > 0) + else if (flashed || banged) M.Paralyze(max(50/max(1, distance), 30))