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.