mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 21:19:00 +01:00
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:
+1
-1
@@ -193,7 +193,7 @@
|
||||
deltimer(explosion_callback)
|
||||
|
||||
stage = GIBTONITE_DETONATE
|
||||
explosion(source, 1, 3, 5, adminlog = notify_admins)
|
||||
explosion(source, 1, 3, 5, adminlog = notify_admins, cause = "Gibtonite")
|
||||
|
||||
if(!istype(source))
|
||||
return
|
||||
|
||||
@@ -35,5 +35,5 @@
|
||||
|
||||
/datum/spell/alien_spell/combust_facehuggers/proc/blow_it_up(obj/target, mob/user)
|
||||
add_attack_logs(user, target, "Caused it to explode")
|
||||
explosion(get_turf(target), 0, 2, 3, 3, cause = user)
|
||||
explosion(get_turf(target), 0, 2, 3, 3, cause = "[user.ckey]: [name]")
|
||||
to_chat(user, "<span class='noticealien'>[target] has detonated!</span>")
|
||||
|
||||
@@ -497,7 +497,7 @@
|
||||
var/turf/corpse_turf = get_turf(target)
|
||||
new /obj/effect/temp_visual/corpse_explosion(get_turf(target))
|
||||
target.gib()
|
||||
explosion(corpse_turf, 0, 0, 0, 0, silent = TRUE, breach = FALSE)
|
||||
explosion(corpse_turf, 0, 0, 0, 0, silent = TRUE, cause = name, breach = FALSE)
|
||||
for(var/mob/living/M in range(4, corpse_turf))
|
||||
if(M == user)
|
||||
continue
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
/datum/status_effect/high_five/proc/wiz_effect(mob/living/carbon/user, mob/living/carbon/highfived)
|
||||
user.status_flags |= GODMODE
|
||||
highfived.status_flags |= GODMODE
|
||||
explosion(get_turf(user), 5, 2, 1, 3, cause = id)
|
||||
explosion(get_turf(user), 5, 2, 1, 3, cause = "Wizard high-five")
|
||||
// explosions have a spawn so this makes sure that we don't get gibbed
|
||||
addtimer(CALLBACK(src, PROC_REF(wiz_cleanup), user, highfived), 0.3 SECONDS) // I want to be sure this lasts long enough, with lag.
|
||||
add_attack_logs(user, highfived, "caused a wizard [id] explosion")
|
||||
|
||||
@@ -473,7 +473,7 @@
|
||||
|
||||
/datum/spell/ai_spell/ranged/overload_machine/proc/detonate_machine(obj/machinery/M)
|
||||
if(M && !QDELETED(M))
|
||||
explosion(get_turf(M), 0, 2, 3, 0)
|
||||
explosion(get_turf(M), 0, 2, 3, 0, cause = "Malf AI: [name]")
|
||||
if(M) //to check if the explosion killed it before we try to delete it
|
||||
qdel(M)
|
||||
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
|
||||
/datum/spell/pulse_demon/overload/proc/detonate(obj/machinery/target)
|
||||
if(!QDELETED(target))
|
||||
explosion(get_turf(target), 0, 1, 1, 0)
|
||||
explosion(get_turf(target), 0, 1, 1, 0, cause = "Pulse Demon: [name]")
|
||||
if(!QDELETED(target))
|
||||
qdel(target)
|
||||
|
||||
|
||||
@@ -1016,7 +1016,7 @@
|
||||
|
||||
/obj/item/spellbook/oneuse/fireball/recoil(mob/user as mob)
|
||||
..()
|
||||
explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2)
|
||||
explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2, cause = "[user]: Self-fireball from oneuse [name]")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/spellbook/oneuse/smoke
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
/obj/machinery/camera/tracking_head/proc/explode_the_camera()
|
||||
if(QDELETED(src))
|
||||
return
|
||||
explosion(loc, -1, -1, 2, flame_range = 4)
|
||||
explosion(loc, -1, -1, 2, flame_range = 4, cause = "Exploding DVORAK Camera")
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/camera_head
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
num_of_prizes = rand(0,2)
|
||||
for(var/i = num_of_prizes; i > 0; i--)
|
||||
prizevend()
|
||||
explosion(get_turf(src), -1, 0, 1+num_of_prizes, flame_range = 1+num_of_prizes)
|
||||
explosion(get_turf(src), -1, 0, 1+num_of_prizes, flame_range = 1+num_of_prizes, cause = "EMP'd arcade machine")
|
||||
|
||||
|
||||
/obj/machinery/computer/arcade/battle
|
||||
@@ -1012,7 +1012,7 @@
|
||||
playsound(loc, 'sound/machines/buzz-sigh.ogg', 25, TRUE)
|
||||
sleep(3.6)
|
||||
visible_message("<span class='userdanger'>[src] explodes!</span>")
|
||||
explosion(src.loc, 1,2,4, flame_range = 3)
|
||||
explosion(src.loc, 1,2,4, flame_range = 3, cause = "Orion Ship Minibomb")
|
||||
qdel(src)
|
||||
|
||||
|
||||
|
||||
@@ -555,7 +555,7 @@
|
||||
|
||||
/obj/machinery/zap_act(power, zap_flags)
|
||||
if(prob(85) && (zap_flags & ZAP_MACHINE_EXPLOSIVE) && !(resistance_flags & INDESTRUCTIBLE))
|
||||
explosion(src, 1, 2, 4, flame_range = 2, adminlog = FALSE, smoke = FALSE)
|
||||
explosion(src, 1, 2, 4, flame_range = 2, adminlog = FALSE, smoke = FALSE, cause = "Random Zap Explosion")
|
||||
else if(zap_flags & ZAP_OBJ_DAMAGE)
|
||||
take_damage(power * 0.0005, BURN, ENERGY)
|
||||
if(prob(40))
|
||||
|
||||
@@ -341,7 +341,7 @@
|
||||
if(adminlog)
|
||||
message_admins(adminlog)
|
||||
log_game(adminlog)
|
||||
explosion(get_turf(src), range_heavy, range_medium, range_light, flame_range = range_flame, adminlog = admin_log)
|
||||
explosion(get_turf(src), range_heavy, range_medium, range_light, flame_range = range_flame, adminlog = admin_log, cause = "[name]: bombcore explosion")
|
||||
if(loc && istype(loc, /obj/machinery/syndicatebomb))
|
||||
qdel(loc)
|
||||
qdel(src)
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
for(var/mob/M in viewers(8, location))
|
||||
to_chat(M, "<span class='warning'>The solution violently explodes.</span>")
|
||||
|
||||
explosion(location, devastation, heavy, light, flash)
|
||||
explosion(location, devastation, heavy, light, flash, cause = "Reagents Explosion")
|
||||
|
||||
/datum/effect_system/reagents_explosion/proc/holder_damage(atom/holder)
|
||||
if(holder)
|
||||
|
||||
@@ -243,7 +243,7 @@ GLOBAL_LIST_INIT(meteors_gore, list(/obj/effect/meteor/meaty = 5, /obj/effect/me
|
||||
|
||||
/obj/effect/meteor/medium/meteor_effect()
|
||||
..()
|
||||
explosion(loc, 0, 1, 2, 3, 0)
|
||||
explosion(loc, 0, 1, 2, 3, 0, cause = name)
|
||||
|
||||
//Large-sized
|
||||
/obj/effect/meteor/big
|
||||
@@ -255,7 +255,7 @@ GLOBAL_LIST_INIT(meteors_gore, list(/obj/effect/meteor/meaty = 5, /obj/effect/me
|
||||
|
||||
/obj/effect/meteor/big/meteor_effect()
|
||||
..()
|
||||
explosion(loc, 1, 2, 3, 4, 0)
|
||||
explosion(loc, 1, 2, 3, 4, 0, cause = name)
|
||||
|
||||
//Flaming meteor
|
||||
/obj/effect/meteor/flaming
|
||||
@@ -268,7 +268,7 @@ GLOBAL_LIST_INIT(meteors_gore, list(/obj/effect/meteor/meaty = 5, /obj/effect/me
|
||||
|
||||
/obj/effect/meteor/flaming/meteor_effect()
|
||||
..()
|
||||
explosion(loc, 1, 2, 3, 4, 0, 0, 5)
|
||||
explosion(loc, 1, 2, 3, 4, 0, 0, 5, cause = name)
|
||||
|
||||
//Radiation meteor
|
||||
/obj/effect/meteor/irradiated
|
||||
@@ -280,7 +280,7 @@ GLOBAL_LIST_INIT(meteors_gore, list(/obj/effect/meteor/meaty = 5, /obj/effect/me
|
||||
|
||||
/obj/effect/meteor/irradiated/meteor_effect()
|
||||
..()
|
||||
explosion(loc, 0, 0, 4, 3, 0)
|
||||
explosion(loc, 0, 0, 4, 3, 0, cause = name)
|
||||
new /obj/effect/decal/cleanable/greenglow(get_turf(src))
|
||||
radiation_pulse(src, 20000, 7, ALPHA_RAD)
|
||||
for(var/turf/target_turf in range(loc, 3))
|
||||
@@ -296,7 +296,7 @@ GLOBAL_LIST_INIT(meteors_gore, list(/obj/effect/meteor/meaty = 5, /obj/effect/me
|
||||
|
||||
/obj/effect/meteor/bananium/meteor_effect()
|
||||
..()
|
||||
explosion(loc, 0, 0, 3, 2, 0)
|
||||
explosion(loc, 0, 0, 3, 2, 0, cause = name)
|
||||
var/turf/current_turf = get_turf(src)
|
||||
new /obj/item/grown/bananapeel(current_turf)
|
||||
for(var/obj/target in range(4, current_turf))
|
||||
@@ -321,12 +321,12 @@ GLOBAL_LIST_INIT(meteors_gore, list(/obj/effect/meteor/meaty = 5, /obj/effect/me
|
||||
|
||||
/obj/effect/meteor/tunguska/meteor_effect()
|
||||
..()
|
||||
explosion(loc, 5, 10, 15, 20, 0)
|
||||
explosion(loc, 5, 10, 15, 20, 0, cause = "[name]: End explosion")
|
||||
|
||||
/obj/effect/meteor/tunguska/Bump()
|
||||
..()
|
||||
if(prob(20))
|
||||
explosion(loc, 2, 4, 6, 8)
|
||||
explosion(loc, 2, 4, 6, 8, cause = "[name]: Bump explosion")
|
||||
|
||||
//Meaty Ore
|
||||
/obj/effect/meteor/meaty
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
var/range_flash = 3
|
||||
|
||||
/obj/effect/mine/explosive/mineEffect(mob/living/victim)
|
||||
explosion(loc, range_devastation, range_heavy, range_light, range_flash)
|
||||
explosion(loc, range_devastation, range_heavy, range_light, range_flash, cause = name)
|
||||
|
||||
/obj/effect/mine/stun
|
||||
name = "stun mine"
|
||||
@@ -68,7 +68,7 @@
|
||||
var/area/syndicate_depot/core/depotarea = get_area(src)
|
||||
if(istype(depotarea))
|
||||
if(depotarea.mine_triggered(victim))
|
||||
explosion(loc, 1, 0, 0, 1) // devastate the tile you are on, but leave everything else untouched
|
||||
explosion(loc, 1, 0, 0, 1, cause = "depot sentry mine") // devastate the tile you are on, but leave everything else untouched
|
||||
|
||||
/obj/effect/mine/dnascramble
|
||||
name = "Radiation Mine"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#define FREQ_UPPER 40 //The upper limit for the randomly selected frequency.
|
||||
#define FREQ_LOWER 25 //The lower of the above.
|
||||
|
||||
/proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1, ignorecap = 0, flame_range = 0, silent = 0, smoke = 1, cause = null, breach = TRUE)
|
||||
/proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1, ignorecap = 0, flame_range = 0, silent = 0, smoke = 1, cause = "Unknown Cause!", breach = TRUE)
|
||||
epicenter = get_turf(epicenter)
|
||||
if(!epicenter)
|
||||
return
|
||||
@@ -49,8 +49,8 @@
|
||||
var/list/cached_exp_block = list()
|
||||
|
||||
if(adminlog)
|
||||
message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] [cause ? "(Cause: [cause])" : ""] [ADMIN_COORDJMP(epicenter)] ")
|
||||
log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] [cause ? "(Cause: [cause])" : ""] [COORD(epicenter)] ")
|
||||
message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] (Cause: [cause]) [ADMIN_COORDJMP(epicenter)] ")
|
||||
log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] (Cause: [cause]) [COORD(epicenter)] ")
|
||||
|
||||
var/x0 = epicenter.x
|
||||
var/y0 = epicenter.y
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
|
||||
if(power_drained >= max_power)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
explosion(src.loc, 4,8,16,32)
|
||||
explosion(src.loc, 4,8,16,32, cause = "Powersink Explosion")
|
||||
qdel(src)
|
||||
|
||||
#undef DISCONNECTED
|
||||
|
||||
@@ -1111,11 +1111,11 @@
|
||||
/obj/item/toy/plushie/borgplushie/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(!istype(used, /obj/item/borg/upgrade/reset))
|
||||
return ..()
|
||||
|
||||
|
||||
if(!plushie_module_selected)
|
||||
to_chat(user, "<span class='warning'>[src] is already in standard mode!</span>")
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
|
||||
borg_plushie_overlay = "plushie_borgassist"
|
||||
update_icon()
|
||||
to_chat(user, "<span class='notice'>The fabric on [src] changes color, reverting it back to standard mode.</span>")
|
||||
@@ -1232,7 +1232,7 @@
|
||||
visible_message("<span class='danger'>[src] explodes!</span>")
|
||||
if(grenade)
|
||||
explosive_betrayal(grenade)
|
||||
explosion(get_turf(src), -1, 0, 1, 1, flame_range = 1)
|
||||
explosion(get_turf(src), -1, 0, 1, 1, flame_range = 1, cause = "Plasmaman plushie caught on fire")
|
||||
if(!QDELETED(src))
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -702,7 +702,7 @@
|
||||
* Called in `/obj/item/rcd/proc/detonate_pulse()` via callback.
|
||||
*/
|
||||
/obj/item/rcd/proc/detonate_pulse_explode()
|
||||
explosion(src, 0, 0, 3, 1, flame_range = 1)
|
||||
explosion(src, 0, 0, 3, 1, flame_range = 1, cause = "RCD Explosion")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/rcd/preloaded
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
if(!imp_in)
|
||||
return
|
||||
|
||||
explosion(src, heavy, medium, weak, weak, flame_range = weak)
|
||||
explosion(src, heavy, medium, weak, weak, flame_range = weak, cause = name)
|
||||
|
||||
// In case something happens to the implantee between now and the
|
||||
// self-destruct
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
if(C.m_intent != MOVE_INTENT_WALK)
|
||||
visible_message("[src] beeps, \"Sign says walk, asshole.\"")
|
||||
playsound(src, 'sound/misc/sign_says_walk.ogg', 40)
|
||||
explosion(src.loc,-1,0,2)
|
||||
explosion(src.loc,-1,0,2, cause = "Exploding wet floor sign")
|
||||
if(ishuman(C))
|
||||
dead_legs(C)
|
||||
if(src)
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
if(8)
|
||||
//Fueltank Explosion
|
||||
T.visible_message("<span class='userdanger'>An explosion bursts into existence around [user]!</span>")
|
||||
explosion(get_turf(user), -1, 0, 2, flame_range = 2)
|
||||
explosion(get_turf(user), -1, 0, 2, flame_range = 2, cause = "Die of fate: fuel tank explosion")
|
||||
if(9)
|
||||
//Cold
|
||||
var/datum/disease/D = new /datum/disease/cold()
|
||||
@@ -406,7 +406,7 @@
|
||||
|
||||
var/turf/epicenter = get_turf(src)
|
||||
var/area/A = get_area(epicenter)
|
||||
explosion(epicenter, round(result * 0.25), round(result * 0.5), round(result), round(result * 1.5), TRUE, capped)
|
||||
explosion(epicenter, round(result * 0.25), round(result * 0.5), round(result), round(result * 1.5), TRUE, capped, cause = "E20 explosion")
|
||||
investigate_log("E20 detonated at [A.name] ([epicenter.x],[epicenter.y],[epicenter.z]) with a roll of [actual_result]. Triggered by: [key_name(user)]", INVESTIGATE_BOMB)
|
||||
log_game("E20 detonated at [A.name] ([epicenter.x],[epicenter.y],[epicenter.z]) with a roll of [actual_result]. Triggered by: [key_name(user)]")
|
||||
add_attack_logs(user, src, "detonated with a roll of [actual_result]", ATKLOG_FEW)
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
if(location)
|
||||
if(shaped && aim_dir)
|
||||
location = get_step(get_step(location, aim_dir), aim_dir) //Move the explosion location two steps away from the target when using a shaped c4
|
||||
explosion(location, ex_devastate, ex_heavy, ex_light, breach = ex_breach)
|
||||
explosion(location, ex_devastate, ex_heavy, ex_light, breach = ex_breach, cause = name)
|
||||
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
/obj/item/grenade/frag/prime()
|
||||
update_mob()
|
||||
explosion(loc, 0, 1, DEFAULT_SHRAPNEL_RANGE, breach = FALSE)
|
||||
explosion(loc, 0, 1, DEFAULT_SHRAPNEL_RANGE, cause = name, breach = FALSE)
|
||||
create_shrapnel(loc, shrapnel_contained, shrapnel_type = embedded_type)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -63,5 +63,5 @@
|
||||
|
||||
/obj/item/grenade/iedcasing/prime() //Blowing that can up
|
||||
update_mob()
|
||||
explosion(loc, -1, -1, 2, flame_range = 4) // small explosion, plus a very large fireball.
|
||||
explosion(loc, -1, -1, 2, flame_range = 4, cause = "IED grenade") // small explosion, plus a very large fireball.
|
||||
qdel(src)
|
||||
|
||||
@@ -5,14 +5,16 @@
|
||||
icon_state = "syndicate"
|
||||
item_state = "grenade"
|
||||
origin_tech = "materials=3;magnets=4;syndicate=3"
|
||||
var/explosion_cause = "Syndicate minibomb"
|
||||
|
||||
/obj/item/grenade/syndieminibomb/prime()
|
||||
update_mob()
|
||||
explosion(loc, 1, 2, 4, flame_range = 2)
|
||||
explosion(loc, 1, 2, 4, flame_range = 2, cause = explosion_cause)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/grenade/syndieminibomb/fake
|
||||
origin_tech = "materials=3;magnets=4;syndicate=1" // no clown, this bomb not exactly the same
|
||||
explosion_cause = "Trick Syndicate minibomb"
|
||||
|
||||
/obj/item/grenade/syndieminibomb/fake/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -32,6 +34,7 @@
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "pen"
|
||||
item_state = "pen"
|
||||
explosion_cause = "Syndicate minibomb (disguised as a black pen)"
|
||||
|
||||
/obj/item/grenade/syndieminibomb/pen/attack_self__legacy__attackchain(mob/user)
|
||||
if(!active)
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
/obj/item/storage/backpack/holding/singularity_act(current_size)
|
||||
var/dist = max((current_size - 2), 1)
|
||||
explosion(loc, dist, (dist * 2), (dist * 4))
|
||||
explosion(loc, dist, (dist * 2), (dist * 4), cause = "Bag of Holding (singularity_act)")
|
||||
|
||||
/obj/item/storage/backpack/santabag
|
||||
name = "Santa's Gift Bag"
|
||||
|
||||
@@ -250,7 +250,7 @@
|
||||
|
||||
// to_chat(world, "<span class='notice'>Exploding Pressure: [pressure] kPa, intensity: [range]</span>")
|
||||
|
||||
explosion(epicenter, round(range*0.25), round(range*0.5), round(range), round(range*1.5))
|
||||
explosion(epicenter, round(range*0.25), round(range*0.5), round(range), round(range*1.5), cause = "Exploding tank rupture")
|
||||
if(istype(loc,/obj/item/transfer_valve))
|
||||
qdel(loc)
|
||||
else
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
add_attack_logs(user, src, "has detonated", ATKLOG_MOST)
|
||||
for(var/atom/movable/AM in src)
|
||||
qdel(AM)
|
||||
explosion(get_turf(src), 0, 1, 5, 5)
|
||||
explosion(get_turf(src), 0, 1, 5, 5, cause = "Tamper-proof secure crate")
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/closet/crate/secure/can_open()
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
M.gib()
|
||||
for(var/obj/mecha/E in range(30, T))
|
||||
E.take_damage(E.max_integrity)
|
||||
explosion(get_turf(src), 25, 35, 45, 55, 1, 1, 60, 0)
|
||||
explosion(get_turf(src), 25, 35, 45, 55, 1, 1, 60, 0, cause = "Depot Explosion")
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
/obj/machinery/grey_autocloner/proc/messy_explode()
|
||||
if(occupant)
|
||||
occupant.forceMove(get_turf(src))
|
||||
explosion(get_turf(src), 1, 2, 4, flame_range = 2)
|
||||
explosion(get_turf(src), 1, 2, 4, flame_range = 2, cause = "Grey Autocloner Self-destruct")
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/grey_autocloner/deconstruct(disassembled)
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
|
||||
/turf/bullet_act(obj/item/projectile/Proj)
|
||||
if(istype(Proj, /obj/item/projectile/bullet/gyro))
|
||||
explosion(src, -1, 0, 2)
|
||||
explosion(src, -1, 0, 2, cause = "[Proj.type] fired by [key_name(Proj.firer)] (hit turf)")
|
||||
..()
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user