From 72f3c70da9ea34a79febb2160c3acd38603a6cff Mon Sep 17 00:00:00 2001 From: Ater Ignis Date: Sun, 28 Oct 2012 11:20:42 +0400 Subject: [PATCH] primed grenades must not be disassembable easy --- .../items/weapons/grenades/chem_grenade.dm | 19 ++++++++----- .../objects/items/weapons/grenades/grenade.dm | 28 +++++++++++-------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 0b226bf354d..cf241435d6b 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -52,7 +52,7 @@ if(istype(det.a_left,det.a_right.type) || (!isigniter(det.a_left) && !isigniter(det.a_right))) user << "\red Assembly must contain one igniter." return - if(!det.secured) + if(!det.secured) user << "\red Assembly must be secured with screwdriver." return path = 1 @@ -81,12 +81,17 @@ icon_state = initial(icon_state) +"_locked" stage = 2 else if(stage == 2) - user << "\blue You unlock the assembly." - playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, -3) - name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]" - icon_state = initial(icon_state) + (detonator?"_ass":"") - stage = 1 - active = 0 + if(active && prob(95)) + user << "\red You trigger the assembly!" + prime() + return + else + user << "\blue You unlock the assembly." + playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, -3) + name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]" + icon_state = initial(icon_state) + (detonator?"_ass":"") + stage = 1 + active = 0 else if(is_type_in_list(W, allowed_containers) && (!stage || stage==1) && path != 2) path = 1 if(beakers.len == 2) diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index 3f2d4d576ba..c381a8d513d 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -20,12 +20,9 @@ log_admin("ATTACK: [user] ([user.ckey]) clumsily primed \a [src]") message_admins("ATTACK: [user] ([user.ckey]) clumsily primed \a [src]") - active = 1 - icon_state = initial(icon_state) + "_active" - playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + activate() + add_fingerprint(user) spawn(5) - if(user) - user.drop_item() prime() return 0 return 1 @@ -67,20 +64,27 @@ log_admin("ATTACK: [user] ([user.ckey]) primed \a [src].") message_admins("ATTACK: [user] ([user.ckey]) primed \a [src].") - active = 1 - icon_state = initial(icon_state) + "_active" + activate() add_fingerprint(user) if(iscarbon(user)) var/mob/living/carbon/C = user C.throw_mode_on() - spawn(det_time) - if(user) - user.drop_item() - prime() - return return +/obj/item/weapon/grenade/proc/activate() + if(active) + return + + icon_state = initial(icon_state) + "_active" + active = 1 + playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + + spawn(det_time) + prime() + return + + /obj/item/weapon/grenade/proc/prime() // playsound(loc, 'sound/items/Welder2.ogg', 25, 1) var/turf/T = get_turf(src)