Adds more reasons to explosion logging (#28812)

* explos

* yeah good enough

* shorten that

* use ckey

* forgot this cause

* unfuck it
This commit is contained in:
Contrabang
2025-03-28 14:49:57 -04:00
committed by GitHub
parent c63dc53202
commit fde22d1c43
77 changed files with 120 additions and 117 deletions
+4 -4
View File
@@ -702,11 +702,11 @@ GLOBAL_LIST_INIT(view_runtimes_verbs, list(
if(null)
return 0
if("Small Bomb")
explosion(epicenter, 1, 2, 3, 3)
explosion(epicenter, 1, 2, 3, 3, cause = "[ckey]: Drop Bomb command")
if("Medium Bomb")
explosion(epicenter, 2, 3, 4, 4)
explosion(epicenter, 2, 3, 4, 4, cause = "[ckey]: Drop Bomb command")
if("Big Bomb")
explosion(epicenter, 3, 5, 7, 5)
explosion(epicenter, 3, 5, 7, 5, cause = "[ckey]: Drop Bomb command")
if("Custom Bomb")
var/devastation_range = tgui_input_number(src, "Devastation range (in tiles):", "Custom Bomb", max_value = 255)
if(isnull(devastation_range))
@@ -720,7 +720,7 @@ GLOBAL_LIST_INIT(view_runtimes_verbs, list(
var/flash_range = tgui_input_number(src, "Flash range (in tiles):", "Custom Bomb", max_value = 255)
if(isnull(flash_range))
return
explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, 1, 1)
explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, 1, 1, cause = "[ckey]: Drop Bomb command")
log_admin("[key_name(usr)] created an admin explosion at [epicenter.loc]")
message_admins("<span class='adminnotice'>[key_name_admin(usr)] created an admin explosion at [epicenter.loc]</span>")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Drop Bomb") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+1 -1
View File
@@ -737,7 +737,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(alert(src, "Are you sure you want to do this? It will laaag.", "Confirmation", "Yes", "No") == "No")
return
explosion(O, devastation, heavy, light, flash, null, null,flames)
explosion(O, devastation, heavy, light, flash, null, null,flames, cause = "[ckey]: Explosion command")
log_admin("[key_name(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])")
message_admins("[key_name_admin(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])")
SSblackbox.record_feedback("tally", "admin_verb", 1, "EXPL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -40,7 +40,7 @@
for(var/obj/item/organ/internal/I in organs)
I.remove(user, TRUE)
explosion(get_turf(user), 0, 0, 2, 0, silent = TRUE)
explosion(get_turf(user), 0, 0, 2, 0, silent = TRUE, cause = "Headslug explosion")
for(var/mob/living/carbon/human/H in range(2, user))
to_chat(H, "<span class='userdanger'>You are blinded by a shower of blood!</span>")
H.KnockDown(4 SECONDS)
+6 -6
View File
@@ -134,11 +134,11 @@
strength = (fuel_moles / 15)
if(strength >=1)
explosion(ground_zero, round(strength,1), round(strength*2,1), round(strength*3,1), round(strength*4,1))
explosion(ground_zero, round(strength,1), round(strength*2,1), round(strength*3,1), round(strength*4,1), cause = "Toxins Tank Explosion")
else if(strength >=0.5)
explosion(ground_zero, 0, 1, 2, 4)
explosion(ground_zero, 0, 1, 2, 4, cause = "Toxins Tank Explosion")
else if(strength >=0.2)
explosion(ground_zero, -1, 0, 1, 2)
explosion(ground_zero, -1, 0, 1, 2, cause = "Toxins Tank Explosion")
else
ground_zero.blind_release_air(air_contents)
ground_zero.hotspot_expose(1000, 125)
@@ -147,9 +147,9 @@
strength = (fuel_moles/20)
if(strength >=1)
explosion(ground_zero, 0, round(strength, 1), round(strength * 2, 1), round(strength * 3, 1))
explosion(ground_zero, 0, round(strength, 1), round(strength * 2, 1), round(strength * 3, 1), cause = "Toxins Tank Explosion")
else if(strength >=0.5)
explosion(ground_zero, -1, 0, 1, 2)
explosion(ground_zero, -1, 0, 1, 2, cause = "Toxins Tank Explosion")
else
ground_zero.blind_release_air(air_contents)
ground_zero.hotspot_expose(1000, 125)
@@ -158,7 +158,7 @@
strength = (fuel_moles / 25)
if(strength >= 1)
explosion(ground_zero, -1, 0, round(strength, 1), round(strength * 3, 1))
explosion(ground_zero, -1, 0, round(strength, 1), round(strength * 3, 1), cause = "Toxins Tank Explosion")
else
ground_zero.blind_release_air(air_contents)
ground_zero.hotspot_expose(1000, 125)
@@ -41,7 +41,7 @@ GLOBAL_LIST_EMPTY(telecomms_trap_tank)
var/your_doom = get_turf(src)
new /obj/item/grenade/frag(your_doom)
internal_tank.forceMove(your_doom)
explosion(your_doom, 1, 0, 0, 6, FALSE, 6)
explosion(your_doom, 1, 0, 0, 6, FALSE, 6, cause = "DVORAK Doomba")
qdel(decorative_eye)
qdel(src)
@@ -187,7 +187,7 @@ GLOBAL_LIST_EMPTY(telecomms_trap_tank)
explode()
/obj/structure/telecomms_trap_tank/proc/explode()
explosion(loc, 1, 4, 6, flame_range = 6)
explosion(loc, 1, 4, 6, flame_range = 6, cause = "Telecomms trap tank")
qdel(src)
/obj/structure/telecomms_doomsday_device
@@ -286,7 +286,7 @@ GLOBAL_LIST_EMPTY(telecomms_trap_tank)
loc.invisibility = 90
for(var/turf/simulated/wall/indestructible/riveted/R in urange(25, get_turf(src)))
R.ChangeTurf(/turf/space)
explosion(get_turf(src), 30, 40, 50, 60, 1, 1, 65, 0)
explosion(get_turf(src), 30, 40, 50, 60, 1, 1, 65, 0, cause = "DVORAK Doomsday Device")
sleep(3 SECONDS)
var/obj/singularity/S = new /obj/singularity(get_turf(src))
S.consumedSupermatter = TRUE // woe large supermatter to eat the remains apon thee
@@ -426,7 +426,7 @@ GLOBAL_LIST_EMPTY(telecomms_trap_tank)
addtimer(CALLBACK(src, PROC_REF(prime)), 5 SECONDS)
/obj/item/remote_ai_upload/proc/prime()
explosion(loc, -1, -1, 2, 4, flame_range = 4)
explosion(loc, -1, -1, 2, 4, flame_range = 4, cause = "Remote AI Upload explosion")
qdel(src)
/obj/effect/spawner/random/telecomms_core_table
+2 -2
View File
@@ -24,10 +24,10 @@
flash = tgui_input_number(user, "Range of Flash", "Flash", -1, min_value = -1)
flames = tgui_input_number(user, "Range of Flames", "Flames", -1, min_value = -1)
/datum/buildmode_mode/boom/handle_click(user, params, obj/object)
/datum/buildmode_mode/boom/handle_click(mob/user, params, obj/object)
var/list/pa = params2list(params)
var/left_click = pa.Find("left")
if(left_click)
log_admin("Build Mode: [key_name(user)] created an explosion at ([object.x],[object.y],[object.z])")
explosion(object, devastation, heavy, light, flash, null, TRUE, flames)
explosion(object, devastation, heavy, light, flash, null, TRUE, flames, cause = "[user.ckey]: Buildmode boom")
+1 -1
View File
@@ -63,7 +63,7 @@
M.speak = rampant_speeches.Copy()
M.speak_chance = 15
else
explosion(upriser.loc, -1, 1, 2, 4, 0)
explosion(upriser.loc, -1, 1, 2, 4, 0, cause = "Brand Intelligence Uprising")
qdel(upriser)
log_debug("Brand intelligence: The last vendor has been infected.")
+1 -1
View File
@@ -34,7 +34,7 @@
if(prob(45))
new /obj/item/food/meat(where)
else if(prob(10))
explosion(where, 0, pick(0,1), pick(2,3), 0)
explosion(where, 0, pick(0,1), pick(2,3), 0, cause = "Meaty space dust")
else
new /mob/living/simple_animal/cow(where)
+1 -1
View File
@@ -217,7 +217,7 @@
return TRUE
/datum/spacevine_mutation/explosive/on_death(obj/structure/spacevine/holder, mob/hitter, obj/item/I)
explosion(holder.loc, 0, 0, severity, 0, 0)
explosion(holder.loc, 0, 0, severity, 0, 0, cause = "Explosive Spacevines")
/datum/spacevine_mutation/fire_proof
name = "fire proof"
@@ -1144,7 +1144,7 @@
if(do_after_once(user, 4 SECONDS, target = src))
visible_message("<span class='danger'>[src] suddenly combust!</span>")
to_chat(user, "<span class='warning'>You combust [src] with your mind!</span>")
explosion(get_turf(src), light_impact_range = 2, flash_range = 2)
explosion(get_turf(src), light_impact_range = 2, flash_range = 2, cause = "[user.ckey]: blows up pancakes with mind")
add_attack_logs(user, src, "blew up [src] with TK", ATKLOG_ALL)
qdel(src)
return
@@ -580,7 +580,7 @@
visible_message("<span class='userdanger'>[src] violently explodes!</span>")
message_admins("A pizza bomb set by [key_name_admin(armer)] and opened by [key_name_admin(opener)] has detonated at [ADMIN_JMP(loc)].")
log_game("Pizza bomb set by [key_name(armer)] and opened by [key_name(opener)]) detonated at ([loc.x],[loc.y],[loc.z]).")
explosion(loc, 1, 2, 4, flame_range = 2) //Identical to a minibomb
explosion(loc, 1, 2, 4, flame_range = 2, cause = "Pizza bomb") //Identical to a minibomb
qdel(src)
/obj/item/pizzabox/pizza_bomb/cmag_act(mob/user)
+5 -5
View File
@@ -143,21 +143,21 @@
switch(seed.potency) //Combustible lemons are alot like IEDs, lots of flame, very little bang.
if(0 to 30)
update_mob()
explosion(loc,-1,-1,2, flame_range = 1)
explosion(loc,-1,-1,2, flame_range = 1, cause = name)
qdel(src)
if(31 to 50)
update_mob()
explosion(loc,-1,-1,2, flame_range = 2)
explosion(loc,-1,-1,2, flame_range = 2, cause = name)
qdel(src)
if(51 to 70)
update_mob()
explosion(loc,-1,-1,2, flame_range = 3)
explosion(loc,-1,-1,2, flame_range = 3, cause = name)
qdel(src)
if(71 to 90)
update_mob()
explosion(loc,-1,-1,2, flame_range = 4)
explosion(loc,-1,-1,2, flame_range = 4, cause = name)
qdel(src)
else
update_mob()
explosion(loc,-1,-1,2, flame_range = 5)
explosion(loc,-1,-1,2, flame_range = 5, cause = name)
qdel(src)
@@ -109,7 +109,7 @@
else
location = get_atom_on_turf(src)
if(location)
explosion(location, boom_sizes[1], boom_sizes[2], boom_sizes[3], cause = src)
explosion(location, boom_sizes[1], boom_sizes[2], boom_sizes[3], cause = name)
location.ex_act(EXPLODE_HEAVY, target)
qdel(src)
@@ -165,7 +165,7 @@
"<span class='danger'>A thunderbolt strikes [target]!</span>",
"<span class='danger'>A thundercrack fills the air!</span>"
)
explosion(target, -1, -1, light_impact_range = (boosted ? 1 : 0), flame_range = (boosted ? 2 : 1), silent = TRUE)
explosion(target, -1, -1, light_impact_range = (boosted ? 1 : 0), flame_range = (boosted ? 2 : 1), silent = TRUE, cause = name)
/obj/effect/temp_visual/thunderbolt_targeting
+3 -3
View File
@@ -361,11 +361,11 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
spawn(det_time)
if(primed)
if(quality == GIBTONITE_QUALITY_HIGH)
explosion(loc, 2, 4, 9, adminlog = notify_admins)
explosion(loc, 2, 4, 9, adminlog = notify_admins, cause = "Movable Gibtonite")
if(quality == GIBTONITE_QUALITY_MEDIUM)
explosion(loc, 1, 2, 5, adminlog = notify_admins)
explosion(loc, 1, 2, 5, adminlog = notify_admins, cause = "Movable Gibtonite")
if(quality == GIBTONITE_QUALITY_LOW)
explosion(loc, -1, 1, 3, adminlog = notify_admins)
explosion(loc, -1, 1, 3, adminlog = notify_admins, cause = "Movable Gibtonite")
qdel(src)
@@ -131,7 +131,7 @@
boom_warning = FALSE
if(H.bodytemperature > 850 && H.on_fire && prob(25))
explosion(get_turf(H), 1, 2, 4, flame_range = 5)
explosion(get_turf(H), 1, 2, 4, flame_range = 5, cause = "Burning Plasma golem")
msg_admin_attack("Plasma Golem ([H.name]) exploded with radius 1, 2, 4 (flame_range: 5) at ([H.x],[H.y],[H.z]). User Ckey: [key_name_admin(H)]", ATKLOG_FEW)
log_game("Plasma Golem ([H.name]) exploded with radius 1, 2, 4 (flame_range: 5) at ([H.x],[H.y],[H.z]). User Ckey: [key_name_admin(H)]", ATKLOG_FEW)
if(H)
+1 -1
View File
@@ -97,7 +97,7 @@
"<span class='userdanger'>\The [source] arc flashes and electrocutes you!</span>",
"<span class='italics'>You hear a lightning-like crack!</span>")
playsound(loc, 'sound/effects/eleczap.ogg', 50, TRUE, -1)
explosion(loc, -1, 0, 2, 2)
explosion(loc, -1, 0, 2, 2, cause = "Extreme Electrocution from [source]")
else
apply_damage(shock_damage, STAMINA)
visible_message(
@@ -32,7 +32,7 @@
if(explosive)
spawn(10) // REEEEEEEE
explosion(src.loc, 3, 6, 12, 15)
explosion(src.loc, 3, 6, 12, 15, cause = "Adminbus explosive AI")
for(var/obj/machinery/ai_status_display/O as anything in GLOB.ai_displays) //change status
O.mode = AI_DISPLAY_MODE_BSOD
@@ -1422,9 +1422,9 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
/mob/living/silicon/robot/proc/self_destruct()
if(emagged)
explosion(src.loc,1,2,4,flame_range = 2)
explosion(src.loc,1,2,4,flame_range = 2, cause = "Self-destruct emagged cyborg")
else
explosion(src.loc,-1,0,2)
explosion(src.loc,-1,0,2, cause = "Self-destruct cyborg")
gib()
return
@@ -608,7 +608,7 @@
/mob/living/simple_animal/pet/dog/corgi/borgi/proc/explode()
visible_message("<span class='warning'>[src] makes an odd whining noise.</span>")
explosion(get_turf(src), 0, 1, 4, 7)
explosion(get_turf(src), 0, 1, 4, 7, cause = "Emagged E-N explosion")
death()
/mob/living/simple_animal/pet/dog/corgi/borgi/proc/shootAt(atom/movable/target)
@@ -41,7 +41,7 @@
/mob/living/simple_animal/spiderbot/Destroy()
if(emagged)
QDEL_NULL(mmi)
explosion(get_turf(src), -1, -1, 3, 5)
explosion(get_turf(src), -1, -1, 3, 5, cause = "Emagged spiderbot destruction")
else
eject_brain()
return ..()
@@ -494,7 +494,7 @@ Difficulty: Hard
addtimer(CALLBACK(src, PROC_REF(kaboom)), 10 SECONDS)
/mob/living/simple_animal/hostile/megafauna/ancient_robot/proc/kaboom()
explosion(get_turf(src), -1, 7, 15, 20)
explosion(get_turf(src), -1, 7, 15, 20, cause = "[name] death")
health = 0
death(allowed = TRUE)
@@ -209,7 +209,7 @@
if(!QDELETED(mother))
mother.children_list -= src
visible_message("<span class='warning'>[src] explodes!</span>")
explosion(src, flame_range = 3, adminlog = FALSE)
explosion(src, flame_range = 3, adminlog = FALSE, cause = "[name] death")
new /obj/item/stack/sheet/animalhide/goliath_hide(loc)
new /obj/effect/gibspawner/human(get_turf(src))
qdel(src)
@@ -325,7 +325,7 @@
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/space/death()
visible_message("<span class='warning'>[src] explodes!</span>")
playsound(loc, 'sound/items/timer.ogg', 30, FALSE)
explosion(src, 0, 4, 4, flame_range = 2, adminlog = FALSE)
explosion(src, 0, 4, 4, flame_range = 2, adminlog = FALSE, cause = "[name] autogib")
qdel(src)
/mob/living/simple_animal/hostile/syndicate/melee/space
+1 -1
View File
@@ -359,7 +359,7 @@ GLOBAL_LIST_EMPTY(PDAs)
if(T)
T.hotspot_expose(700,125)
explosion(T, -1, -1, 2, 3)
explosion(T, -1, -1, 2, 3, cause = "Exploding PDA")
qdel(src)
return
+1 -1
View File
@@ -137,7 +137,7 @@
log_admin("LOG: Rigged power cell explosion, last touched by [fingerprintslast]")
message_admins("LOG: Rigged power cell explosion, last touched by [fingerprintslast]")
explosion(T, devastation_range, heavy_impact_range, light_impact_range, flash_range)
explosion(T, devastation_range, heavy_impact_range, light_impact_range, flash_range, cause = "Powercell explosion")
charge = 0 //Extra safety in the event the cell does not QDEL right
qdel(src)
@@ -511,7 +511,7 @@ GLOBAL_VAR_INIT(global_singulo_id, 1)
/obj/singularity/singularity_act()
var/gain = (energy/2)
var/dist = max((current_size - 2), 1)
explosion(loc, (dist), (dist * 2), (dist * 4))
explosion(loc, (dist), (dist * 2), (dist * 4), cause = "singularity on singularity violence")
qdel(src)
return(gain)
@@ -410,7 +410,7 @@
//Dear mappers, balance the sm max explosion radius to 17.5, 37, 39, 41
if(forced_gasmix_power_ratio)
gasmix_power_ratio = forced_gasmix_power_ratio
explosion(get_turf(T), explosion_power * max(gasmix_power_ratio, 0.205) * 0.5 , explosion_power * max(gasmix_power_ratio, 0.205) + 2, explosion_power * max(gasmix_power_ratio, 0.205) + 4 , explosion_power * max(gasmix_power_ratio, 0.205) + 6, 1, 1)
explosion(get_turf(T), explosion_power * max(gasmix_power_ratio, 0.205) * 0.5 , explosion_power * max(gasmix_power_ratio, 0.205) + 2, explosion_power * max(gasmix_power_ratio, 0.205) + 4 , explosion_power * max(gasmix_power_ratio, 0.205) + 6, 1, 1, cause = "Exploding Supermatter")
qdel(src)
/obj/machinery/atmospherics/supermatter_crystal/process_atmos()
@@ -339,7 +339,7 @@
/obj/machinery/power/port_gen/pacman/super/explode()
//a nice burst of radiation
radiation_pulse(get_turf(src), 2000, ALPHA_RAD)
explosion(loc, 3, 3, 5, 3)
explosion(loc, 3, 3, 5, 3, cause = "Exploding [name]")
qdel(src)
/obj/machinery/power/port_gen/pacman/mrs
@@ -372,7 +372,7 @@
/obj/machinery/power/port_gen/pacman/mrs/explode()
//no special effects, but the explosion is pretty big (same as a supermatter shard).
explosion(loc, 3, 6, 12, 16, 1)
explosion(loc, 3, 6, 12, 16, 1, cause = "Exploding [name]")
qdel(src)
#undef SHEET_VOLUME
@@ -78,5 +78,5 @@
stat &= ~EMPED
/obj/machinery/power/port_gen/proc/explode()
explosion(loc, -1, 3, 5, -1)
explosion(loc, -1, 3, 5, -1, cause = "Exploding [name]")
qdel(src)
+2 -2
View File
@@ -936,7 +936,7 @@
zap_flags &= ~(ZAP_MACHINE_EXPLOSIVE | ZAP_OBJ_DAMAGE)
. = ..()
if(explosive)
explosion(src, 0, 0, 0, flame_range = 5, adminlog = FALSE)
explosion(src, 0, 0, 0, flame_range = 5, cause = "Exploding light")
qdel(src)
// timed process
@@ -963,7 +963,7 @@
/obj/machinery/light/proc/actually_explode()
var/turf/T = get_turf(loc)
explosion(T, 0, 0, 2, 2)
explosion(T, 0, 0, 2, 2, cause = "exploding light")
qdel(src)
/obj/machinery/light/extinguish_light(force = FALSE)
+2 -2
View File
@@ -145,7 +145,7 @@
qdel(H)
if("exploded")
H.visible_message("<span class='chaosverybad'>[H] explodes!</span>", "<span class='chaosverybad'>Boom!</span>")
explosion(get_turf(H), 1, 1, 1, cause = "staff of chaos lethal explosion effect")
explosion(get_turf(H), 1, 1, 1, cause = "staff of chaos lethal explosion effect, fired by [key_name(firer)]")
if("cheese morphed")
H.visible_message("<span class='chaosverybad'>[H] transforms into cheese!</span>", "<span class='chaosverybad'>You've been transformed into cheese!</span>")
new /obj/item/food/sliced/cheesewedge(get_turf(H))
@@ -192,7 +192,7 @@
if("fireballed")
H.visible_message("<span class='chaosbad'>[H] is hit by a fireball! </span>", "<span class='chaosverybad'>You get hit by a fireball!</span>")
H.apply_damage(CHAOS_STAFF_DAMAGE / 3, BRUTE)
explosion(get_turf(H), -1, 0, 2, 3, flame_range = 2, cause = "staff of chaos fireball effect")
explosion(get_turf(H), -1, 0, 2, 3, flame_range = 2, cause = "staff of chaos fireball effect, fired by [key_name(firer)]")
if("ice spiked")
H.visible_message("<span class='chaosbad'>[H]'s chest get pierced by an ice spike!</span>", "<span class='chaosverybad'>An ice spike pierces your chest!</span>")
H.apply_damage(CHAOS_STAFF_DAMAGE, BRUTE, "chest")
+2 -2
View File
@@ -188,7 +188,7 @@ CONTENTS:
max_charges = 8 //8, 4, 4, 3
/obj/item/gun/magic/wand/fireball/zap_self(mob/living/user)
explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2)
explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2, cause = "Self-fireball")
charges--
..()
@@ -234,7 +234,7 @@ CONTENTS:
"<span class='userdanger'>Unsure which end of [src] is which, you accidentally zap yourself with a fireball!</span>",
"<span class='userdanger'>You hear a firey explosion!</span>"
)
explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2)
explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2, cause = "Fireball to the face from failed cigarette lighting")
charges--
return TRUE
+1 -1
View File
@@ -106,7 +106,7 @@
for(var/obj/effect/ebeam/medical/B in turf)// Don't cross the str-beams!
if(B.owner != current_beam)
turf.visible_message("<span class='userdanger'>The medbeams cross and EXPLODE!</span>")
explosion(B.loc,0,3,5,8)
explosion(B.loc,0,3,5,8, cause = "Crossed beams")
qdel(dummy)
return FALSE
qdel(dummy)
@@ -68,6 +68,6 @@
/obj/item/projectile/homing/magic/homing_fireball/on_hit(mob/living/target)
. = ..()
explosion(get_turf(target), explosion_devastate, explosion_heavy, explosion_light, explosion_flash, 0, flame_range = explosion_fire)
explosion(get_turf(target), explosion_devastate, explosion_heavy, explosion_light, explosion_flash, 0, flame_range = explosion_fire, cause = "Homing Fireball")
if(istype(target)) //multiple flavors of pain
target.adjustFireLoss(10) // does 20 brute, and 10 burn + explosion. Pretty brutal.
@@ -102,7 +102,7 @@
if(!.)
return .
var/turf/T = get_turf(target)
explosion(T, exp_devastate, exp_heavy, exp_light, exp_flash, 0, flame_range = exp_fire)
explosion(T, exp_devastate, exp_heavy, exp_light, exp_flash, 0, flame_range = exp_fire, cause = name)
if(ismob(target)) //multiple flavors of pain
var/mob/living/M = target
M.take_overall_damage(0,10) //between this 10 burn, the 10 brute, the explosion brute, and the onfire burn, your at about 65 damage if you stop drop and roll immediately
@@ -215,7 +215,7 @@
/obj/item/projectile/bullet/frag12/on_hit(atom/target, blocked = 0)
..()
explosion(target, -1, 0, 1)
explosion(target, -1, 0, 1, cause = "frag 12 fired by [key_name(firer)]")
return TRUE
/obj/item/projectile/bullet/confetti
@@ -141,7 +141,7 @@
fireflash_sm(T, radius, 2200 + radius * 250, radius * 50)
if(will_explode)
var/boomrange = min(max(min_explosion_radius, round(volume * volume_explosion_radius_multiplier + volume_explosion_radius_modifier)), max_explosion_radius)
explosion(T, -1, -1, boomrange, 1)
explosion(T, -1, -1, boomrange, 1, cause = "Hot Welding Fuel Reagent")
/datum/reagent/fuel/reaction_turf(turf/T, volume) //Don't spill the fuel, or you'll regret it
if(isspaceturf(T))
@@ -20,7 +20,7 @@
/datum/chemical_reaction/crank/on_reaction(datum/reagents/holder, created_volume)
var/turf/T = get_turf(holder.my_atom)
fireflash(holder.my_atom, 1)
explosion(T, 0, 0, 2)
explosion(T, 0, 0, 2, cause = "Crank reaction")
/datum/chemical_reaction/krokodil
name = "Krokodil"
@@ -81,7 +81,7 @@
/datum/chemical_reaction/mephedrone/on_reaction(datum/reagents/holder) //Will make it harder for botany, need a chem heater or will suffer, and mixing in plants wont work
var/turf/T = get_turf(holder.my_atom)
fireflash(holder.my_atom, 3, 500)
explosion(T, 0, 0, 2, 2, flame_range = 2)
explosion(T, 0, 0, 2, 2, flame_range = 2, cause = "Mephedrone reaction")
/datum/chemical_reaction/jenkem
name = "Jenkem"
@@ -172,9 +172,9 @@
var/ex_light = round(created_volume / 20)
var/ex_flash = round(created_volume / 8)
if(istype(holder.my_atom)) //ensures the explosion happens at the container, not where its primed at
explosion(holder.my_atom.loc, ex_severe, ex_heavy,ex_light, ex_flash, 1)
explosion(holder.my_atom.loc, ex_severe, ex_heavy,ex_light, ex_flash, 1, cause = "Blackpowder Explosion")
else
explosion(prime_location, ex_severe, ex_heavy,ex_light, ex_flash, 1)
explosion(prime_location, ex_severe, ex_heavy,ex_light, ex_flash, 1, cause = "Blackpowder Explosion")
// If this black powder is in a decal, remove the decal, because it just exploded
if(istype(holder.my_atom, /obj/effect/decal/cleanable/dirt/blackpowder))
qdel(holder.my_atom)
@@ -342,7 +342,7 @@
/datum/chemical_reaction/azide/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
explosion(location, 0, 1, 4)
explosion(location, 0, 1, 4, cause = "Azide reaction")
/datum/chemical_reaction/firefighting_foam
name = "firefighting_foam"
@@ -364,7 +364,7 @@
/datum/chemical_reaction/clf3_firefighting/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
explosion(location, -1, 0, 2)
explosion(location, -1, 0, 2, cause = "CLF3 reaction")
/datum/chemical_reaction/shock_explosion
name = "shock_explosion"
@@ -536,7 +536,7 @@
var/turf/extract_turf = get_turf(extract)
message_admins("[who] triggered an oil slime explosion at [COORD(extract_turf)].")
log_game("[who] triggered an oil slime explosion at [COORD(extract_turf)].")
explosion(extract_turf, 1, 3, 6)
explosion(extract_turf, 1, 3, 6, cause = "Oil Slime explosion")
/datum/chemical_reaction/oil_slick
name = "Oil Potion"
+1 -1
View File
@@ -275,7 +275,7 @@
reagent_id = "beer"
/obj/structure/reagent_dispensers/beerkeg/blob_act(obj/structure/blob/B)
explosion(loc, 0, 3, 5, 7, 10)
explosion(loc, 0, 3, 5, 7, 10, cause = "Blob caused [src] to explode.")
if(!QDELETED(src))
qdel(src)
+1 -1
View File
@@ -185,7 +185,7 @@
/obj/item/relic/proc/explode_callback(mob/user)
if(loc == user)
visible_message("<span class='notice'>[src]'s top opens, releasing a powerful blast!</span>")
explosion(user.loc, -1, rand(1,5), rand(1,5), rand(1,5), rand(1,5), flame_range = 2)
explosion(user.loc, -1, rand(1,5), rand(1,5), rand(1,5), rand(1,5), flame_range = 2, cause = "Exploding relic")
warn_admins(user, "Explosion")
qdel(src)
@@ -230,7 +230,7 @@
var/turf/T = get_turf(loc)
if(T)
T.hotspot_expose(700, 125)
explosion(T, -1, -1, 2, 3)
explosion(T, -1, -1, 2, 3, cause = "Repeated Sentience Potion")
qdel(src)
return
var/reason_text = tgui_input_text(user, "Enter reason for giving sentience", "Reason for sentience potion")
+1 -1
View File
@@ -219,7 +219,7 @@
message_admins("[key_name_admin(user)] has launched an artillery strike.")//Admin BSA firing, just targets a room, which the explosion says
log_admin("[key_name(user)] has launched an artillery strike.") // Line below handles logging the explosion to disk
explosion(bullseye,ex_power,ex_power*2,ex_power*4)
explosion(bullseye,ex_power,ex_power*2,ex_power*4, cause = "BSA strike")
reload()
@@ -933,7 +933,7 @@ Note that amputating the affected organ does in fact remove the infection from t
"<span class='danger'>\The [victim]'s [name] explodes violently!</span>",\
"<span class='userdanger'>Your [name] explodes!</span>",\
"<span class='danger'>You hear an explosion!</span>")
explosion(get_turf(victim), -1, -1, 2, 3)
explosion(get_turf(victim), -1, -1, 2, 3, cause = "Sabotaged robotic limb")
do_sparks(5, 0, victim)
qdel(src)