From 07dac1d537a7b59ee1c1a05b3afae05869d8d254 Mon Sep 17 00:00:00 2001
From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>
Date: Mon, 18 Nov 2024 18:52:30 -0500
Subject: [PATCH] Fixes grenades not exploding 15% of the time you are shot
(#27368)
* Fixes grenades not exploding 15% of the time you are shot
* userdanger it
---
code/game/objects/items/weapons/grenades/chem_grenade.dm | 7 +++++--
code/game/objects/items/weapons/grenades/grenade.dm | 1 +
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 4b67c986785..9f468b673fd 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -114,12 +114,15 @@
/obj/item/grenade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
var/obj/item/projectile/P = hitby
if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15))
- owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!")
+ owner.visible_message("[hitby] hits [owner]'s [name], setting it off! What a shot!")
var/turf/T = get_turf(src)
log_game("A projectile ([hitby]) detonated a grenade held by [key_name(owner)] at [COORD(T)]")
add_attack_logs(P.firer, owner, "A projectile ([hitby]) detonated a grenade held", ATKLOG_FEW)
prime()
- return 1 //It hit the grenade, not them
+ if(!QDELETED(src)) // some grenades don't detonate but we want them destroyed, otherwise you can just hold empty grenades as shields.
+ qdel(src)
+ return TRUE
+ return ..()
/obj/item/grenade/chem_grenade/attackby(obj/item/I, mob/user, params)
if(istype(I,/obj/item/hand_labeler))
diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm
index 0d2c6535098..b51fb00bfd4 100644
--- a/code/game/objects/items/weapons/grenades/grenade.dm
+++ b/code/game/objects/items/weapons/grenades/grenade.dm
@@ -11,6 +11,7 @@
slot_flags = ITEM_SLOT_BELT
resistance_flags = FLAMMABLE
max_integrity = 40
+ flags_2 = RANDOM_BLOCKER_2
/// Has the pin been pulled?
var/active = FALSE
/// Time between the pin being pulled and detonation.