diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm index 40aba31413..fadf9d34de 100644 --- a/code/game/objects/items/grenades/ghettobomb.dm +++ b/code/game/objects/items/grenades/ghettobomb.dm @@ -47,19 +47,8 @@ if(!active) if(clown_check(user)) to_chat(user, "You light the [name]!") - active = TRUE cut_overlay("improvised_grenade_filled") - icon_state = initial(icon_state) + "_active" - add_fingerprint(user) - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - - message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)].") - log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.throw_mode_on() - addtimer(CALLBACK(src, .proc/prime), det_time) + preprime(user, null, FALSE) /obj/item/grenade/iedcasing/prime() //Blowing that can up update_mob() diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index fceb859ceb..bf2f6dd4bb 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -26,15 +26,9 @@ /obj/item/grenade/proc/clown_check(mob/living/carbon/human/user) if(user.disabilities & CLUMSY && prob(50)) to_chat(user, "Huh? How does this thing work?") - active = 1 - icon_state = initial(icon_state) + "_active" - playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) - spawn(5) - if(user) - user.drop_item() - prime() - return 0 - return 1 + preprime(user, 5, FALSE) + return FALSE + return TRUE /obj/item/grenade/examine(mob/user) @@ -50,26 +44,27 @@ if(!active) if(clown_check(user)) preprime(user) - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.throw_mode_on() -/obj/item/grenade/proc/preprime(mob/user) - if(user) - to_chat(user, "You prime the [name]! [det_time/10] seconds!") +/obj/item/grenade/proc/log_grenade(mob/user, turf/T) + var/area/A = get_area(T) + var/message = "[ADMIN_LOOKUPFLW(user)]) has primed \a [src] for detonation at [ADMIN_COORDJMP(T)]" + GLOB.bombers += message + message_admins(message) + log_game("[key_name(user)] has primed \a [src] for detonation at [A.name] [COORD(T)].") + +/obj/item/grenade/proc/preprime(mob/user, delayoverride, msg = TRUE) + var/turf/T = get_turf(src) + log_grenade(user, T) + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + if(msg) + to_chat(user, "You prime \the [src]! [det_time/10] seconds!") playsound(loc, 'sound/weapons/armbomb.ogg', 60, 1) active = TRUE icon_state = initial(icon_state) + "_active" add_fingerprint(user) - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - if(user) - var/message = "[ADMIN_LOOKUPFLW(user)]) has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]" - GLOB.bombers += message - message_admins(message) - log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") - - addtimer(CALLBACK(src, .proc/prime), det_time) + addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride) /obj/item/grenade/proc/prime() @@ -110,4 +105,4 @@ 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!") prime() - return 1 //It hit the grenade, not them + return TRUE //It hit the grenade, not them