From 64c0ecb13f2e511185f39ce44ce7097f68ffeec5 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Sat, 28 Nov 2020 12:55:30 +0100
Subject: [PATCH] [MIRROR] Changes grenade proc names to be more clear (#1897)
* Changes grenade proc names to be more clear (#55181)
Grenades have, for the longest time, used the proc name preprime() to refer to arming a timed grenade so that it will boom in a few seconds, and prime() to refer to the grenade actually going boom (or releasing foam or anything else grenades do when they go off). This was very confusing, so now these two procs are called arm_grenade() and detonate().
* Changes grenade proc names to be more clear
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
---
code/__DEFINES/dcs/signals.dm | 2 +-
code/datums/components/pellet_cloud.dm | 6 +-
code/datums/wires/explosive.dm | 6 +-
.../game/gamemodes/clown_ops/clown_weapons.dm | 6 +-
code/game/machinery/deployable.dm | 2 +-
.../objects/items/grenades/antigravity.dm | 2 +-
.../objects/items/grenades/atmos_grenades.dm | 10 +--
.../objects/items/grenades/chem_grenade.dm | 12 ++--
.../objects/items/grenades/clusterbuster.dm | 8 +--
code/game/objects/items/grenades/emgrenade.dm | 2 +-
code/game/objects/items/grenades/festive.dm | 10 +--
code/game/objects/items/grenades/flashbang.dm | 6 +-
.../game/objects/items/grenades/ghettobomb.dm | 4 +-
code/game/objects/items/grenades/grenade.dm | 63 +++++++++++--------
code/game/objects/items/grenades/hypno.dm | 2 +-
code/game/objects/items/grenades/plastic.dm | 8 +--
code/game/objects/items/grenades/smokebomb.dm | 2 +-
.../objects/items/grenades/spawnergrenade.dm | 2 +-
.../objects/items/grenades/syndieminibomb.dm | 6 +-
code/game/objects/items/plushes.dm | 2 +-
code/game/objects/items/spear.dm | 4 +-
code/modules/hydroponics/grown/citrus.dm | 6 +-
code/modules/hydroponics/grown/misc.dm | 6 +-
.../mob/living/simple_animal/parrot.dm | 2 +-
code/modules/ninja/ninja_explosive.dm | 6 +-
.../projectiles/guns/misc/grenade_launcher.dm | 2 +-
.../chemistry/recipes/slime_extracts.dm | 4 +-
code/modules/research/experimentor.dm | 6 +-
.../mecha/equipment/weapons/weapons.dm | 2 +-
code/modules/vending/security.dm | 2 +-
30 files changed, 105 insertions(+), 96 deletions(-)
diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm
index 8a2f98fc721..e0eb302c9eb 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -613,7 +613,7 @@
// /obj/item/grenade signals
///called in /obj/item/gun/process_fire (user, target, params, zone_override)
-#define COMSIG_GRENADE_PRIME "grenade_prime"
+#define COMSIG_GRENADE_DETONATE "grenade_prime"
///called in /obj/item/gun/process_fire (user, target, params, zone_override)
#define COMSIG_GRENADE_ARMED "grenade_armed"
diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm
index f6ab4e2c914..551c1bc8b41 100644
--- a/code/datums/components/pellet_cloud.dm
+++ b/code/datums/components/pellet_cloud.dm
@@ -12,7 +12,7 @@
* -Directed: This means you're shooting multiple pellets, like buckshot. If an ammo casing is defined as having multiple pellets, it will automatically create a pellet cloud
* and call COMSIG_PELLET_CLOUD_INIT (see [/obj/item/ammo_casing/proc/fire_casing]). Thus, the only projectiles fired will be the ones fired here.
* The magnitude var controls how many pellets are created.
- * -Circular: This results in a big spray of shrapnel flying all around the detonation point when the grenade fires COMSIG_GRENADE_PRIME or landmine triggers COMSIG_MINE_TRIGGERED.
+ * -Circular: This results in a big spray of shrapnel flying all around the detonation point when the grenade fires COMSIG_GRENADE_DETONATE or landmine triggers COMSIG_MINE_TRIGGERED.
* The magnitude var controls how big the detonation radius is (the bigger the magnitude, the more shrapnel is created). Grenades can be covered with bodies to reduce shrapnel output.
*
* Once all of the fired projectiles either hit a target or disappear due to ranging out/whatever else, we resolve the list of all the things we hit and print aggregate messages so we get
@@ -82,14 +82,14 @@
RegisterSignal(parent, COMSIG_PELLET_CLOUD_INIT, .proc/create_casing_pellets)
else if(isgrenade(parent))
RegisterSignal(parent, COMSIG_GRENADE_ARMED, .proc/grenade_armed)
- RegisterSignal(parent, COMSIG_GRENADE_PRIME, .proc/create_blast_pellets)
+ RegisterSignal(parent, COMSIG_GRENADE_DETONATE, .proc/create_blast_pellets)
else if(islandmine(parent))
RegisterSignal(parent, COMSIG_MINE_TRIGGERED, .proc/create_blast_pellets)
else if(issupplypod(parent))
RegisterSignal(parent, COMSIG_SUPPLYPOD_LANDED, .proc/create_blast_pellets)
/datum/component/pellet_cloud/UnregisterFromParent()
- UnregisterSignal(parent, list(COMSIG_PARENT_PREQDELETED, COMSIG_PELLET_CLOUD_INIT, COMSIG_GRENADE_PRIME, COMSIG_GRENADE_ARMED, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UNCROSSED, COMSIG_MINE_TRIGGERED, COMSIG_ITEM_DROPPED))
+ UnregisterSignal(parent, list(COMSIG_PARENT_PREQDELETED, COMSIG_PELLET_CLOUD_INIT, COMSIG_GRENADE_DETONATE, COMSIG_GRENADE_ARMED, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UNCROSSED, COMSIG_MINE_TRIGGERED, COMSIG_ITEM_DROPPED))
/**
* create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance)
diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm
index 8339b501b06..65869b9f0ca 100644
--- a/code/datums/wires/explosive.dm
+++ b/code/datums/wires/explosive.dm
@@ -45,8 +45,8 @@
log_game("\An [assembly] has pulsed a grenade, which was installed by [fingerprint].")
var/mob/M = get_mob_by_ckey(fingerprint)
var/turf/T = get_turf(M)
- G.log_grenade(M, T) //Used in preprime() too but this one convays where the mob who triggered the bomb is
- G.preprime() //The one here convays where the bomb was when it went boom
+ G.log_grenade(M, T) //Used in arm_grenade() too but this one convays where the mob who triggered the bomb is
+ G.arm_grenade() //The one here conveys where the bomb was when it went boom
/datum/wires/explosive/chem_grenade/detach_assembly(color)
var/obj/item/assembly/S = get_attached(color)
@@ -66,7 +66,7 @@
/datum/wires/explosive/c4/explode()
var/obj/item/grenade/c4/P = holder
- P.prime()
+ P.detonate()
/datum/wires/explosive/pizza
holder_type = /obj/item/pizzabox
diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm
index 09fd3f59daa..ec73e9d3620 100644
--- a/code/game/gamemodes/clown_ops/clown_weapons.dm
+++ b/code/game/gamemodes/clown_ops/clown_weapons.dm
@@ -185,7 +185,7 @@
to_chat(loc, "[src] begins to beep.")
var/mob/living/carbon/C = loc
C.throw_mode_on()
- bomb.preprime(loc, null, FALSE)
+ bomb.arm_grenade(loc, null, FALSE)
/obj/item/grown/bananapeel/bombanana/ComponentInitialize()
. = ..()
@@ -198,7 +198,7 @@
/obj/item/grown/bananapeel/bombanana/suicide_act(mob/user)
user.visible_message("[user] is deliberately slipping on the [src.name]! It looks like \he's trying to commit suicide.")
playsound(loc, 'sound/misc/slip.ogg', 50, TRUE, -1)
- bomb.preprime(user, 0, FALSE)
+ bomb.arm_grenade(user, 0, FALSE)
return (BRUTELOSS)
//TEARSTACHE GRENADE
@@ -209,7 +209,7 @@
icon_state = "moustacheg"
clumsy_check = GRENADE_NONCLUMSY_FUMBLE
-/obj/item/grenade/chem_grenade/teargas/moustache/prime(mob/living/lanced_by)
+/obj/item/grenade/chem_grenade/teargas/moustache/detonate(mob/living/lanced_by)
var/myloc = get_turf(src)
. = ..()
for(var/mob/living/carbon/M in view(6, myloc))
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index 8b4a36cf52f..bf833c68cf7 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -169,7 +169,7 @@
to_chat(user, "[src] is now in [mode] mode.")
-/obj/item/grenade/barrier/prime(mob/living/lanced_by)
+/obj/item/grenade/barrier/detonate(mob/living/lanced_by)
. = ..()
new /obj/structure/barricade/security(get_turf(src.loc))
switch(mode)
diff --git a/code/game/objects/items/grenades/antigravity.dm b/code/game/objects/items/grenades/antigravity.dm
index 5b3e89eda69..48abf8ab5b0 100644
--- a/code/game/objects/items/grenades/antigravity.dm
+++ b/code/game/objects/items/grenades/antigravity.dm
@@ -7,7 +7,7 @@
var/forced_value = 0
var/duration = 300
-/obj/item/grenade/antigravity/prime(mob/living/lanced_by)
+/obj/item/grenade/antigravity/detonate(mob/living/lanced_by)
. = ..()
update_mob()
diff --git a/code/game/objects/items/grenades/atmos_grenades.dm b/code/game/objects/items/grenades/atmos_grenades.dm
index 091c63cf7a7..b5cd7eaf735 100644
--- a/code/game/objects/items/grenades/atmos_grenades.dm
+++ b/code/game/objects/items/grenades/atmos_grenades.dm
@@ -38,7 +38,7 @@
ex_light = 4
ex_flame = 2
-/obj/item/grenade/gas_crystal/preprime(mob/user, delayoverride, msg = TRUE, volume = 60)
+/obj/item/grenade/gas_crystal/arm_grenade(mob/user, delayoverride, msg = TRUE, volume = 60)
var/turf/turf_loc = get_turf(src)
log_grenade(user, turf_loc) //Inbuilt admin procs already handle null users
if(user)
@@ -52,9 +52,9 @@
icon_state = initial(icon_state) + "_active"
playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', volume, TRUE)
SEND_SIGNAL(src, COMSIG_GRENADE_ARMED, det_time, delayoverride)
- addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride)
+ addtimer(CALLBACK(src, .proc/detonate), isnull(delayoverride)? det_time : delayoverride)
-/obj/item/grenade/gas_crystal/healium_crystal/prime(mob/living/lanced_by)
+/obj/item/grenade/gas_crystal/healium_crystal/detonate(mob/living/lanced_by)
. = ..()
update_mob()
playsound(src, 'sound/effects/spray2.ogg', 100, TRUE)
@@ -76,7 +76,7 @@
live_mob.adjust_bodytemperature(-150 / distance_from_center)
qdel(src)
-/obj/item/grenade/gas_crystal/proto_nitrate_crystal/prime(mob/living/lanced_by)
+/obj/item/grenade/gas_crystal/proto_nitrate_crystal/detonate(mob/living/lanced_by)
. = ..()
update_mob()
playsound(src, 'sound/effects/spray2.ogg', 100, TRUE)
@@ -89,7 +89,7 @@
floor_loc.air_update_turf()
qdel(src)
-/obj/item/grenade/gas_crystal/zauker_crystal/prime(mob/living/lanced_by)
+/obj/item/grenade/gas_crystal/zauker_crystal/detonate(mob/living/lanced_by)
. = ..()
update_mob()
qdel(src)
diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm
index 0181e72cfdd..604d246243e 100644
--- a/code/game/objects/items/grenades/chem_grenade.dm
+++ b/code/game/objects/items/grenades/chem_grenade.dm
@@ -156,7 +156,7 @@
else
log_bomber(user, "primed a", src, "containing:[reagent_string]")
-/obj/item/grenade/chem_grenade/preprime(mob/user, delayoverride, msg = TRUE, volume = 60)
+/obj/item/grenade/chem_grenade/arm_grenade(mob/user, delayoverride, msg = TRUE, volume = 60)
var/turf/T = get_turf(src)
log_grenade(user, T) //Inbuilt admin procs already handle null users
if(user)
@@ -172,9 +172,9 @@
landminemode.activate()
return
active = TRUE
- addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride)
+ addtimer(CALLBACK(src, .proc/detonate), isnull(delayoverride)? det_time : delayoverride)
-/obj/item/grenade/chem_grenade/prime(mob/living/lanced_by)
+/obj/item/grenade/chem_grenade/detonate(mob/living/lanced_by)
if(stage != GRENADE_READY)
return
@@ -213,7 +213,7 @@
ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades.
threatscale = 1.1 // 10% more effective.
-/obj/item/grenade/chem_grenade/large/prime(mob/living/lanced_by)
+/obj/item/grenade/chem_grenade/large/detonate(mob/living/lanced_by)
if(stage != GRENADE_READY)
return
@@ -280,7 +280,7 @@
to_chat(user, "The new value is out of bounds. Minimum spread is 5 units, maximum is 100 units.")
..()
-/obj/item/grenade/chem_grenade/adv_release/prime(mob/living/lanced_by)
+/obj/item/grenade/chem_grenade/adv_release/detonate(mob/living/lanced_by)
if(stage != GRENADE_READY)
return
@@ -298,7 +298,7 @@
chem_splash(get_turf(src), affected_area, list(reactants), ignition_temp, threatscale)
var/turf/DT = get_turf(src)
- addtimer(CALLBACK(src, .proc/prime), det_time)
+ addtimer(CALLBACK(src, .proc/detonate), det_time)
log_game("A grenade detonated at [AREACOORD(DT)]")
diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm
index f7409c619fd..3b1b52cb0ca 100644
--- a/code/game/objects/items/grenades/clusterbuster.dm
+++ b/code/game/objects/items/grenades/clusterbuster.dm
@@ -14,7 +14,7 @@
var/max_spawned = 8
var/segment_chance = 35
-/obj/item/grenade/clusterbuster/prime(mob/living/lanced_by)
+/obj/item/grenade/clusterbuster/detonate(mob/living/lanced_by)
. = ..()
update_mob()
var/numspawned = rand(min_spawned,max_spawned)
@@ -58,9 +58,9 @@
var/steps = rand(1,4)
for(var/i in 1 to steps)
step_away(src,loc)
- addtimer(CALLBACK(src, .proc/prime), rand(15,60))
+ addtimer(CALLBACK(src, .proc/detonate), rand(15,60))
-/obj/item/grenade/clusterbuster/segment/prime(mob/living/lanced_by)
+/obj/item/grenade/clusterbuster/segment/detonate(mob/living/lanced_by)
new payload_spawner(drop_location(), payload, rand(min_spawned,max_spawned))
playsound(src, prime_sound, 75, TRUE, -3)
qdel(src)
@@ -78,7 +78,7 @@
var/obj/item/grenade/P = new type(loc)
if(istype(P))
P.active = TRUE
- addtimer(CALLBACK(P, /obj/item/grenade/proc/prime), rand(15,60))
+ addtimer(CALLBACK(P, /obj/item/grenade/proc/detonate), rand(15,60))
var/steps = rand(1,4)
for(var/i in 1 to steps)
step_away(src,loc)
diff --git a/code/game/objects/items/grenades/emgrenade.dm b/code/game/objects/items/grenades/emgrenade.dm
index 00f9a26bed8..03a7dd9e565 100644
--- a/code/game/objects/items/grenades/emgrenade.dm
+++ b/code/game/objects/items/grenades/emgrenade.dm
@@ -4,7 +4,7 @@
icon_state = "emp"
inhand_icon_state = "emp"
-/obj/item/grenade/empgrenade/prime(mob/living/lanced_by)
+/obj/item/grenade/empgrenade/detonate(mob/living/lanced_by)
. = ..()
update_mob()
empulse(src, 4, 10)
diff --git a/code/game/objects/items/grenades/festive.dm b/code/game/objects/items/grenades/festive.dm
index db8c2e7409c..a034f9ccf8b 100644
--- a/code/game/objects/items/grenades/festive.dm
+++ b/code/game/objects/items/grenades/festive.dm
@@ -79,12 +79,12 @@
var/ignition_msg = W.ignition_effect(src, user)
if(ignition_msg && !active)
visible_message(ignition_msg)
- preprime(user)
+ arm_grenade(user)
else
return ..()
/obj/item/grenade/firecracker/fire_act(exposed_temperature, exposed_volume)
- prime()
+ detonate()
/obj/item/grenade/firecracker/wirecutter_act(mob/living/user, obj/item/I)
if(active)
@@ -98,7 +98,7 @@
else
to_chat(user, "You've already removed all of the fuse!")
-/obj/item/grenade/firecracker/preprime(mob/user, delayoverride, msg = TRUE, volume = 80)
+/obj/item/grenade/firecracker/arm_grenade(mob/user, delayoverride, msg = TRUE, volume = 80)
var/turf/T = get_turf(src)
log_grenade(user, T)
if(user)
@@ -108,9 +108,9 @@
playsound(src, 'sound/effects/fuse.ogg', volume, TRUE)
active = TRUE
icon_state = initial(icon_state) + "_active"
- addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride)
+ addtimer(CALLBACK(src, .proc/detonate), isnull(delayoverride)? det_time : delayoverride)
-/obj/item/grenade/firecracker/prime(mob/living/lanced_by)
+/obj/item/grenade/firecracker/detonate(mob/living/lanced_by)
. = ..()
update_mob()
var/explosion_loc = get_turf(src)
diff --git a/code/game/objects/items/grenades/flashbang.dm b/code/game/objects/items/grenades/flashbang.dm
index 32328746f2b..d8f146ffca9 100644
--- a/code/game/objects/items/grenades/flashbang.dm
+++ b/code/game/objects/items/grenades/flashbang.dm
@@ -6,7 +6,7 @@
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
var/flashbang_range = 7 //how many tiles away the mob will be stunned.
-/obj/item/grenade/flashbang/prime(mob/living/lanced_by)
+/obj/item/grenade/flashbang/detonate(mob/living/lanced_by)
. = ..()
update_mob()
var/flashbang_turf = get_turf(src)
@@ -57,7 +57,7 @@
shrapnel_type = /obj/projectile/bullet/pellet/stingball/mega
shrapnel_radius = 12
-/obj/item/grenade/stingbang/prime(mob/living/lanced_by)
+/obj/item/grenade/stingbang/detonate(mob/living/lanced_by)
if(iscarbon(loc))
var/mob/living/carbon/C = loc
var/obj/item/bodypart/B = C.get_holding_bodypart_of_item(src)
@@ -118,7 +118,7 @@
rots++
user.changeNext_move(CLICK_CD_RAPID)
-/obj/item/grenade/primer/prime(mob/living/lanced_by)
+/obj/item/grenade/primer/detonate(mob/living/lanced_by)
shrapnel_radius = round(rots / rots_per_mag)
. = ..()
qdel(src)
diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm
index cc0d7e335a6..fe3a5756014 100644
--- a/code/game/objects/items/grenades/ghettobomb.dm
+++ b/code/game/objects/items/grenades/ghettobomb.dm
@@ -61,9 +61,9 @@
if(!botch_check(user))
to_chat(user, "You light the [name]!")
cut_overlay("improvised_grenade_filled")
- preprime(user, null, FALSE)
+ arm_grenade(user, null, FALSE)
-/obj/item/grenade/iedcasing/prime(mob/living/lanced_by) //Blowing that can up
+/obj/item/grenade/iedcasing/detonate(mob/living/lanced_by) //Blowing that can up
. = ..()
update_mob()
explosion(src.loc,-1,-1,2, flame_range = 4) // small explosion, plus a very large fireball.
diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm
index cf911e99c71..9fd7072bc7c 100644
--- a/code/game/objects/items/grenades/grenade.dm
+++ b/code/game/objects/items/grenades/grenade.dm
@@ -19,7 +19,7 @@
var/display_timer = 1
var/clumsy_check = GRENADE_CLUMSY_FUMBLE
var/sticky = FALSE
- // I moved the explosion vars and behavior to base grenades because we want all grenades to call [/obj/item/grenade/proc/prime] so we can send COMSIG_GRENADE_PRIME
+ // I moved the explosion vars and behavior to base grenades because we want all grenades to call [/obj/item/grenade/proc/detonate] so we can send COMSIG_GRENADE_DETONATE
///how big of a devastation explosion radius on prime
var/ex_dev = 0
///how big of a heavy explosion radius on prime
@@ -29,7 +29,7 @@
///how big of a flame explosion radius on prime
var/ex_flame = 0
- // dealing with creating a [/datum/component/pellet_cloud] on prime
+ // dealing with creating a [/datum/component/pellet_cloud] on detonate
/// if set, will spew out projectiles of this type
var/shrapnel_type
/// the higher this number, the more projectiles are created as shrapnel
@@ -39,14 +39,14 @@
/obj/item/grenade/suicide_act(mob/living/carbon/user)
user.visible_message("[user] primes [src], then eats it! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(src, 'sound/items/eatfood.ogg', 50, TRUE)
- preprime(user, det_time)
+ arm_grenade(user, det_time)
user.transferItemToLoc(src, user, TRUE)//>eat a grenade set to 5 seconds >rush captain
sleep(det_time)//so you dont die instantly
return BRUTELOSS
/obj/item/grenade/deconstruct(disassembled = TRUE)
if(!disassembled)
- prime()
+ detonate()
if(!QDELETED(src))
qdel(src)
@@ -55,11 +55,11 @@
if(clumsy && (clumsy_check == GRENADE_CLUMSY_FUMBLE))
if(prob(50))
to_chat(user, "Huh? How does this thing work?")
- preprime(user, 5, FALSE)
+ arm_grenade(user, 5, FALSE)
return TRUE
else if(!clumsy && (clumsy_check == GRENADE_NONCLUMSY_FUMBLE))
to_chat(user, "You pull the pin on [src]. Attached to it is a pink ribbon that says, \"HONK\"")
- preprime(user, 5, FALSE)
+ arm_grenade(user, 5, FALSE)
return TRUE
else if(sticky && prob(50)) // to add risk to sticky tape grenade cheese, no return cause we still prime as normal after
to_chat(user, "What the... [src] is stuck to your hand!")
@@ -77,20 +77,23 @@
/obj/item/grenade/attack_self(mob/user)
if(HAS_TRAIT(src, TRAIT_NODROP))
to_chat(user, "You try prying [src] off your hand...")
- if(do_after(user, 70, target=src))
+ if(do_after(user, 7 SECONDS, target=src))
to_chat(user, "You manage to remove [src] from your hand.")
REMOVE_TRAIT(src, TRAIT_NODROP, STICKY_NODROP)
-
return
if(!active)
if(!botch_check(user)) // if they botch the prime, it'll be handled in botch_check
- preprime(user)
+ arm_grenade(user)
/obj/item/grenade/proc/log_grenade(mob/user, turf/T)
log_bomber(user, "has primed a", src, "for detonation")
-/obj/item/grenade/proc/preprime(mob/user, delayoverride, msg = TRUE, volume = 60)
+/**
+ * arm_grenade (formerly preprime) refers to when a grenade with a standard time fuze is activated, making it go beepbeepbeep and then detonate a few seconds later.
+ * Grenades with other triggers like remote igniters probably skip this step and go straight to [/obj/item/grenade/proc/detonate]
+ */
+/obj/item/grenade/proc/arm_grenade(mob/user, delayoverride, msg = TRUE, volume = 60)
var/turf/T = get_turf(src)
log_grenade(user, T) //Inbuilt admin procs already handle null users
if(user)
@@ -104,14 +107,20 @@
active = TRUE
icon_state = initial(icon_state) + "_active"
SEND_SIGNAL(src, COMSIG_GRENADE_ARMED, det_time, delayoverride)
- addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride)
+ addtimer(CALLBACK(src, .proc/detonate), isnull(delayoverride)? det_time : delayoverride)
-/obj/item/grenade/proc/prime(mob/living/lanced_by)
+/**
+ * detonate (formerly prime) refers to when the grenade actually delivers its payload (whether or not a boom/bang/detonation is involved)
+ *
+ * Arguments:
+ * * lanced_by- If this grenade was detonated by an elance, we need to pass that along with the COMSIG_GRENADE_DETONATE signal for pellet clouds
+ */
+/obj/item/grenade/proc/detonate(mob/living/lanced_by)
if(shrapnel_type && shrapnel_radius && !shrapnel_initialized) // add a second check for adding the component in case whatever triggered the grenade went straight to prime (badminnery for example)
shrapnel_initialized = TRUE
AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_radius)
- SEND_SIGNAL(src, COMSIG_GRENADE_PRIME, lanced_by)
+ SEND_SIGNAL(src, COMSIG_GRENADE_DETONATE, lanced_by)
if(ex_dev || ex_heavy || ex_light || ex_flame)
explosion(loc, ex_dev, ex_heavy, ex_light, flame_range = ex_flame)
@@ -121,21 +130,21 @@
M.dropItemToGround(src)
/obj/item/grenade/attackby(obj/item/W, mob/user, params)
- if(!active)
- if(W.tool_behaviour == TOOL_MULTITOOL)
- var/newtime = text2num(stripped_input(user, "Please enter a new detonation time", name))
- if (newtime != null && user.canUseTopic(src, BE_CLOSE))
- if(change_det_time(newtime))
- to_chat(user, "You modify the time delay. It's set for [DisplayTimeText(det_time)].")
- if (round(newtime * 10) != det_time)
- to_chat(user, "The new value is out of bounds. The lowest possible time is 3 seconds and highest is 5 seconds. Instant detonations are also possible.")
- return
- else if(W.tool_behaviour == TOOL_SCREWDRIVER)
- if(change_det_time())
- to_chat(user, "You modify the time delay. It's set for [DisplayTimeText(det_time)].")
- else
+ if(active)
return ..()
+ if(W.tool_behaviour == TOOL_MULTITOOL)
+ var/newtime = text2num(stripped_input(user, "Please enter a new detonation time", name))
+ if (newtime != null && user.canUseTopic(src, BE_CLOSE))
+ if(change_det_time(newtime))
+ to_chat(user, "You modify the time delay. It's set for [DisplayTimeText(det_time)].")
+ if (round(newtime * 10) != det_time)
+ to_chat(user, "The new value is out of bounds. The lowest possible time is 3 seconds and highest is 5 seconds. Instant detonations are also possible.")
+ return
+ else if(W.tool_behaviour == TOOL_SCREWDRIVER)
+ if(change_det_time())
+ to_chat(user, "You modify the time delay. It's set for [DisplayTimeText(det_time)].")
+
/obj/item/grenade/proc/change_det_time(time) //Time uses real time.
. = TRUE
if(time != null)
@@ -164,7 +173,7 @@
var/turf/T = get_turf(src)
log_game("A projectile ([hitby]) detonated a grenade held by [key_name(owner)] at [COORD(T)]")
message_admins("A projectile ([hitby]) detonated a grenade held by [key_name_admin(owner)] at [ADMIN_COORDJMP(T)]")
- prime()
+ detonate()
return TRUE //It hit the grenade, not them
/obj/item/grenade/afterattack(atom/target, mob/user)
diff --git a/code/game/objects/items/grenades/hypno.dm b/code/game/objects/items/grenades/hypno.dm
index 9e1adaf00a7..a4c59bc30c1 100644
--- a/code/game/objects/items/grenades/hypno.dm
+++ b/code/game/objects/items/grenades/hypno.dm
@@ -7,7 +7,7 @@
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
var/flashbang_range = 7
-/obj/item/grenade/hypnotic/prime(mob/living/lanced_by)
+/obj/item/grenade/hypnotic/detonate(mob/living/lanced_by)
. = ..()
update_mob()
var/flashbang_turf = get_turf(src)
diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm
index 4e13eae9a5e..623c00fff9b 100644
--- a/code/game/objects/items/grenades/plastic.dm
+++ b/code/game/objects/items/grenades/plastic.dm
@@ -42,7 +42,7 @@
else
return ..()
-/obj/item/grenade/c4/prime(mob/living/lanced_by)
+/obj/item/grenade/c4/detonate(mob/living/lanced_by)
if(QDELETED(src))
return
@@ -66,7 +66,7 @@
//assembly stuff
/obj/item/grenade/c4/receive_signal()
- prime()
+ detonate()
/obj/item/grenade/c4/attack_self(mob/user)
var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num|null
@@ -111,7 +111,7 @@
target.add_overlay(plastic_overlay)
to_chat(user, "You plant the bomb. Timer counting down from [det_time].")
- addtimer(CALLBACK(src, .proc/prime), det_time*10)
+ addtimer(CALLBACK(src, .proc/detonate), det_time*10)
/obj/item/grenade/c4/proc/shout_syndicate_crap(mob/M)
if(!M)
@@ -148,7 +148,7 @@
log_game("[key_name(user)] suicided with [src] at [AREACOORD(user)]")
user.visible_message("[user] activates [src] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!")
shout_syndicate_crap(user)
- explosion(user,0,2,0) //Cheap explosion imitation because putting prime() here causes runtimes
+ explosion(user,0,2,0) //Cheap explosion imitation because putting detonate() here causes runtimes
user.gib(1, 1)
qdel(src)
diff --git a/code/game/objects/items/grenades/smokebomb.dm b/code/game/objects/items/grenades/smokebomb.dm
index 98cd7502e45..492d20f0261 100644
--- a/code/game/objects/items/grenades/smokebomb.dm
+++ b/code/game/objects/items/grenades/smokebomb.dm
@@ -19,7 +19,7 @@
desc = "The word '[pick(bruh_moment)]' is scribbled on it in crayon."
///Here we generate some smoke and also damage blobs??? for some reason. Honestly not sure why we do that.
-/obj/item/grenade/smokebomb/prime(mob/living/lanced_by)
+/obj/item/grenade/smokebomb/detonate(mob/living/lanced_by)
. = ..()
update_mob()
playsound(src, 'sound/effects/smoke.ogg', 50, TRUE, -3)
diff --git a/code/game/objects/items/grenades/spawnergrenade.dm b/code/game/objects/items/grenades/spawnergrenade.dm
index 8102442b9b7..6c9ca46ef59 100644
--- a/code/game/objects/items/grenades/spawnergrenade.dm
+++ b/code/game/objects/items/grenades/spawnergrenade.dm
@@ -7,7 +7,7 @@
var/spawner_type = null // must be an object path
var/deliveryamt = 1 // amount of type to deliver
-/obj/item/grenade/spawnergrenade/prime(mob/living/lanced_by) // Prime now just handles the two loops that query for people in lockers and people who can see it.
+/obj/item/grenade/spawnergrenade/detonate(mob/living/lanced_by) // Prime now just handles the two loops that query for people in lockers and people who can see it.
. = ..()
update_mob()
if(spawner_type && deliveryamt)
diff --git a/code/game/objects/items/grenades/syndieminibomb.dm b/code/game/objects/items/grenades/syndieminibomb.dm
index 5c4945dbe28..e7f1784a576 100644
--- a/code/game/objects/items/grenades/syndieminibomb.dm
+++ b/code/game/objects/items/grenades/syndieminibomb.dm
@@ -10,7 +10,7 @@
ex_light = 4
ex_flame = 2
-/obj/item/grenade/syndieminibomb/prime(mob/living/lanced_by)
+/obj/item/grenade/syndieminibomb/detonate(mob/living/lanced_by)
. = ..()
update_mob()
qdel(src)
@@ -39,7 +39,7 @@
shrapnel_type = /obj/projectile/bullet/shrapnel/mega
shrapnel_radius = 12
-/obj/item/grenade/frag/prime(mob/living/lanced_by)
+/obj/item/grenade/frag/detonate(mob/living/lanced_by)
. = ..()
update_mob()
qdel(src)
@@ -54,7 +54,7 @@
var/rad_damage = 350
var/stamina_damage = 30
-/obj/item/grenade/gluon/prime(mob/living/lanced_by)
+/obj/item/grenade/gluon/detonate(mob/living/lanced_by)
. = ..()
update_mob()
playsound(loc, 'sound/effects/empulse.ogg', 50, TRUE)
diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm
index 7559931c34b..032fd987eae 100644
--- a/code/game/objects/items/plushes.dm
+++ b/code/game/objects/items/plushes.dm
@@ -111,7 +111,7 @@
to_chat(user, "You pet [src]. D'awww.")
if(grenade && !grenade.active)
log_game("[key_name(user)] activated a hidden grenade in [src].")
- grenade.preprime(user, msg = FALSE, volume = 10)
+ grenade.arm_grenade(user, msg = FALSE, volume = 10)
else
to_chat(user, "You try to pet [src], but it has no stuffing. Aww...")
diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm
index 2cace2fba4d..726bff30e95 100644
--- a/code/game/objects/items/spear.dm
+++ b/code/game/objects/items/spear.dm
@@ -107,7 +107,7 @@
user.visible_message("[user] begins to sword-swallow \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")
user.say("[war_cry]", forced="spear warcry")
explosive.forceMove(user)
- explosive.prime()
+ explosive.detonate()
user.gib()
qdel(src)
return BRUTELOSS
@@ -131,7 +131,7 @@
if(wielded)
user.say("[war_cry]", forced="spear warcry")
explosive.forceMove(AM)
- explosive.prime(lanced_by=user)
+ explosive.detonate(lanced_by=user)
qdel(src)
//GREY TIDE
diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm
index 20cd0c534c9..ef6779a64c5 100644
--- a/code/modules/hydroponics/grown/citrus.dm
+++ b/code/modules/hydroponics/grown/citrus.dm
@@ -118,10 +118,10 @@
C.throw_mode_on()
icon_state = "firelemon_active"
playsound(loc, 'sound/weapons/armbomb.ogg', 75, TRUE, -3)
- addtimer(CALLBACK(src, .proc/prime), rand(10, 60))
+ addtimer(CALLBACK(src, .proc/detonate), rand(10, 60))
/obj/item/food/grown/firelemon/burn()
- prime()
+ detonate()
..()
/obj/item/food/grown/firelemon/proc/update_mob()
@@ -132,7 +132,7 @@
/obj/item/food/grown/firelemon/ex_act(severity)
qdel(src) //Ensuring that it's deleted by its own explosion
-/obj/item/food/grown/firelemon/proc/prime(mob/living/lanced_by)
+/obj/item/food/grown/firelemon/proc/detonate(mob/living/lanced_by)
switch(seed.potency) //Combustible lemons are alot like IEDs, lots of flame, very little bang.
if(0 to 30)
update_mob()
diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm
index d2db007bedb..ad4ee7f026b 100644
--- a/code/modules/hydroponics/grown/misc.dm
+++ b/code/modules/hydroponics/grown/misc.dm
@@ -214,18 +214,18 @@
/obj/item/food/grown/cherry_bomb/attack_self(mob/living/user)
user.visible_message("[user] plucks the stem from [src]!", "You pluck the stem from [src], which begins to hiss loudly!")
log_bomber(user, "primed a", src, "for detonation")
- prime()
+ detonate()
/obj/item/food/grown/cherry_bomb/deconstruct(disassembled = TRUE)
if(!disassembled)
- prime()
+ detonate()
if(!QDELETED(src))
qdel(src)
/obj/item/food/grown/cherry_bomb/ex_act(severity)
qdel(src) //Ensuring that it's deleted by its own explosion. Also prevents mass chain reaction with piles of cherry bombs
-/obj/item/food/grown/cherry_bomb/proc/prime(mob/living/lanced_by)
+/obj/item/food/grown/cherry_bomb/proc/detonate(mob/living/lanced_by)
icon_state = "cherry_bomb_lit"
playsound(src, 'sound/effects/fuse.ogg', seed.potency, FALSE)
reagents.chem_temp = 1000 //Sets off the gunpowder
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index 014fe332860..77455dd683a 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -780,7 +780,7 @@
if(istype(held_item, /obj/item/grenade))
var/obj/item/grenade/G = held_item
G.forceMove(drop_location())
- G.prime()
+ G.detonate()
to_chat(src, "You let go of [held_item]!")
held_item = null
return 1
diff --git a/code/modules/ninja/ninja_explosive.dm b/code/modules/ninja/ninja_explosive.dm
index 329a95e5e2c..097c0b19a21 100644
--- a/code/modules/ninja/ninja_explosive.dm
+++ b/code/modules/ninja/ninja_explosive.dm
@@ -11,7 +11,7 @@
desc = "A modified C-4 charge supplied to you by the Spider Clan. Its explosive power has been juiced up, but only works in one specific area."
boom_sizes = list(4, 8, 12)
var/mob/detonator = null
-
+
/obj/item/grenade/c4/ninja/afterattack(atom/movable/AM, mob/user, flag)
var/datum/antagonist/ninja/ninja_antag = user.mind.has_antag_datum(/datum/antagonist/ninja)
if(!ninja_antag)
@@ -26,8 +26,8 @@
return
detonator = user
return ..()
-
-/obj/item/grenade/c4/ninja/prime(mob/living/lanced_by)
+
+/obj/item/grenade/c4/ninja/detonate(mob/living/lanced_by)
. = ..()
//Since we already did the checks in afterattack, the denonator must be a ninja with the bomb objective.
if(!detonator)
diff --git a/code/modules/projectiles/guns/misc/grenade_launcher.dm b/code/modules/projectiles/guns/misc/grenade_launcher.dm
index 51f20c19d95..fc1de2b0deb 100644
--- a/code/modules/projectiles/guns/misc/grenade_launcher.dm
+++ b/code/modules/projectiles/guns/misc/grenade_launcher.dm
@@ -43,4 +43,4 @@
F.active = 1
F.icon_state = initial(F.icon_state) + "_active"
playsound(user.loc, 'sound/weapons/armbomb.ogg', 75, TRUE, -3)
- addtimer(CALLBACK(F, /obj/item/grenade.proc/prime), 15)
+ addtimer(CALLBACK(F, /obj/item/grenade.proc/detonate), 15)
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index 0ad454c4a35..08190c16863 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -547,7 +547,7 @@
S.visible_message("Infused with plasma, the core begins to expand uncontrollably!")
S.icon_state = "[S.base_state]_active"
S.active = TRUE
- addtimer(CALLBACK(S, /obj/item/grenade.proc/prime), rand(15,60))
+ addtimer(CALLBACK(S, /obj/item/grenade.proc/detonate), rand(15,60))
else
var/mob/living/simple_animal/slime/random/S = new (get_turf(holder.my_atom))
S.visible_message("Infused with plasma, the core begins to quiver and grow, and a new baby slime emerges from it!")
@@ -564,7 +564,7 @@
S.visible_message("Infused with slime jelly, the core begins to expand uncontrollably!")
S.icon_state = "[S.base_state]_active"
S.active = TRUE
- addtimer(CALLBACK(S, /obj/item/grenade.proc/prime), rand(15,60))
+ addtimer(CALLBACK(S, /obj/item/grenade.proc/detonate), rand(15,60))
var/lastkey = holder.my_atom.fingerprintslast
var/touch_msg = "N/A"
if(lastkey)
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index abfc98f5ade..f2471184916 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -291,7 +291,7 @@
investigate_log("Experimentor has transformed [savedName] into [loaded_item]", INVESTIGATE_EXPERIMENTOR)
if(istype(loaded_item, /obj/item/grenade/chem_grenade))
var/obj/item/grenade/chem_grenade/CG = loaded_item
- CG.prime()
+ CG.detonate()
ejectItem()
////////////////////////////////////////////////////////////////////////////////////////////////
if(exp == SCANTYPE_GAS)
@@ -613,13 +613,13 @@
/obj/item/relic/proc/clean(mob/user)
playsound(src, "sparks", rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
var/obj/item/grenade/chem_grenade/cleaner/CL = new/obj/item/grenade/chem_grenade/cleaner(get_turf(user))
- CL.prime()
+ CL.detonate()
warn_admins(user, "Smoke", 0)
/obj/item/relic/proc/flash(mob/user)
playsound(src, "sparks", rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
var/obj/item/grenade/flashbang/CB = new/obj/item/grenade/flashbang(user.loc)
- CB.prime()
+ CB.detonate()
warn_admins(user, "Flash")
/obj/item/relic/proc/petSpray(mob/user)
diff --git a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm
index c7a5e9bcb26..583ec832437 100644
--- a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm
+++ b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm
@@ -377,7 +377,7 @@
var/turf/T = get_turf(src)
message_admins("[ADMIN_LOOKUPFLW(user)] fired a [F] in [ADMIN_VERBOSEJMP(T)]")
log_game("[key_name(user)] fired a [F] in [AREACOORD(T)]")
- addtimer(CALLBACK(F, /obj/item/grenade/flashbang.proc/prime), det_time)
+ addtimer(CALLBACK(F, /obj/item/grenade/flashbang.proc/detonate), det_time)
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang //Because I am a heartless bastard -Sieve //Heartless? for making the poor man's honkblast? - Kaze
name = "\improper SOB-3 grenade launcher"
diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm
index a0d261e6079..9003db3626c 100644
--- a/code/modules/vending/security.dm
+++ b/code/modules/vending/security.dm
@@ -31,7 +31,7 @@
/obj/machinery/vending/security/pre_throw(obj/item/I)
if(istype(I, /obj/item/grenade))
var/obj/item/grenade/G = I
- G.preprime()
+ G.arm_grenade()
else if(istype(I, /obj/item/flashlight))
var/obj/item/flashlight/F = I
F.on = TRUE