diff --git a/citadel.dme b/citadel.dme
index c129aecc5c7..40922a22986 100644
--- a/citadel.dme
+++ b/citadel.dme
@@ -127,6 +127,7 @@
#include "code\__DEFINES\color\colour_priority.dm"
#include "code\__DEFINES\color\lum.dm"
#include "code\__DEFINES\combat\atom_damage.dm"
+#include "code\__DEFINES\combat\explosions.dm"
#include "code\__DEFINES\controllers\_subsystems.dm"
#include "code\__DEFINES\controllers\dbcore.dm"
#include "code\__DEFINES\controllers\overlays.dm"
@@ -1911,6 +1912,7 @@
#include "code\modules\atmospherics\machinery\pipes\vent.dm"
#include "code\modules\automata\__automata.dm"
#include "code\modules\automata\_wave.dm"
+#include "code\modules\automata\explosion.dm"
#include "code\modules\automata\sonar.dm"
#include "code\modules\awaymissions\bluespaceartillery.dm"
#include "code\modules\awaymissions\corpse.dm"
diff --git a/code/__DEFINES/combat/explosions.dm b/code/__DEFINES/combat/explosions.dm
new file mode 100644
index 00000000000..c0b2b11e061
--- /dev/null
+++ b/code/__DEFINES/combat/explosions.dm
@@ -0,0 +1,33 @@
+//! Global balancing numbers; everything should derive off of these so we can adjust everything at once.
+/// global default multiplier for falloff factor
+#define EXPLOSION_FALLOFF_FACTOR 1
+/// global default multiplier for bypass factor
+#define EXPLOSION_BYPASS_FACTOR 1
+/// global default "nominal" maxcap power; being hit by this is what causes the most severe effects like turfs completely peeling away, people gibbing, etc.
+#define EXPLOSION_CONSTANT_DEVASTATING 1000
+/// global default "nominal" heavy power; being hit by this is what causes things like turfs exploding, people taking immediately lethal damage/devastating damage, etc.
+#define EXPLOSION_CONSTANT_SEVERE (EXPLOSION_CONSTANT_DEVASTATING * 0.5)
+/// global default "nominal" minor power; being hit by this is what causes minor wounds
+#define EXPLOSION_CONSTANT_MINOR (EXPLOSION_CONSTANT_DEVASTATING * 0.25)
+/// below this explosions are considered so trivial we just drop the wave
+#define EXPLOSION_CONSTANT_DROPPED 50
+
+//? Rest of defines will come when we fully implement new explosions.
+
+//! legacy shims
+#define LEGACY_EXPLOSION_DEVASTATE_POWER EXPLOSION_CONSTANT_DEVASTATING
+#define LEGACY_EXPLOSION_SEVERE_POWER EXPLOSION_CONSTANT_SEVERE
+#define LEGACY_EXPLOSION_MINOR_POWER EXPLOSION_CONSTANT_MINOR
+
+// why the extra numbers? so if someone does weird math we don't out of bounds
+GLOBAL_REAL(_legacy_expowers, /list) = list(
+ LEGACY_EXPLOSION_DEVASTATE_POWER,
+ LEGACY_EXPLOSION_SEVERE_POWER,
+ LEGACY_EXPLOSION_MINOR_POWER,
+ 0,
+ 0,
+ 0
+)
+
+// this works out becuase epxlosions are 1-3 in legacy, so we can just use it as list indices
+#define LEGACY_EX_ACT(ATOM, POWER, TARGET) ATOM.legacy_ex_act(POWER, TARGET); ATOM.ex_act(_legacy_expowers[POWER]);
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm
index 2630f05d6ee..e1c18b7cedf 100644
--- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm
@@ -5,8 +5,10 @@
*/
//! ## /x_act Signals.
-/// From the [EX_ACT] wrapper macro: (severity, target)
-////#define COMSIG_ATOM_EX_ACT "atom_ex_act"
+/// from base of atom/ex_act: (power, dir, wave datum)
+#define COMSIG_ATOM_EX_ACT "atom_ex_act"
+/// From the [LEGACY_EX_ACT] wrapper macro: (severity, target)
+////#define COMSIG_ATOM_LEGACY_EX_ACT "atom_legacy_ex_act"
/// From base of atom/emp_act(): (severity)
////#define COMSIG_ATOM_EMP_ACT "atom_emp_act"
/// From base of atom/fire_act(): (exposed_temperature, exposed_volume)
diff --git a/code/datums/beam.dm b/code/datums/beam.dm
index 7f569057167..4c5eb11d29d 100644
--- a/code/datums/beam.dm
+++ b/code/datums/beam.dm
@@ -141,7 +141,7 @@
if(A.is_incorporeal())
return
..()
- A.ex_act(1)
+ LEGACY_EX_ACT(A, 1, null)
// 'Reactive' beam parts do something when touched or stood in.
/obj/effect/ebeam/reactive
diff --git a/code/game/atoms/atoms.dm b/code/game/atoms/atoms.dm
index 19b1cdbc7f7..b38373dea61 100644
--- a/code/game/atoms/atoms.dm
+++ b/code/game/atoms/atoms.dm
@@ -535,9 +535,30 @@
* The wrapper takes care of the [COMSIG_ATOM_EX_ACT] signal.
* as well as calling [/atom/proc/contents_explosion].
*/
-/atom/proc/ex_act(severity, target)
+/atom/proc/legacy_ex_act(severity, target)
set waitfor = FALSE
+/**
+ * todo: implement on most atoms/generic damage system
+ * todo: replace legacy_ex_act entirely with this
+ *
+ * React to being hit by an explosive shockwave
+ *
+ * ? Tip for overrides: . = ..() when you want signal to be sent, mdify power before if you need to; to ignore parent
+ * ? block power, just `return power` in your proc after . = ..().
+ *
+ * @params
+ * - power - power our turf was hit with
+ * - direction - DIR_BIT bits; can bwe null if it wasn't a wave explosion!!
+ * - explosion - explosion automata datum; can be null
+ *
+ * @return power after falloff (e.g. hit with 30 power, return 20 to apply 10 falloff)
+ */
+/atom/proc/ex_act(power, dir, datum/automata/wave/explosion/E)
+ SHOULD_CALL_PARENT(TRUE)
+ SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, power, dir, E)
+ return power
+
/atom/proc/emag_act(var/remaining_charges, var/mob/user, var/emag_source)
return -1
diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm
index 000e505a654..ebc26ef14f6 100644
--- a/code/game/dna/dna_modifier.dm
+++ b/code/game/dna/dna_modifier.dm
@@ -197,12 +197,12 @@
occupant = null
icon_state = "scanner_0"
-/obj/machinery/dna_scannernew/ex_act(severity)
+/obj/machinery/dna_scannernew/legacy_ex_act(severity)
switch(severity)
if(1.0)
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
- ex_act(severity)
+ legacy_ex_act(severity)
//Foreach goto(35)
//SN src = null
qdel(src)
@@ -211,7 +211,7 @@
if (prob(50))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
- ex_act(severity)
+ legacy_ex_act(severity)
//Foreach goto(108)
//SN src = null
qdel(src)
@@ -220,7 +220,7 @@
if (prob(25))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
- ex_act(severity)
+ legacy_ex_act(severity)
//Foreach goto(181)
//SN src = null
qdel(src)
@@ -268,7 +268,7 @@
..()
return
-/obj/machinery/computer/scan_consolenew/ex_act(severity)
+/obj/machinery/computer/scan_consolenew/legacy_ex_act(severity)
switch(severity)
if(1.0)
diff --git a/code/game/gamemodes/cult/hell_universe.dm b/code/game/gamemodes/cult/hell_universe.dm
index 75e88bca88f..2534ccdef88 100644
--- a/code/game/gamemodes/cult/hell_universe.dm
+++ b/code/game/gamemodes/cult/hell_universe.dm
@@ -65,7 +65,7 @@ In short:
for (var/obj/machinery/firealarm/alm in GLOB.machines)
if (!(alm.machine_stat & BROKEN))
- alm.ex_act(2)
+ LEGACY_EX_ACT(alm, 2, null)
/datum/universal_state/hell/proc/APCSet()
for (var/obj/machinery/power/apc/APC in GLOB.apcs)
diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm
index 75e902012dc..81a68b3e865 100644
--- a/code/game/gamemodes/cult/narsie.dm
+++ b/code/game/gamemodes/cult/narsie.dm
@@ -269,7 +269,7 @@ var/global/list/narsie_list = list()
var/turf/T2 = A
T2.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
-/obj/singularity/narsie/ex_act(severity) //No throwing bombs at it either. --NEO
+/obj/singularity/narsie/legacy_ex_act(severity) //No throwing bombs at it either. --NEO
return
/obj/singularity/narsie/proc/pickcultist() //Narsie rewards his cultists with being devoured first, then picks a ghost to follow. --NEO
diff --git a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
index ff81a654b95..acc7ca5fd6c 100644
--- a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
+++ b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
@@ -96,7 +96,7 @@ The access requirements on the Asteroid Shuttles' consoles have now been revoked
/datum/universal_state/supermatter_cascade/proc/MiscSet()
for (var/obj/machinery/firealarm/alm in GLOB.machines)
if (!(alm.machine_stat & BROKEN))
- alm.ex_act(2)
+ LEGACY_EX_ACT(alm, 2, null)
/datum/universal_state/supermatter_cascade/proc/APCSet()
for (var/obj/machinery/power/apc/APC in GLOB.apcs)
diff --git a/code/game/gamemodes/events/black_hole.dm b/code/game/gamemodes/events/black_hole.dm
index 2e6121bd63c..4af0d958b03 100644
--- a/code/game/gamemodes/events/black_hole.dm
+++ b/code/game/gamemodes/events/black_hole.dm
@@ -71,11 +71,11 @@
var/turf/T = locate(x, y, z)
if(isnull(T)) return
- //Pulling and/or ex_act-ing movable atoms in that turf
+ //Pulling and/or legacy_ex_act-ing movable atoms in that turf
if( prob(pull_chance) )
for(var/obj/O in T.contents)
if(O.anchored)
- O.ex_act(ex_act_force)
+ LEGACY_EX_ACT(O, ex_act_force, null)
else
step_towards(O,src)
for(var/mob/living/M in T.contents)
diff --git a/code/game/gamemodes/events/clang.dm b/code/game/gamemodes/events/clang.dm
index 3d8a1865a00..f2cc5c578d5 100644
--- a/code/game/gamemodes/events/clang.dm
+++ b/code/game/gamemodes/events/clang.dm
@@ -1,7 +1,7 @@
/*
Immovable rod random event.
The rod will spawn at some location outside the station, and travel in a straight line to the opposite side of the station
-Everything solid in the way will be ex_act()'d
+Everything solid in the way will be legacy_ex_act()'d
In my current plan for it, 'solid' will be defined as anything with density == 1
--NEOFite
@@ -22,19 +22,19 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
else if (istype(clong, /turf) && !istype(clong, /turf/unsimulated))
if(clong.density)
- clong.ex_act(2)
+ LEGACY_EX_ACT(clong, 2, null)
for (var/mob/O in hearers(src, null))
O.show_message("CLANG", 2)
else if (istype(clong, /obj))
if(clong.density)
- clong.ex_act(2)
+ LEGACY_EX_ACT(clong, 2, null)
for (var/mob/O in hearers(src, null))
O.show_message("CLANG", 2)
else if (istype(clong, /mob))
if(clong.density || prob(10))
- clong.ex_act(2)
+ LEGACY_EX_ACT(clong, 2, null)
else
qdel(src)
diff --git a/code/game/gamemodes/events/dust.dm b/code/game/gamemodes/events/dust.dm
index 7b847f92762..9f19ae735ba 100644
--- a/code/game/gamemodes/events/dust.dm
+++ b/code/game/gamemodes/events/dust.dm
@@ -65,7 +65,7 @@ The "dust" will damage the hull of the station causin minor hull breaches.
icon_state = "space_dust"
density = 1
anchored = 1
- var/strength = 2 // ex_act severity number
+ var/strength = 2 // legacy_ex_act severity number
var/life = 2 // How many things we hit before qdel(src)
/obj/effect/space_dust/weak
@@ -100,9 +100,9 @@ The "dust" will damage the hull of the station causin minor hull breaches.
playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1)
if(ismob(A))
- A.ex_act(strength) // This should work for now I guess
+ LEGACY_EX_ACT(A, strength, null) // This should work for now I guess
else if(!istype(A,/obj/machinery/power/emitter) && !istype(A,/obj/machinery/field_generator)) // Protect the singularity from getting released every round!
- A.ex_act(strength) // Changing emitter/field gen ex_act would make it immune to bombs and C4
+ LEGACY_EX_ACT(A, strength, null) // Changing emitter/field gen legacy_ex_act would make it immune to bombs and C4
life--
if(life <= 0)
@@ -114,6 +114,6 @@ The "dust" will damage the hull of the station causin minor hull breaches.
hit(A)
return
-/obj/effect/space_dust/ex_act(severity)
+/obj/effect/space_dust/legacy_ex_act(severity)
qdel(src)
return
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index 0f7f5b8729e..d23dc861723 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -93,7 +93,7 @@
density = 1
anchored = 1
var/hits = 4
- var/hitpwr = 2 //Level of ex_act to be called on hit.
+ var/hitpwr = 2 //Level of legacy_ex_act to be called on hit.
var/dest
pass_flags = ATOM_PASS_TABLE
var/heavy = 0
@@ -156,7 +156,7 @@
continue
if(isturf(A)) // Don't hit floors. We'll deal with walls later.
continue
- A.ex_act(hitpwr)
+ LEGACY_EX_ACT(A, hitpwr, null)
//then, ram the turf if it still exists
if(T)
@@ -179,7 +179,7 @@
meteor_effect(explode)
qdel(src)
-/obj/effect/meteor/ex_act()
+/obj/effect/meteor/legacy_ex_act()
return
/obj/effect/meteor/attackby(obj/item/W as obj, mob/user as mob, params)
diff --git a/code/game/gamemodes/technomancer/spells/phase_shift.dm b/code/game/gamemodes/technomancer/spells/phase_shift.dm
index 78a13d06de7..7920f3816c2 100644
--- a/code/game/gamemodes/technomancer/spells/phase_shift.dm
+++ b/code/game/gamemodes/technomancer/spells/phase_shift.dm
@@ -25,7 +25,7 @@
icon = 'icons/effects/effects.dmi'
icon_state = "rift"
-/obj/effect/phase_shift/ex_act()
+/obj/effect/phase_shift/legacy_ex_act()
return
/obj/effect/phase_shift/Initialize(mapload)
diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm
index f947f50e8ad..73443740e40 100644
--- a/code/game/machinery/OpTable.dm
+++ b/code/game/machinery/OpTable.dm
@@ -30,7 +30,7 @@
// spawn(100) //Wont the MC just call this process() before and at the 10 second mark anyway?
// process()
-/obj/machinery/optable/ex_act(severity)
+/obj/machinery/optable/legacy_ex_act(severity)
switch(severity)
if(1.0)
//SN src = null
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index de6aafe3936..c612d6af9e0 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -192,7 +192,7 @@
qdel(pulse2)
..()
-/obj/machinery/ex_act(severity)
+/obj/machinery/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 8f2ef6fe876..6d935d291ff 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -128,12 +128,12 @@
update_icon() //Health display for consoles with light and such.
return
-/obj/machinery/bodyscanner/ex_act(severity)
+/obj/machinery/bodyscanner/legacy_ex_act(severity)
switch(severity)
if(1.0)
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
- ex_act(severity)
+ legacy_ex_act(severity)
//Foreach goto(35)
//SN src = null
qdel(src)
@@ -142,7 +142,7 @@
if (prob(50))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
- ex_act(severity)
+ legacy_ex_act(severity)
//Foreach goto(108)
//SN src = null
qdel(src)
@@ -151,7 +151,7 @@
if (prob(25))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
- ex_act(severity)
+ legacy_ex_act(severity)
//Foreach goto(181)
//SN src = null
qdel(src)
@@ -210,7 +210,7 @@
/obj/machinery/body_scanconsole/power_change()
update_icon() //Health display for consoles with light and such.
-/obj/machinery/body_scanconsole/ex_act(severity)
+/obj/machinery/body_scanconsole/legacy_ex_act(severity)
switch(severity)
if(1.0)
//SN src = null
diff --git a/code/game/machinery/atm_ret_field.dm b/code/game/machinery/atm_ret_field.dm
index b9bc61c678e..433d771043c 100644
--- a/code/game/machinery/atm_ret_field.dm
+++ b/code/game/machinery/atm_ret_field.dm
@@ -116,7 +116,7 @@
spawn(rand(reboot_delay_min,reboot_delay_max))
generate_field()
-/obj/machinery/atmospheric_field_generator/ex_act(severity)
+/obj/machinery/atmospheric_field_generator/legacy_ex_act(severity)
switch(severity)
if(1)
disable_field()
@@ -224,7 +224,7 @@
else
visible_message("You try to touch the retention field, but pass through it like it isn't even there.")
-/obj/structure/atmospheric_retention_field/ex_act()
+/obj/structure/atmospheric_retention_field/legacy_ex_act()
return
/obj/structure/atmospheric_retention_field/impassable
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 2d9d7fff705..0d6960bc7e0 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -101,7 +101,7 @@
/obj/machinery/camera/bullet_act(var/obj/item/projectile/P)
take_damage(P.get_structure_damage())
-/obj/machinery/camera/ex_act(severity)
+/obj/machinery/camera/legacy_ex_act(severity)
if(src.invuln)
return
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index fffd1e0099b..2eb74bc73fa 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -421,26 +421,26 @@
malfunction()
..()
-/obj/machinery/clonepod/ex_act(severity)
+/obj/machinery/clonepod/legacy_ex_act(severity)
switch(severity)
if(1.0)
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
- ex_act(severity)
+ legacy_ex_act(severity)
qdel(src)
return
if(2.0)
if(prob(50))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
- ex_act(severity)
+ legacy_ex_act(severity)
qdel(src)
return
if(3.0)
if(prob(25))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
- ex_act(severity)
+ legacy_ex_act(severity)
qdel(src)
return
else
diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm
index e2dd968faf1..2b893814996 100644
--- a/code/game/machinery/computer/computer.dm
+++ b/code/game/machinery/computer/computer.dm
@@ -34,7 +34,7 @@
..()
-/obj/machinery/computer/ex_act(severity)
+/obj/machinery/computer/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
@@ -61,7 +61,7 @@
..()
/obj/machinery/computer/blob_act()
- ex_act(2)
+ legacy_ex_act(2)
/obj/machinery/computer/update_icon()
cut_overlays()
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index d587ad93ed3..f6db8d219d9 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -94,7 +94,7 @@ Barricades
qdel(src)
return
-/obj/structure/barricade/ex_act(severity)
+/obj/structure/barricade/legacy_ex_act(severity)
switch(severity)
if(1.0)
dismantle()
@@ -192,7 +192,7 @@ Barricades
CheckHealth()
return
-/obj/machinery/deployable/barrier/ex_act(severity)
+/obj/machinery/deployable/barrier/legacy_ex_act(severity)
switch(severity)
if(1.0)
explode()
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 6cfbe01e387..5a1efdd4df9 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1244,7 +1244,7 @@ About the new airlock wires panel:
for(var/turf/turf in locs)
var/obj/structure/window/killthis = (locate(/obj/structure/window) in turf)
if(killthis)
- killthis.ex_act(2)//Smashin windows
+ LEGACY_EX_ACT(killthis, 2, null)//Smashin windows
return ..()
/obj/machinery/door/airlock/can_open(var/forced=0)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 9b814d4ac5b..6e2333b72c5 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -351,7 +351,7 @@
..()
-/obj/machinery/door/ex_act(severity)
+/obj/machinery/door/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/machinery/event.dm b/code/game/machinery/event.dm
index f2fcac873e6..60c31caf6ac 100644
--- a/code/game/machinery/event.dm
+++ b/code/game/machinery/event.dm
@@ -46,7 +46,7 @@ The goal here is to create esoteric or niche, specialized machines that follow t
RefreshParts()
-/obj/machinery/magma_pump/ex_act(severity)
+/obj/machinery/magma_pump/legacy_ex_act(severity)
switch(severity)
if(1)
//SN src = null
@@ -192,7 +192,7 @@ The goal here is to create esoteric or niche, specialized machines that follow t
RefreshParts()
-/obj/machinery/magma_reservoir/ex_act(severity)
+/obj/machinery/magma_reservoir/legacy_ex_act(severity)
switch(severity)
if(1)
//SN src = null
diff --git a/code/game/machinery/floor_light.dm b/code/game/machinery/floor_light.dm
index eb8a3663bed..f6706ae81a0 100644
--- a/code/game/machinery/floor_light.dm
+++ b/code/game/machinery/floor_light.dm
@@ -143,7 +143,7 @@ var/list/floor_light_cache = list()
/obj/machinery/floor_light/proc/broken()
return (machine_stat & (BROKEN|NOPOWER))
-/obj/machinery/floor_light/ex_act(severity)
+/obj/machinery/floor_light/legacy_ex_act(severity)
switch(severity)
if(1)
qdel(src)
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index bac59e3c262..c814bfedfde 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -192,7 +192,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
active_power_usage = 100
//Destruction procs.
-/obj/machinery/hologram/ex_act(severity)
+/obj/machinery/hologram/legacy_ex_act(severity)
switch(severity)
if(1)
qdel(src)
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index be5187d5df3..85882122f0a 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -231,7 +231,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
ispowered = FALSE
update_icon()
-/obj/machinery/newscaster/ex_act(severity)
+/obj/machinery/newscaster/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm
index aa7ee8e2649..4f17a21311d 100644
--- a/code/game/machinery/nuclear_bomb.dm
+++ b/code/game/machinery/nuclear_bomb.dm
@@ -357,7 +357,7 @@ var/bomb_set
return
-/obj/machinery/nuclearbomb/ex_act(severity)
+/obj/machinery/nuclearbomb/legacy_ex_act(severity)
return
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 0ff63945500..07eebc38bc8 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -701,7 +701,7 @@
if(!enabled)
enabled = TRUE
-/obj/machinery/porta_turret/ex_act(severity)
+/obj/machinery/porta_turret/legacy_ex_act(severity)
switch (severity)
if(1)
qdel(src)
diff --git a/code/game/machinery/suit_storage/suit_storage_massive.dm b/code/game/machinery/suit_storage/suit_storage_massive.dm
index 1d112846dd1..950a825f1ab 100644
--- a/code/game/machinery/suit_storage/suit_storage_massive.dm
+++ b/code/game/machinery/suit_storage/suit_storage_massive.dm
@@ -54,7 +54,7 @@
ispowered = 0
//Todo: add lockdown
-/obj/machinery/suit_storage_closet/ex_act(severity)
+/obj/machinery/suit_storage_closet/legacy_ex_act(severity)
switch(severity)
if(1.0)
if(prob(50))
diff --git a/code/game/machinery/suit_storage/suit_storage_unit.dm b/code/game/machinery/suit_storage/suit_storage_unit.dm
index e109bd198e9..08189cee1de 100644
--- a/code/game/machinery/suit_storage/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage/suit_storage_unit.dm
@@ -67,7 +67,7 @@
dump_everything()
update_icon()
-/obj/machinery/suit_storage_unit/ex_act(severity)
+/obj/machinery/suit_storage_unit/legacy_ex_act(severity)
switch(severity)
if(1.0)
if(prob(50))
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 11956521b5d..47cd370ebbd 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -143,7 +143,7 @@
product_records = null
return ..()
-/obj/machinery/vending/ex_act(severity)
+/obj/machinery/vending/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/mecha/equipment/tools/drill.dm b/code/game/mecha/equipment/tools/drill.dm
index 10540a86927..d77d66669c2 100644
--- a/code/game/mecha/equipment/tools/drill.dm
+++ b/code/game/mecha/equipment/tools/drill.dm
@@ -29,10 +29,10 @@
else if((W.reinf_material && advanced) || do_after_cooldown(target))//R wall with good drill
log_message("Drilled through [target]")
- target.ex_act(3)
+ LEGACY_EX_ACT(target, 3, null)
else
log_message("Drilled through [target]")
- target.ex_act(2)
+ LEGACY_EX_ACT(target, 2, null)
else if(istype(target, /turf/simulated/mineral))
if(enable_special)
@@ -54,7 +54,7 @@
return 1
else if(target.loc == C)
log_message("Drilled through [target]")
- target.ex_act(2)
+ LEGACY_EX_ACT(target, 2, null)
return 1
/obj/item/mecha_parts/mecha_equipment/tool/drill/proc/drill_mob(mob/living/target, mob/user)
@@ -114,11 +114,11 @@
occupant_message("[target] is too durable to bore through.")
else
log_message("Bored through [target]")
- target.ex_act(2)
+ LEGACY_EX_ACT(target, 2, null)
else if(istype(target, /turf/simulated/mineral))
var/turf/simulated/mineral/M = target
if(enable_special && !M.density)
- M.ex_act(2)
+ LEGACY_EX_ACT(M, 2, null)
log_message("Bored into [target]")
else
M.GetDrilled()
@@ -131,5 +131,5 @@
ore.forceMove(ore_box)
else if(target.loc == C)
log_message("Drilled through [target]")
- target.ex_act(2)
+ LEGACY_EX_ACT(target, 2, null)
return 1
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 464b83617e0..046435c69d0 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -51,7 +51,7 @@
var/health = 300
/// Maxhealth is maxhealth.
var/maxhealth = 300
- /// Chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act.
+ /// Chance to deflect the incoming projectiles, hits, or lesser the effect of legacy_ex_act.
var/deflect_chance = 10
/// The values in this list show how much damage will pass through, not how much will be absorbed.
var/list/damage_absorption = list(
@@ -1231,7 +1231,7 @@
return
//This refer to whenever you are caught in an explosion.
-/obj/mecha/ex_act(severity)
+/obj/mecha/legacy_ex_act(severity)
var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
var/temp_deflect_chance = deflect_chance
diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm
index eea656db403..759f15c605b 100644
--- a/code/game/mecha/mecha_control_console.dm
+++ b/code/game/mecha/mecha_control_console.dm
@@ -105,7 +105,7 @@
qdel(src)
return
-/obj/item/mecha_parts/mecha_tracking/ex_act()
+/obj/item/mecha_parts/mecha_tracking/legacy_ex_act()
qdel(src)
return
diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm
index eb80640de98..b7c07dd6266 100644
--- a/code/game/mecha/mecha_wreckage.dm
+++ b/code/game/mecha/mecha_wreckage.dm
@@ -20,7 +20,7 @@
crowbar_salvage = new
return
-/obj/effect/decal/mecha_wreckage/ex_act(severity)
+/obj/effect/decal/mecha_wreckage/legacy_ex_act(severity)
if(severity < 2)
spawn
qdel(src)
diff --git a/code/game/mecha/micro/micro_equipment.dm b/code/game/mecha/micro/micro_equipment.dm
index de5b431afe0..a45116f29ab 100644
--- a/code/game/mecha/micro/micro_equipment.dm
+++ b/code/game/mecha/micro/micro_equipment.dm
@@ -133,7 +133,7 @@
occupant_message("[target] is too durable to drill through.")
else
log_message("Drilled through [target]")
- target.ex_act(2)
+ LEGACY_EX_ACT(target, 2, null)
else if(istype(target, /turf/simulated/mineral))
for(var/turf/simulated/mineral/M in range(chassis,1))
if(get_dir(chassis,M)&chassis.dir)
@@ -150,7 +150,7 @@
ore.forceMove(ore_box)
else if(target.loc == C)
log_message("Drilled through [target]")
- target.ex_act(2)
+ LEGACY_EX_ACT(target, 2, null)
return 1
diff --git a/code/game/objects/_items.dm b/code/game/objects/_items.dm
index 16b6ef86ba6..96f1bc1b407 100644
--- a/code/game/objects/_items.dm
+++ b/code/game/objects/_items.dm
@@ -161,7 +161,7 @@
else if(M.r_hand == src)
M.update_inv_r_hand()
-/obj/item/ex_act(severity)
+/obj/item/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/effects/_effect.dm b/code/game/objects/effects/_effect.dm
index 93fc0fd1b36..4dff1fee007 100644
--- a/code/game/objects/effects/_effect.dm
+++ b/code/game/objects/effects/_effect.dm
@@ -32,7 +32,7 @@
/obj/effect/blob_act(obj/structure/blob/B)
return
-/obj/effect/ex_act(severity, target)
+/obj/effect/legacy_ex_act(severity, target)
return FALSE
/obj/effect/singularity_act()
diff --git a/code/game/objects/effects/alien/aliens.dm b/code/game/objects/effects/alien/aliens.dm
index b802cf9d6cd..66b987e08b0 100644
--- a/code/game/objects/effects/alien/aliens.dm
+++ b/code/game/objects/effects/alien/aliens.dm
@@ -77,7 +77,7 @@
healthcheck()
return
-/obj/effect/alien/resin/ex_act(severity)
+/obj/effect/alien/resin/legacy_ex_act(severity)
switch(severity)
if(1.0)
health-=50
@@ -307,7 +307,7 @@ Alien plants should do something if theres a lot of poison
W.process()
-/obj/effect/alien/weeds/ex_act(severity)
+/obj/effect/alien/weeds/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/effects/chem/foam.dm b/code/game/objects/effects/chem/foam.dm
index a2f2d80d3aa..cc5fa0a57a4 100644
--- a/code/game/objects/effects/chem/foam.dm
+++ b/code/game/objects/effects/chem/foam.dm
@@ -160,7 +160,7 @@
else
icon_state = "ironfoam"
-/obj/structure/foamedmetal/ex_act(severity)
+/obj/structure/foamedmetal/legacy_ex_act(severity)
qdel(src)
/obj/structure/foamedmetal/bullet_act(var/obj/item/projectile/P)
diff --git a/code/game/objects/effects/map_effects/map_effects.dm b/code/game/objects/effects/map_effects/map_effects.dm
index a2c9e41954f..9c64476a29b 100644
--- a/code/game/objects/effects/map_effects/map_effects.dm
+++ b/code/game/objects/effects/map_effects/map_effects.dm
@@ -12,7 +12,7 @@
var/ignore_afk = TRUE // If true, AFK people (5 minutes) won't satisfy it as well.
var/retry_delay = 3 SECONDS // How long until we check for players again.
-/obj/effect/map_effect/ex_act()
+/obj/effect/map_effect/legacy_ex_act()
return
/obj/effect/map_effect/singularity_pull()
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index 21c5c8e0b0a..3f42dcd0ffc 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -31,7 +31,7 @@
if(prob(50))
explode()
-/obj/effect/mine/ex_act(severity)
+/obj/effect/mine/legacy_ex_act(severity)
if(severity <= 2 || prob(50))
explode()
..()
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index 83b25591ac4..5ff2d0dd14a 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -8,7 +8,7 @@
var/health = 15
//similar to weeds, but only barfed out by nurses manually
-/obj/effect/spider/ex_act(severity)
+/obj/effect/spider/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/effects/temporary_visuals/temporary_visual.dm b/code/game/objects/effects/temporary_visuals/temporary_visual.dm
index 63ebb4f17bf..a240a3b5998 100644
--- a/code/game/objects/effects/temporary_visuals/temporary_visual.dm
+++ b/code/game/objects/effects/temporary_visuals/temporary_visual.dm
@@ -25,7 +25,7 @@
/obj/effect/temp_visual/singularity_pull()
return
-/obj/effect/temp_visual/ex_act()
+/obj/effect/temp_visual/legacy_ex_act()
return
/obj/effect/temp_visual/dir_setting
diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm
index 36ba0348fa3..b7b88447101 100644
--- a/code/game/objects/explosion.dm
+++ b/code/game/objects/explosion.dm
@@ -100,9 +100,9 @@
for(var/atom/movable/AM as anything in T.contents) //bypass type checking since only atom/movable can be contained by turfs anyway
if(AM.flags & ATOM_ABSTRACT)
continue
- AM.ex_act(dist)
+ LEGACY_EX_ACT(AM, dist, null)
- T.ex_act(dist)
+ LEGACY_EX_ACT(T, dist, null)
var/took = (world.timeofday-start)/10
//You need to press the DebugGame verb to see these now....they were getting annoying and we've collected a fair bit of data. Just -test- changes to explosion code using this please so we can compare
@@ -123,4 +123,4 @@
/proc/secondaryexplosion(turf/epicenter, range)
for(var/turf/tile in range(range, epicenter))
- tile.ex_act(2)
+ LEGACY_EX_ACT(tile, 2, null)
diff --git a/code/game/objects/explosion_recursive.dm b/code/game/objects/explosion_recursive.dm
index 7304c48cfd4..bdd6018dc1c 100644
--- a/code/game/objects/explosion_recursive.dm
+++ b/code/game/objects/explosion_recursive.dm
@@ -35,12 +35,12 @@ var/explosion_in_progress = 0
explosion_turfs[epicenter] = power
- //This steap handles the gathering of turfs which will be ex_act() -ed in the next step. It also ensures each turf gets the maximum possible amount of power dealt to it.
+ //This steap handles the gathering of turfs which will be legacy_ex_act() -ed in the next step. It also ensures each turf gets the maximum possible amount of power dealt to it.
for(var/direction in GLOB.cardinal)
var/turf/T = get_step(epicenter, direction)
T.explosion_spread(power - epicenter.explosion_resistance, direction)
- //This step applies the ex_act effects for the explosion, as planned in the previous step.
+ //This step applies the legacy_ex_act effects for the explosion, as planned in the previous step.
for(var/turf/T in explosion_turfs)
if(explosion_turfs[T] <= 0) continue
if(!T) continue
@@ -52,11 +52,11 @@ var/explosion_in_progress = 0
var/x = T.x
var/y = T.y
var/z = T.z
- T.ex_act(severity)
+ LEGACY_EX_ACT(T, severity, null)
if(!T)
T = locate(x,y,z)
for(var/atom/A in T)
- A.ex_act(severity)
+ LEGACY_EX_ACT(A, severity, null)
explosion_in_progress = 0
diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index 31007817e11..793f23044f8 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -112,7 +112,7 @@
to_chat(M, "Your chameleon-projector deactivates.")
master.disrupt()
-/obj/effect/dummy/chameleon/ex_act()
+/obj/effect/dummy/chameleon/legacy_ex_act()
for(var/mob/M in src)
to_chat(M, "Your chameleon-projector deactivates.")
master.disrupt()
diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index 2cb96701da9..430541703be 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -319,9 +319,9 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
for(var/mob/M in src)
M.emp_act(severity)
-/obj/item/paicard/ex_act(severity)
+/obj/item/paicard/legacy_ex_act(severity)
if(pai)
- pai.ex_act(severity)
+ LEGACY_EX_ACT(pai, severity, null)
else
qdel(src)
diff --git a/code/game/objects/items/falling_object.dm b/code/game/objects/items/falling_object.dm
index ea1d44f754e..08cb356c1e9 100644
--- a/code/game/objects/items/falling_object.dm
+++ b/code/game/objects/items/falling_object.dm
@@ -28,7 +28,7 @@
if(crushing)
for(var/atom/movable/AM in loc)
if(AM != src)
- AM.ex_act(1)
+ LEGACY_EX_ACT(AM, 1, null)
explosion(src.loc, 0, 0, 1, 1, 0)
for(var/mob/living/M in oviewers(3, src))
@@ -45,5 +45,5 @@
/obj/effect/falling_effect/singularity_pull()
return
-/obj/effect/falling_effect/ex_act()
+/obj/effect/falling_effect/legacy_ex_act()
return
diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm
index 0471a24419a..14a989e1730 100644
--- a/code/game/objects/items/latexballoon.dm
+++ b/code/game/objects/items/latexballoon.dm
@@ -30,7 +30,7 @@
item_state = "lgloves"
loc.assume_air(air_contents)
-/obj/item/latexballon/ex_act(severity)
+/obj/item/latexballon/legacy_ex_act(severity)
burst()
switch(severity)
if (1)
diff --git a/code/game/objects/items/stacks/sandbag.dm b/code/game/objects/items/stacks/sandbag.dm
index 73d2efa4380..7d2f0d3b6b9 100644
--- a/code/game/objects/items/stacks/sandbag.dm
+++ b/code/game/objects/items/stacks/sandbag.dm
@@ -197,7 +197,7 @@ var/global/list/datum/stack_recipe/sandbags_recipes = list( \
//Make it drop materials? I dunno. For now it just disappears.
return
-/obj/structure/sandbag/ex_act(severity)
+/obj/structure/sandbag/legacy_ex_act(severity)
switch(severity)
if(1.0)
dismantle()
diff --git a/code/game/objects/items/uav.dm b/code/game/objects/items/uav.dm
index e861ecf4ed2..4e2be5d503f 100644
--- a/code/game/objects/items/uav.dm
+++ b/code/game/objects/items/uav.dm
@@ -336,7 +336,7 @@
CheckHealth()
return
-/obj/item/uav/ex_act(severity)
+/obj/item/uav/legacy_ex_act(severity)
switch(severity)
if(1.0)
die()
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index 4b60360c710..ba0ebf5e5ea 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -83,9 +83,9 @@
var/turf/simulated/wall/W = target
W.dismantle_wall(1,1,1)
else if(istype(target, /mob/living))
- target.ex_act(2) // c4 can't gib mobs anymore.
+ LEGACY_EX_ACT(target, 2, null) // c4 can't gib mobs anymore.
else
- target.ex_act(1)
+ LEGACY_EX_ACT(target, 1, null)
if(target)
target.overlays -= image_overlay
qdel(src)
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index 3c690829723..f16800530c4 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -33,7 +33,7 @@
else
to_chat(user, "The gift was empty!")
-/obj/item/a_gift/ex_act()
+/obj/item/a_gift/legacy_ex_act()
qdel(src)
/obj/effect/spresent/relaymove(mob/user as mob)
@@ -131,7 +131,7 @@
to_chat(user, "The pumpkin was empty!")
qdel(src)
-/obj/item/b_gift/ex_act()
+/obj/item/b_gift/legacy_ex_act()
qdel(src)
/obj/item/b_gift/attack_self(mob/M as mob)
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index b0efe0bfca7..d3e78d19014 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -32,7 +32,7 @@
/obj/structure/attack_tk()
return
-/obj/structure/ex_act(severity)
+/obj/structure/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm
index 6fae587d87b..f30b0eb6e4a 100644
--- a/code/game/objects/structures/catwalk.dm
+++ b/code/game/objects/structures/catwalk.dm
@@ -61,7 +61,7 @@
icon_state = "catwalk[connectdir]-[diagonalconnect]"
-/obj/structure/catwalk/ex_act(severity)
+/obj/structure/catwalk/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index e8c94ed5c6c..34abb760a73 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -216,18 +216,18 @@
update_icon()
// this should probably use dump_contents()
-/obj/structure/closet/ex_act(severity)
+/obj/structure/closet/legacy_ex_act(severity)
switch(severity)
if(1)
for(var/atom/movable/A as mob|obj in src)//pulls everything out of the locker and hits it with an explosion
A.forceMove(src.loc)
- A.ex_act(severity + 1)
+ LEGACY_EX_ACT(A, severity + 1, null)
qdel(src)
if(2)
if(prob(50))
for (var/atom/movable/A as mob|obj in src)
A.forceMove(src.loc)
- A.ex_act(severity + 1)
+ LEGACY_EX_ACT(A, severity + 1, null)
qdel(src)
if(3)
if(prob(5))
diff --git a/code/game/objects/structures/crates_lockers/closets/statue.dm b/code/game/objects/structures/crates_lockers/closets/statue.dm
index d7aab70c120..f7a6cb4ea25 100644
--- a/code/game/objects/structures/crates_lockers/closets/statue.dm
+++ b/code/game/objects/structures/crates_lockers/closets/statue.dm
@@ -92,9 +92,9 @@
for(var/mob/M in src)
shatter(M)
-/obj/structure/closet/statue/ex_act(severity)
+/obj/structure/closet/statue/legacy_ex_act(severity)
for(var/mob/M in src)
- M.ex_act(severity)
+ LEGACY_EX_ACT(M, severity, null)
health -= 60 / severity
check_health()
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 959a10042a2..42271f329b8 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -111,7 +111,7 @@
else return attack_hand(user)
-/obj/structure/closet/crate/ex_act(severity)
+/obj/structure/closet/crate/legacy_ex_act(severity)
switch(severity)
if(1.0)
for(var/obj/O in src.contents)
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index 7f1762e3921..ee5262f9c38 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -10,7 +10,7 @@
var/occupied = 1
var/destroyed = 0
-/obj/structure/displaycase/ex_act(severity)
+/obj/structure/displaycase/legacy_ex_act(severity)
switch(severity)
if (1)
new /obj/item/material/shard( src.loc )
diff --git a/code/game/objects/structures/flora/trees.dm b/code/game/objects/structures/flora/trees.dm
index 70cc393f97a..703e2df4773 100644
--- a/code/game/objects/structures/flora/trees.dm
+++ b/code/game/objects/structures/flora/trees.dm
@@ -118,7 +118,7 @@
overlays.Cut() // For the Sif tree and other future glowy trees.
set_light(0)
-/obj/structure/flora/tree/ex_act(var/severity)
+/obj/structure/flora/tree/legacy_ex_act(var/severity)
adjust_health(-(max_health / severity), TRUE)
/obj/structure/flora/tree/bullet_act(var/obj/item/projectile/Proj)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index c2f4e9a7bb6..8f3478d290a 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -300,7 +300,7 @@
return ..()
-/obj/structure/girder/ex_act(severity)
+/obj/structure/girder/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/structures/gravemarker.dm b/code/game/objects/structures/gravemarker.dm
index f0586495c28..888e8409d14 100644
--- a/code/game/objects/structures/gravemarker.dm
+++ b/code/game/objects/structures/gravemarker.dm
@@ -84,7 +84,7 @@
return
-/obj/structure/gravemarker/ex_act(severity)
+/obj/structure/gravemarker/legacy_ex_act(severity)
switch(severity)
if(1.0)
visible_message("\The [src] is blown apart!")
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 083860281a2..4687095cda2 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -13,7 +13,7 @@
var/destroyed = 0
-/obj/structure/grille/ex_act(severity)
+/obj/structure/grille/legacy_ex_act(severity)
qdel(src)
/obj/structure/grille/update_icon()
diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm
index f03b6709009..31c720d23b5 100644
--- a/code/game/objects/structures/inflatable.dm
+++ b/code/game/objects/structures/inflatable.dm
@@ -53,7 +53,7 @@
puncture()
return
-/obj/structure/inflatable/ex_act(severity)
+/obj/structure/inflatable/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm
index 64de78d01b5..b708c6445f3 100644
--- a/code/game/objects/structures/lattice.dm
+++ b/code/game/objects/structures/lattice.dm
@@ -40,7 +40,7 @@
O.update() // This lattice may be supporting things on top of it. If it's being deleted, they need to fall down.
. = ..()
-/obj/structure/lattice/ex_act(severity)
+/obj/structure/lattice/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index e628672fe3b..982bc1e695f 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -54,26 +54,26 @@
src.icon_state = "morgue1"
return
-/obj/structure/morgue/ex_act(severity)
+/obj/structure/morgue/legacy_ex_act(severity)
switch(severity)
if(1.0)
for(var/atom/movable/A as mob|obj in src)
A.forceMove(src.loc)
- ex_act(severity)
+ legacy_ex_act(severity)
qdel(src)
return
if(2.0)
if (prob(50))
for(var/atom/movable/A as mob|obj in src)
A.forceMove(src.loc)
- ex_act(severity)
+ legacy_ex_act(severity)
qdel(src)
return
if(3.0)
if (prob(5))
for(var/atom/movable/A as mob|obj in src)
A.forceMove(src.loc)
- ex_act(severity)
+ legacy_ex_act(severity)
qdel(src)
return
return
diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm
index d94bf73f4bb..da767858ad9 100644
--- a/code/game/objects/structures/plasticflaps.dm
+++ b/code/game/objects/structures/plasticflaps.dm
@@ -64,7 +64,7 @@
return ..()
-/obj/structure/plasticflaps/ex_act(severity)
+/obj/structure/plasticflaps/legacy_ex_act(severity)
switch(severity)
if (1)
qdel(src)
diff --git a/code/game/objects/structures/props/blackbox.dm b/code/game/objects/structures/props/blackbox.dm
index 3da8cb98e17..6b104e5cd89 100644
--- a/code/game/objects/structures/props/blackbox.dm
+++ b/code/game/objects/structures/props/blackbox.dm
@@ -8,7 +8,7 @@
icon_state = "blackbox_off"
// Black boxes are resistant to explosions.
-/obj/structure/prop/blackbox/ex_act(severity)
+/obj/structure/prop/blackbox/legacy_ex_act(severity)
..(++severity)
diff --git a/code/game/objects/structures/props/puzzledoor.dm b/code/game/objects/structures/props/puzzledoor.dm
index 6574bdcc8a0..662ebb2963b 100644
--- a/code/game/objects/structures/props/puzzledoor.dm
+++ b/code/game/objects/structures/props/puzzledoor.dm
@@ -31,7 +31,7 @@
visible_message("\The [src] is completely unaffected by \the [Proj].")
qdel(Proj) //No piercing. No.
-/obj/machinery/door/blast/puzzle/ex_act(severity)
+/obj/machinery/door/blast/puzzle/legacy_ex_act(severity)
visible_message("\The [src] is completely unaffected by the blast.")
return
diff --git a/code/game/objects/structures/railing.dm b/code/game/objects/structures/railing.dm
index 50ae13c3454..21ec4bc7b21 100644
--- a/code/game/objects/structures/railing.dm
+++ b/code/game/objects/structures/railing.dm
@@ -259,7 +259,7 @@
return ..()
-/obj/structure/railing/ex_act(severity)
+/obj/structure/railing/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm
index bb458a0fb58..6dfdad3065d 100644
--- a/code/game/objects/structures/safe.dm
+++ b/code/game/objects/structures/safe.dm
@@ -161,7 +161,7 @@ FLOOR SAFES
return
-/obj/structure/safe/ex_act(severity)
+/obj/structure/safe/legacy_ex_act(severity)
return
//FLOOR SAFES
diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm
index 26d2c238b15..72d460d2362 100644
--- a/code/game/objects/structures/signs.dm
+++ b/code/game/objects/structures/signs.dm
@@ -7,7 +7,7 @@
layer = ABOVE_JUNK_LAYER
w_class = ITEMSIZE_NORMAL
-/obj/structure/sign/ex_act(severity)
+/obj/structure/sign/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm
index fa69704002d..d70e69a5a32 100644
--- a/code/game/objects/structures/simple_doors.dm
+++ b/code/game/objects/structures/simple_doors.dm
@@ -179,7 +179,7 @@
visible_message("The [src] is destroyed!")
qdel(src)
-/obj/structure/simple_door/ex_act(severity = 1)
+/obj/structure/simple_door/legacy_ex_act(severity = 1)
switch(severity)
if(1)
Dismantle(1)
diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm
index bb7cdb3dfad..b9bf0b8df22 100644
--- a/code/game/objects/structures/statues.dm
+++ b/code/game/objects/structures/statues.dm
@@ -124,7 +124,7 @@
new ore(get_turf(src))
qdel(src)
-/obj/structure/statue/ex_act(severity = 1)
+/obj/structure/statue/legacy_ex_act(severity = 1)
switch(severity)
if(1)
Dismantle(1)
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index ad228dbff5d..589ada88eeb 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -69,7 +69,7 @@
name = "[material.display_name] [initial(name)]"
desc += " It's made of [material.use_name]."
-/obj/structure/bed/ex_act(severity)
+/obj/structure/bed/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
index da42a60e9ee..5a59a94bde3 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
@@ -83,7 +83,7 @@ var/global/list/stool_cache = list() //haha stool
return
..()
-/obj/item/stool/ex_act(severity)
+/obj/item/stool/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/objects/structures/transit_tubes.dm b/code/game/objects/structures/transit_tubes.dm
index 1c9bf764818..c9beee0e6d0 100644
--- a/code/game/objects/structures/transit_tubes.dm
+++ b/code/game/objects/structures/transit_tubes.dm
@@ -60,12 +60,12 @@
// When destroyed by explosions, properly handle contents.
-/obj/structure/transit_tube_pod/ex_act(severity)
+/obj/structure/transit_tube_pod/legacy_ex_act(severity)
switch(severity)
if(1.0)
for(var/atom/movable/AM in contents)
AM.loc = loc
- AM.ex_act(severity++)
+ LEGACY_EX_ACT(AM, severity + 1, null)
qdel(src)
return
@@ -73,7 +73,7 @@
if(prob(50))
for(var/atom/movable/AM in contents)
AM.loc = loc
- AM.ex_act(severity++)
+ LEGACY_EX_ACT(AM, severity + 1, null)
qdel(src)
return
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 60cf8b5820c..e11d97d9d67 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -135,7 +135,7 @@
return
-/obj/structure/window/ex_act(severity)
+/obj/structure/window/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/game/turfs/simulated/floor_acts.dm b/code/game/turfs/simulated/floor_acts.dm
index 34244a53960..bc42486f31a 100644
--- a/code/game/turfs/simulated/floor_acts.dm
+++ b/code/game/turfs/simulated/floor_acts.dm
@@ -1,4 +1,4 @@
-/turf/simulated/floor/ex_act(severity)
+/turf/simulated/floor/legacy_ex_act(severity)
//set src in oview(1)
switch(severity)
if(1.0)
diff --git a/code/game/turfs/simulated/floor_types_vr.dm b/code/game/turfs/simulated/floor_types_vr.dm
index af0c463f547..67c34c61ebe 100644
--- a/code/game/turfs/simulated/floor_types_vr.dm
+++ b/code/game/turfs/simulated/floor_types_vr.dm
@@ -13,5 +13,5 @@
/turf/simulated/floor/flesh/attackby()
return
-/turf/simulated/floor/flesh/ex_act(severity)
+/turf/simulated/floor/flesh/legacy_ex_act(severity)
return
diff --git a/code/game/turfs/simulated/floors/dungeon.dm b/code/game/turfs/simulated/floors/dungeon.dm
index f58160c3aa2..4b26a0a8ef3 100644
--- a/code/game/turfs/simulated/floors/dungeon.dm
+++ b/code/game/turfs/simulated/floors/dungeon.dm
@@ -3,5 +3,5 @@
/turf/simulated/floor/dungeon
block_tele = TRUE // Anti-cheese.
-/turf/simulated/floor/dungeon/ex_act()
+/turf/simulated/floor/dungeon/legacy_ex_act()
return
diff --git a/code/game/turfs/simulated/floors/outdoors.dm b/code/game/turfs/simulated/floors/outdoors.dm
index d54d0e0def6..febd7eb096c 100644
--- a/code/game/turfs/simulated/floors/outdoors.dm
+++ b/code/game/turfs/simulated/floors/outdoors.dm
@@ -32,7 +32,7 @@
/turf/simulated/floor/outdoors/snow/chill()
return // Todo: Add heavy snow.
-/turf/simulated/floor/outdoors/ex_act(severity)
+/turf/simulated/floor/outdoors/legacy_ex_act(severity)
switch(severity)
// Outdoor turfs are less explosion resistant
if(1)
diff --git a/code/game/turfs/simulated/wall.dm b/code/game/turfs/simulated/wall.dm
index 299b1422c9a..215ff0bbda0 100644
--- a/code/game/turfs/simulated/wall.dm
+++ b/code/game/turfs/simulated/wall.dm
@@ -214,7 +214,7 @@
O.forceMove(src)
ScrapeAway()
-/turf/simulated/wall/ex_act(severity)
+/turf/simulated/wall/legacy_ex_act(severity)
switch(severity)
if(1.0)
if(girder_material.explosion_resistance >= 25 && prob(girder_material.explosion_resistance))
diff --git a/code/game/turfs/simulated/walls/dungeon.dm b/code/game/turfs/simulated/walls/dungeon.dm
index 722f7762281..81013258082 100644
--- a/code/game/turfs/simulated/walls/dungeon.dm
+++ b/code/game/turfs/simulated/walls/dungeon.dm
@@ -9,7 +9,7 @@
/turf/simulated/wall/dungeon/attackby()
return
-/turf/simulated/wall/dungeon/ex_act()
+/turf/simulated/wall/dungeon/legacy_ex_act()
return
/turf/simulated/wall/dungeon/take_damage() //These things are suppose to be unbreakable
@@ -48,7 +48,7 @@
/turf/simulated/wall/solidrock/attackby()
return
-/turf/simulated/wall/solidrock/ex_act()
+/turf/simulated/wall/solidrock/legacy_ex_act()
return
/turf/simulated/wall/solidrock/take_damage() //These things are suppose to be unbreakable
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 05d5e9af24d..cef310e8733 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -151,7 +151,7 @@
// requires_activation = FALSE
..()
-/turf/ex_act(severity)
+/turf/legacy_ex_act(severity)
return 0
/turf/proc/is_space()
diff --git a/code/game/vehicles/vehicle.dm b/code/game/vehicles/vehicle.dm
index 30185002417..43500478d83 100644
--- a/code/game/vehicles/vehicle.dm
+++ b/code/game/vehicles/vehicle.dm
@@ -13,7 +13,7 @@
//var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South.
//var/step_energy_drain = 10
var/health = 300 //health is health
- //var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act.
+ //var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of legacy_ex_act.
//the values in this list show how much damage will pass through, not how much will be absorbed.
var/list/damage_absorption = list("brute"=0.8,"fire"=1.2,"bullet"=0.9,"laser"=1,"energy"=1,"bomb"=1)
var/obj/item/cell/cell //Our power source
diff --git a/code/modules/automata/_wave.dm b/code/modules/automata/_wave.dm
index e633ef20671..70e456c255a 100644
--- a/code/modules/automata/_wave.dm
+++ b/code/modules/automata/_wave.dm
@@ -38,30 +38,10 @@
else
CRASH("Invalid wave spread [wave_spread].")
-/datum/automata/wave/tick()
- // remove old acting
- cleanup_turfs_acting()
- // cache for sanic speed
- var/list/turf/edges = src.edges
- var/list/turf/powers = src.powers
- var/list/turf/last = src.last
- // current vars - turf, power, dir
- var/turf/_T
- var/_P
- var/_D
- // next edges, powers
- var/list/turf/edges_next = list()
- var/list/turf/powers_next = list()
- // current vars - returned
- var/_ret
- // current vars - expansions
- var/turf/_expand
- var/_ND
- // current vars - track returned per turf too
- var/list/turf/returned = list()
-
+//! Evil defines here
// usually i wouldn't bother documenting forbidden defines but
// just incase someone needs to debug/read later
+//! Shared
/**
* base run for current turf
*/
@@ -77,7 +57,8 @@
if(_ret < power_considered_dead){ \
continue; \
}
-// FOR MINIMAL
+
+//! For spread: minimal
/**
* simple expand: really simple, take dir, set next turf in edges next, set power, etc
*
@@ -87,13 +68,14 @@
* P - power to set expanded turf to
*/
#define SIMPLE_EXPAND(T, D, P) _expand = get_step(T, D); edges_next[_expand] = D; powers_next[_expand] = P;
-// FOR SHADOWCAST
+
+//! For spread: shadowcast
/**
* shadowcast helper
* expands a turf's dirs to edges next
*
* params:
- * T, D, P - ditto, thuogh D is direction_BIT and not byond direction defines
+ * T, D, P - ditto, though D is direction_BIT and not byond direction defines
* CD - dir to check.
* RD - real byond dir, used for the get_step since we use direction bits now
*/
@@ -113,7 +95,8 @@
edges_next[_expand] |= PD; \
powers_next[_expand] = max(powers_next[_expand], P); \
}
-// FOR SHOCKWAVE
+
+//! For spread: shockwave
/**
* runs a specific cardinal
*/
@@ -187,14 +170,41 @@
SHOCKWAVE_DIAGONAL_MARK_SUBSTEP(T, D, (((ED & NORTH) << 2) | ((ED & SOUTH) << 2) | ((ED & EAST) >> 1) | ((ED & WEST) >> 3)), OP, RP); \
SHOCKWAVE_DIAGONAL_MARK_SUBSTEP(T, D, (((ED & NORTH) << 3) | ((ED & SOUTH) << 1) | ((ED & EAST) >> 2) | ((ED & WEST) >> 2)), OP, RP); \
}
+//! Evil defines end
+/datum/automata/wave/tick()
+ // remove old acting
+ cleanup_turfs_acting()
+ // cache for sanic speed
+ var/list/turf/edges = src.edges
+ var/list/turf/powers = src.powers
+ var/list/turf/last = src.last
+ // current vars - turf, power, dir
+ var/turf/_T
+ var/_P
+ var/_D
+ // next edges, powers
+ var/list/turf/edges_next = list()
+ var/list/turf/powers_next = list()
+ // current vars - returned
+ var/_ret
+ // current vars - expansions
+ var/turf/_expand
+ var/_ND
+ // current vars - track returned per turf too
+ var/list/turf/returned = list()
switch(wave_spread)
if(WAVE_SPREAD_MINIMAL)
// minimal - very little simulation, just go
// we act on current turf in edges
// we don't use dir bits here
- // we so not check last list
+ // propagation:
+ // cardinals propagate in their dir
+ // diagonals propagate in their dir as well as cardinals
+ // corner-clipping can happen, but is minimal
+
+ // we do not check last list
// because we ""know"" we're going in a linear circular spread
// first check first step
@@ -226,9 +236,11 @@
if(WAVE_SPREAD_SHADOW_LIKE)
// preliminary attempt:
- // propagate cardinals forwards with a cardinal and 45 deg diagonals
- // propagate diagonals forwards with 45 deg cardinals only
- // this prevents corner clipping
+
+ // propagation:
+ // cardinals propagate with a cardinal and 45 deg diagonals
+ // diagonals propagate with 45 deg cardinals only
+ // corner-clipping can happen, but is minimal
// we do not check last here either because we can't bend around
// to save some list lookups
diff --git a/code/modules/automata/explosion.dm b/code/modules/automata/explosion.dm
new file mode 100644
index 00000000000..666314495f1
--- /dev/null
+++ b/code/modules/automata/explosion.dm
@@ -0,0 +1,2 @@
+/datum/automata/wave/explosion
+ wave_spread = WAVE_SPREAD_SHOCKWAVE
diff --git a/code/modules/blob/blob.dm b/code/modules/blob/blob.dm
index 78c235d7517..790f16a152e 100644
--- a/code/modules/blob/blob.dm
+++ b/code/modules/blob/blob.dm
@@ -25,7 +25,7 @@
/obj/effect/blob/CanAllowThrough(atom/movable/mover, turf/target)
return FALSE
-/obj/effect/blob/ex_act(severity)
+/obj/effect/blob/legacy_ex_act(severity)
switch(severity)
if(1)
take_damage(rand(100, 120) / brute_resist)
@@ -73,11 +73,11 @@
qdel(GR)
return
for(var/obj/structure/reagent_dispensers/fueltank/Fuel in T)
- Fuel.ex_act(2)
+ LEGACY_EX_ACT(Fuel, 2, null)
return
for(var/obj/machinery/door/D in T) // There can be several - and some of them can be open, locate() is not suitable
if(D.density)
- D.ex_act(2)
+ LEGACY_EX_ACT(D, 2, null)
return
var/obj/structure/foamedmetal/F = locate() in T
if(F)
@@ -90,7 +90,7 @@
var/obj/vehicle_old/V = locate() in T
if(V)
- V.ex_act(2)
+ LEGACY_EX_ACT(V, 2, null)
return
var/obj/mecha/M = locate() in T
if(M)
diff --git a/code/modules/events/meteor_strike_vr.dm b/code/modules/events/meteor_strike_vr.dm
index 9ccc0505f4a..f3b4b3430ab 100644
--- a/code/modules/events/meteor_strike_vr.dm
+++ b/code/modules/events/meteor_strike_vr.dm
@@ -36,7 +36,7 @@
meteor_impact()
return
for(var/atom/movable/A in current)
- A.ex_act(3) //Let's have it be heavy, but not devistation in case it hits walls or something.
+ LEGACY_EX_ACT(A, 3, null) //Let's have it be heavy, but not devistation in case it hits walls or something.
forceMove(below)
meteor_fall()
return
@@ -96,7 +96,7 @@
if(91 to 100)
new /obj/machinery/artifact(src)
-/obj/structure/meteorite/ex_act()
+/obj/structure/meteorite/legacy_ex_act()
return
/obj/structure/meteorite/attackby(var/obj/item/I, var/mob/M)
diff --git a/code/modules/fishing/fishing.dm b/code/modules/fishing/fishing.dm
index 14445516914..fd598a7145b 100644
--- a/code/modules/fishing/fishing.dm
+++ b/code/modules/fishing/fishing.dm
@@ -93,7 +93,7 @@ GLOBAL_LIST_INIT(generic_fishing_chance_list, list(FISHING_RARE = 10, FISHING_UN
junk_list = GLOB.generic_fishing_pool_list
fishing_loot = GLOB.generic_fishing_chance_list
-/turf/simulated/floor/water/ex_act(severity) // Explosive fishing.
+/turf/simulated/floor/water/legacy_ex_act(severity) // Explosive fishing.
if(prob(5 * severity))
pick_fish()
if(fish_type)
diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm
index 59c6c2264b9..2808c559173 100644
--- a/code/modules/holodeck/HolodeckControl.dm
+++ b/code/modules/holodeck/HolodeckControl.dm
@@ -196,7 +196,7 @@
emergencyShutdown()
..()
-/obj/machinery/computer/HolodeckControl/ex_act(severity)
+/obj/machinery/computer/HolodeckControl/legacy_ex_act(severity)
emergencyShutdown()
..()
@@ -236,7 +236,7 @@
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
s.set_up(2, 1, T)
s.start()
- T.ex_act(3)
+ LEGACY_EX_ACT(T, 3, null)
T.hotspot_expose(1000,500,1)
/obj/machinery/computer/HolodeckControl/proc/derez(var/obj/obj , var/silent = 1)
diff --git a/code/modules/holomap/station_holomap.dm b/code/modules/holomap/station_holomap.dm
index dd64b694c4f..ec01195fbba 100644
--- a/code/modules/holomap/station_holomap.dm
+++ b/code/modules/holomap/station_holomap.dm
@@ -202,7 +202,7 @@
return
return ..()
-/obj/machinery/station_map/ex_act(severity)
+/obj/machinery/station_map/legacy_ex_act(severity)
switch(severity)
if(1)
qdel(src)
diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm
index 75dee4b2f8e..b2229d5c847 100644
--- a/code/modules/hydroponics/spreading/spreading.dm
+++ b/code/modules/hydroponics/spreading/spreading.dm
@@ -121,7 +121,8 @@
//Some plants eat through plating.
if(islist(seed.chems) && !isnull(seed.chems["pacid"]))
var/turf/T = get_turf(src)
- T.ex_act(prob(80) ? 3 : 2)
+ var/P = prob(80)? 3 : 2
+ LEGACY_EX_ACT(T, P, null)
/obj/effect/plant/update_icon()
//TODO: should really be caching this.
@@ -274,7 +275,7 @@
health -= aggression*5
check_health()
-/obj/effect/plant/ex_act(severity)
+/obj/effect/plant/legacy_ex_act(severity)
switch(severity)
if(1.0)
die_off()
diff --git a/code/modules/hydroponics/spreading/spreading_growth.dm b/code/modules/hydroponics/spreading/spreading_growth.dm
index be9a9a6d4bf..89050cb690d 100644
--- a/code/modules/hydroponics/spreading/spreading_growth.dm
+++ b/code/modules/hydroponics/spreading/spreading_growth.dm
@@ -25,7 +25,7 @@
if(floor.density)
if(!isnull(seed.chems["pacid"]))
- spawn(rand(5,25)) floor.ex_act(3)
+ spawn(rand(5,25)) LEGACY_EX_ACT(floor, 3, null)
continue
if(!Adjacent(floor) || !floor.Enter(src))
diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm
index 56fc91a9c7f..38f890c917f 100644
--- a/code/modules/integrated_electronics/subtypes/manipulation.dm
+++ b/code/modules/integrated_electronics/subtypes/manipulation.dm
@@ -711,10 +711,10 @@
investigate_log("Drilled through [target]")
else if(istype(S, /turf/simulated/wall))
investigate_log("Drilled through [target]")
- S.ex_act(2)
+ LEGACY_EX_ACT(S, 2, null)
else
investigate_log("Drilled through [target]")
- target.ex_act(2)
+ LEGACY_EX_ACT(target, 2, null)
activate_pin(2)
return(TRUE)
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index 3ec339f63af..8af1a40301d 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -67,7 +67,7 @@
choice.loc = get_turf(src)
update_icon()
-/obj/structure/bookcase/ex_act(severity)
+/obj/structure/bookcase/legacy_ex_act(severity)
switch(severity)
if(1.0)
for(var/obj/item/book/b in contents)
diff --git a/code/modules/lighting/emissive_blocker.dm b/code/modules/lighting/emissive_blocker.dm
index 04c1bb73028..bb794b33aff 100644
--- a/code/modules/lighting/emissive_blocker.dm
+++ b/code/modules/lighting/emissive_blocker.dm
@@ -24,7 +24,7 @@
render_source = source
-/atom/movable/emissive_blocker/ex_act(severity)
+/atom/movable/emissive_blocker/legacy_ex_act(severity)
return FALSE
/atom/movable/emissive_blocker/singularity_act()
diff --git a/code/modules/lighting/lighting_object.dm b/code/modules/lighting/lighting_object.dm
index ff6c19d7a28..33e593a46e6 100644
--- a/code/modules/lighting/lighting_object.dm
+++ b/code/modules/lighting/lighting_object.dm
@@ -123,7 +123,7 @@
// Variety of overrides so the overlays don't get affected by weird things.
-/atom/movable/lighting_object/ex_act(severity)
+/atom/movable/lighting_object/legacy_ex_act(severity)
return 0
/atom/movable/lighting_object/singularity_act()
diff --git a/code/modules/looking_glass/lg_console.dm b/code/modules/looking_glass/lg_console.dm
index d4ae9fca5f9..16744dfe0ca 100644
--- a/code/modules/looking_glass/lg_console.dm
+++ b/code/modules/looking_glass/lg_console.dm
@@ -157,7 +157,7 @@
unload_program()
..()
-/obj/machinery/computer/looking_glass/ex_act(severity)
+/obj/machinery/computer/looking_glass/legacy_ex_act(severity)
unload_program()
..()
diff --git a/code/modules/maps/away_missions/archive/stationCollision.dm b/code/modules/maps/away_missions/archive/stationCollision.dm
index d61b12c0ebb..a42c803c8e6 100644
--- a/code/modules/maps/away_missions/archive/stationCollision.dm
+++ b/code/modules/maps/away_missions/archive/stationCollision.dm
@@ -198,7 +198,7 @@ var/sc_safecode5 = "[rand(0,9)]"
L.gib()
else if(istype(A,/obj/))
var/obj/O = A
- O.ex_act(1.0)
+ O.legacy_ex_act(1.0)
if(O) qdel(O)
else if(isturf(A))
var/turf/T = A
@@ -211,6 +211,6 @@ var/sc_safecode5 = "[rand(0,9)]"
T.ChangeTurf(/turf/space)
return
-/obj/machinery/singularity/narsie/sc_Narsie/ex_act()
+/obj/machinery/singularity/narsie/sc_Narsie/legacy_ex_act()
return
*/
diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm
index f5778e1c211..cca51d07762 100644
--- a/code/modules/materials/material_sheets.dm
+++ b/code/modules/materials/material_sheets.dm
@@ -313,7 +313,7 @@
if(burn_user)
M.apply_damage(amount, BURN, null, used_weapon="Supermatter Chunk")
-/obj/item/stack/material/supermatter/ex_act(severity) // An incredibly hard to manufacture material, SM chunks are unstable by their 'stabilized' nature.
+/obj/item/stack/material/supermatter/legacy_ex_act(severity) // An incredibly hard to manufacture material, SM chunks are unstable by their 'stabilized' nature.
if(prob((4 / severity) * 20))
SSradiation.radiate(get_turf(src), amount * 4)
explosion(get_turf(src),round(amount / 12) , round(amount / 6), round(amount / 3), round(amount / 25))
diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm
index d4a1ee93051..89ab9cef858 100644
--- a/code/modules/mining/drilling/drill.dm
+++ b/code/modules/mining/drilling/drill.dm
@@ -91,7 +91,7 @@
//Drill through the flooring, if any.
if(istype(get_turf(src), /turf/simulated))
var/turf/simulated/T = get_turf(src)
- T.ex_act(2.0)
+ LEGACY_EX_ACT(T, 2, null)
//Dig out the tasty ores.
if(resource_field.len)
diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index 52f694ca280..b5f9e1fade8 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -224,7 +224,7 @@ GLOBAL_LIST_EMPTY(mining_overlay_cache)
/* smoothing end */
-/turf/simulated/mineral/ex_act(severity)
+/turf/simulated/mineral/legacy_ex_act(severity)
switch(severity)
if(2.0)
diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm
index 9faabf08986..c9199940f5b 100644
--- a/code/modules/mining/ore.dm
+++ b/code/modules/mining/ore.dm
@@ -6,7 +6,7 @@
var/datum/geosample/geologic_data
var/material
-/obj/item/ore/ex_act(severity)
+/obj/item/ore/legacy_ex_act(severity)
return
/obj/item/ore/uranium
diff --git a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm
index 7a9351e8591..5beec391fd7 100644
--- a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm
+++ b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm
@@ -245,7 +245,7 @@
name = "Generic Entry"
prize_list += new /datum/data/mining_equipment(name, path, cost)
-/obj/machinery/mineral/equipment_vendor/ex_act(severity, target)
+/obj/machinery/mineral/equipment_vendor/legacy_ex_act(severity, target)
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
s.set_up(5, 1, src)
s.start()
diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm
index 0669f0d713d..1055016463a 100644
--- a/code/modules/mining/satchel_ore_boxdm.dm
+++ b/code/modules/mining/satchel_ore_boxdm.dm
@@ -10,7 +10,7 @@
var/last_update = 0
var/list/stored_ore = list()
-/obj/structure/ore_box/ex_act(severity)
+/obj/structure/ore_box/legacy_ex_act(severity)
return //if an overstuffed ore box explodes it crashes the server, thank you GC
/obj/structure/ore_box/attackby(obj/item/W as obj, mob/user as mob)
diff --git a/code/modules/mining/vertibore.dm b/code/modules/mining/vertibore.dm
index 012e1068ec1..fdc5d52ce87 100644
--- a/code/modules/mining/vertibore.dm
+++ b/code/modules/mining/vertibore.dm
@@ -82,7 +82,7 @@
return
if(cell.use(power_cost) && do_after(user, 2.5 SECONDS))
var/turf/T = get_turf(user)
- T.ex_act(1)
+ LEGACY_EX_ACT(T, 1, null)
/obj/item/vertibore/update_icon()
var/list/overlays_to_add = list()
diff --git a/code/modules/mob/living/carbon/alien/alien_damage.dm b/code/modules/mob/living/carbon/alien/alien_damage.dm
index f2d147641f1..4c131710b12 100644
--- a/code/modules/mob/living/carbon/alien/alien_damage.dm
+++ b/code/modules/mob/living/carbon/alien/alien_damage.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/alien/ex_act(severity)
+/mob/living/carbon/alien/legacy_ex_act(severity)
if(!blinded)
flash_eyes()
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 0f4b8bcfd54..54b5b2d84a0 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -111,7 +111,7 @@
if(species)
species.Stat(src)
-/mob/living/carbon/human/ex_act(severity)
+/mob/living/carbon/human/legacy_ex_act(severity)
if(!blinded)
flash_eyes()
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 9a14fcbe778..8ad535119bd 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -2,7 +2,7 @@
Contains most of the procs that are called when a mob is attacked by something
bullet_act
-ex_act
+legacy_ex_act
meteor_act
emp_act
diff --git a/code/modules/mob/living/carbon/human/traits/weaver_objs.dm b/code/modules/mob/living/carbon/human/traits/weaver_objs.dm
index 57291df7867..7ef0a5d7b8a 100644
--- a/code/modules/mob/living/carbon/human/traits/weaver_objs.dm
+++ b/code/modules/mob/living/carbon/human/traits/weaver_objs.dm
@@ -11,7 +11,7 @@ var/global/list/weavable_items = list()
anchored = TRUE
density = FALSE
-/obj/effect/weaversilk/ex_act(severity)
+/obj/effect/weaversilk/legacy_ex_act(severity)
qdel(src)
return
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index 34b66b56501..608adb69b1c 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -185,7 +185,7 @@
powerlevel = 0 // oh no, the power!
..()
-/mob/living/carbon/slime/ex_act(severity)
+/mob/living/carbon/slime/legacy_ex_act(severity)
..()
var/b_loss = null
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 11e7313b933..7d3f8f09a9d 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -867,7 +867,7 @@ var/list/ai_verbs_default = list(
return istype(loc, /turf)
-/mob/living/silicon/ai/ex_act(var/severity)
+/mob/living/silicon/ai/legacy_ex_act(var/severity)
if(severity == 1.0)
qdel(src)
return
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index d2628c50efd..f5edc0b9a6f 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -274,7 +274,7 @@
/mob/living/silicon/binarycheck()
return 1
-/mob/living/silicon/ex_act(severity)
+/mob/living/silicon/legacy_ex_act(severity)
if(!blinded)
flash_eyes()
diff --git a/code/modules/mob/living/simple_mob/defense.dm b/code/modules/mob/living/simple_mob/defense.dm
index 512eec37137..9fd7205707c 100644
--- a/code/modules/mob/living/simple_mob/defense.dm
+++ b/code/modules/mob/living/simple_mob/defense.dm
@@ -83,7 +83,7 @@
// Exploding.
-/mob/living/simple_mob/ex_act(severity)
+/mob/living/simple_mob/legacy_ex_act(severity)
if(!blinded)
flash_eyes()
var/armor = run_armor_check(def_zone = null, attack_flag = "bomb")
diff --git a/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm b/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm
index 466e72a2968..a62ecc3911c 100644
--- a/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/illusion/illusion.dm
@@ -90,7 +90,7 @@
visible_message(SPAN_WARNING( "\The [user]'s [I] goes through \the [src]!"))
return FALSE
-/mob/living/simple_mob/illusion/ex_act()
+/mob/living/simple_mob/illusion/legacy_ex_act()
return
// Try to have the same tooltip, or else it becomes really obvious which one is fake.
diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm
index fcc0672cfbb..0d1d51503ab 100644
--- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/mecha.dm
@@ -134,7 +134,7 @@
return
..()
-/mob/living/simple_mob/mechanical/mecha/ex_act(severity)
+/mob/living/simple_mob/mechanical/mecha/legacy_ex_act(severity)
if(prob(deflect_chance))
severity++ // This somewhat misleadingly makes it less severe.
deflect_sprite()
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm
index 4265edb2895..3d659b66a85 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm
@@ -201,7 +201,7 @@
return list()
return T.AtmosAdjacencyFloodfillHeuristic(amt, maxrad)
-/mob/living/simple_mob/slime/xenobio/dark_purple/ex_act(severity)
+/mob/living/simple_mob/slime/xenobio/dark_purple/legacy_ex_act(severity)
log_and_message_admins("[src] ignited due to a chain reaction with an explosion.")
ignite()
@@ -658,7 +658,7 @@
return ..()
-/mob/living/simple_mob/slime/xenobio/oil/ex_act(severity)
+/mob/living/simple_mob/slime/xenobio/oil/legacy_ex_act(severity)
log_and_message_admins("[src] exploded due to a chain reaction with another explosion.")
explode()
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm
index 91185e03124..03696dcc1dd 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm
@@ -42,7 +42,7 @@
else
return ..()
-/obj/structure/closet/crate/mimic/ex_act(severity) //Stores Mimic Contents for later
+/obj/structure/closet/crate/mimic/legacy_ex_act(severity) //Stores Mimic Contents for later
for(var/obj/O in src.contents)
qdel(O)
qdel(src)
@@ -175,7 +175,7 @@
else
return ..()
-/obj/structure/closet/crate/mimic/airlock/ex_act(severity) //Stores Mimic Contents for later
+/obj/structure/closet/crate/mimic/airlock/legacy_ex_act(severity) //Stores Mimic Contents for later
for(var/obj/O in src.contents)
qdel(O)
qdel(src)
@@ -266,7 +266,7 @@
else
return ..()
-/obj/structure/closet/crate/mimic/closet/ex_act(severity) //Stores Mimic Contents for later
+/obj/structure/closet/crate/mimic/closet/legacy_ex_act(severity) //Stores Mimic Contents for later
for(var/obj/O in src.contents)
qdel(O)
qdel(src)
@@ -372,7 +372,7 @@
else
return ..()
-/obj/effect/floormimic/ex_act(severity)
+/obj/effect/floormimic/legacy_ex_act(severity)
qdel(src)
/obj/effect/floormimic/safe
diff --git a/code/modules/modular_computers/computers/modular_computer/damage.dm b/code/modules/modular_computers/computers/modular_computer/damage.dm
index 9d143530668..a6b08005916 100644
--- a/code/modules/modular_computers/computers/modular_computer/damage.dm
+++ b/code/modules/modular_computers/computers/modular_computer/damage.dm
@@ -37,7 +37,7 @@
* Stronger explosions cause serious damage to internal components
* Minor explosions are mostly mitigitated by casing.
*/
-/obj/item/modular_computer/ex_act(severity)
+/obj/item/modular_computer/legacy_ex_act(severity)
take_damage(rand(100,200) / severity, 30 / severity)
/// EMPs are similar to explosions, but don't cause physical damage to the casing. Instead they screw up the components
diff --git a/code/modules/multiz/hoist.dm b/code/modules/multiz/hoist.dm
index 409f03c64f3..37fc07eb234 100644
--- a/code/modules/multiz/hoist.dm
+++ b/code/modules/multiz/hoist.dm
@@ -140,7 +140,7 @@
release_hoistee()
QDEL_NULL(source_hook)
-/obj/structure/hoist/ex_act(severity)
+/obj/structure/hoist/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
@@ -157,7 +157,7 @@
break_hoist()
return
-/obj/effect/hoist_hook/ex_act(severity)
+/obj/effect/hoist_hook/legacy_ex_act(severity)
switch(severity)
if(1.0)
source_hoist.break_hoist()
diff --git a/code/modules/overmap/disperser/disperser_fire.dm b/code/modules/overmap/disperser/disperser_fire.dm
index 34055eb2f4e..1c3ae0fe6bd 100644
--- a/code/modules/overmap/disperser/disperser_fire.dm
+++ b/code/modules/overmap/disperser/disperser_fire.dm
@@ -21,14 +21,14 @@
explosion(T,1,2,3)
continue
else
- T.ex_act(1)
+ LEGACY_EX_ACT(T, 1, null)
for(var/atom/A in T)
if(A.density)
if(distance < 7)
explosion(A,1,2,3)
break
else
- A.ex_act(1)
+ LEGACY_EX_ACT(A, 1, null)
var/list/relevant_z = GetConnectedZlevels(start.z)
for(var/mob/M in global.player_list)
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index 63ec77f754a..3d17ad53de1 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -184,7 +184,7 @@
return
-/obj/machinery/photocopier/ex_act(severity)
+/obj/machinery/photocopier/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/modules/power/antimatter/containment_jar.dm b/code/modules/power/antimatter/containment_jar.dm
index ae90b7ee1ba..6c68d0c52f7 100644
--- a/code/modules/power/antimatter/containment_jar.dm
+++ b/code/modules/power/antimatter/containment_jar.dm
@@ -15,7 +15,7 @@
var/stability = 100//TODO: add all the stability things to this so its not very safe if you keep hitting in on things
-/obj/item/am_containment/ex_act(severity)
+/obj/item/am_containment/legacy_ex_act(severity)
switch(severity)
if(1.0)
explosion(get_turf(src), 1, 2, 3, 5)//Should likely be larger but this works fine for now I guess
diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm
index 39bcc5cf71b..323e438ee16 100644
--- a/code/modules/power/antimatter/control.dm
+++ b/code/modules/power/antimatter/control.dm
@@ -105,7 +105,7 @@
return 0
-/obj/machinery/power/am_control_unit/ex_act(severity)
+/obj/machinery/power/am_control_unit/legacy_ex_act(severity)
switch(severity)
if(1.0)
stability -= 60
diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm
index dff42a0cd49..15864fab948 100644
--- a/code/modules/power/antimatter/shielding.dm
+++ b/code/modules/power/antimatter/shielding.dm
@@ -87,7 +87,7 @@
return 0
-/obj/machinery/am_shielding/ex_act(severity)
+/obj/machinery/am_shielding/legacy_ex_act(severity)
switch(severity)
if(1.0)
stability -= 80
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 4f2c411c95a..d11240040a1 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -1391,30 +1391,30 @@ GLOBAL_LIST_EMPTY(apcs)
update_icon()
..()
-/obj/machinery/power/apc/ex_act(severity)
+/obj/machinery/power/apc/legacy_ex_act(severity)
switch(severity)
if(1)
//set_broken() //now qdel() do what we need
if (cell)
- cell.ex_act(1) // more lags woohoo
+ LEGACY_EX_ACT(cell, 1, null) // more lags woohoo
qdel(src)
return
if(2)
if (prob(75))
set_broken()
if (cell && prob(50))
- cell.ex_act(2)
+ LEGACY_EX_ACT(cell, 2, null)
if(3)
if (prob(50))
set_broken()
if (cell && prob(50))
- cell.ex_act(3)
+ LEGACY_EX_ACT(cell, 3, null)
if(4)
if (prob(25))
set_broken()
if (cell && prob(50))
- cell.ex_act(3)
+ LEGACY_EX_ACT(cell, 3, null)
return
/obj/machinery/power/apc/disconnect_terminal()
@@ -1519,7 +1519,7 @@ GLOBAL_LIST_EMPTY(apcs)
if(prob(10)) // Computers get broken.
for(var/obj/machinery/computer/comp in area)
- comp.ex_act(3)
+ LEGACY_EX_ACT(comp, 3, null)
if(prob(5)) // APC completely ruined.
set_broken()
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index 69e0354d74a..e8bccb09d07 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -273,7 +273,7 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list(
return 0
//explosion handling
-/obj/structure/cable/ex_act(severity)
+/obj/structure/cable/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/modules/power/cable_ender.dm b/code/modules/power/cable_ender.dm
index 20ca1fdd051..b483d67fe13 100644
--- a/code/modules/power/cable_ender.dm
+++ b/code/modules/power/cable_ender.dm
@@ -34,6 +34,6 @@
..()
// Because they cannot be rebuilt, they are hard to destroy
-/obj/structure/cable/ender/ex_act(severity)
+/obj/structure/cable/ender/legacy_ex_act(severity)
return
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index b2dbc561787..f22e816c812 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -230,7 +230,7 @@
update_icon()
-/obj/item/cell/ex_act(severity)
+/obj/item/cell/legacy_ex_act(severity)
switch(severity)
if(1.0)
diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm
index 539108ee692..1d37cb07796 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -29,7 +29,7 @@ GLOBAL_LIST_EMPTY(gravity_generators)
pixel_y = 16
-/obj/machinery/gravity_generator/ex_act(severity, target)
+/obj/machinery/gravity_generator/legacy_ex_act(severity, target)
if(severity == 1) // Very sturdy.
set_broken()
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index a2ba4971745..a721caea8b7 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -838,7 +838,7 @@ var/global/list/light_type_cache = list()
// explosion effect
// destroy the whole light fixture or just shatter it
-/obj/machinery/light/ex_act(severity)
+/obj/machinery/light/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index b6ac566c35a..0bd35882fe4 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -655,7 +655,7 @@
/obj/machinery/power/rtg/abductor/blob_act(obj/structure/blob/B)
asplod()
-/obj/machinery/power/rtg/abductor/ex_act()
+/obj/machinery/power/rtg/abductor/legacy_ex_act()
if(going_kaboom)
qdel(src)
else
diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm
index 2a39b301f99..12d5952e654 100644
--- a/code/modules/power/singularity/act.dm
+++ b/code/modules/power/singularity/act.dm
@@ -39,7 +39,7 @@
/obj/singularity_act()
if(flags & ATOM_ABSTRACT)
return
- ex_act(1)
+ legacy_ex_act(1)
if(!QDELETED(src))
qdel(src)
return 2
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index e38ed302706..deb204c7aa1 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -101,7 +101,7 @@ var/global/list/rad_collectors = list()
. = ..()
. += "The meter indicates that \the [src] is collecting [last_power] W."
-/obj/machinery/power/rad_collector/ex_act(severity)
+/obj/machinery/power/rad_collector/legacy_ex_act(severity)
switch(severity)
if(2, 3)
eject()
diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm
index 1b9009d5169..cc0ed3634b1 100644
--- a/code/modules/power/singularity/containment_field.dm
+++ b/code/modules/power/singularity/containment_field.dm
@@ -38,7 +38,7 @@
if(isliving(bumped_atom))
shock(bumped_atom)
-/obj/machinery/containment_field/ex_act(severity)
+/obj/machinery/containment_field/legacy_ex_act(severity)
return 0
/obj/machinery/containment_field/shock(mob/living/user as mob)
diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm
index f61b4cc7d27..f4f49ed3f98 100644
--- a/code/modules/power/singularity/particle_accelerator/particle.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle.dm
@@ -72,7 +72,7 @@
Bump(A)
-/obj/effect/accelerated_particle/ex_act(severity)
+/obj/effect/accelerated_particle/legacy_ex_act(severity)
qdel(src)
/obj/effect/accelerated_particle/singularity_act()
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index 1ab9fdf5fa0..cf72070e59f 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -140,7 +140,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
log_game("PACCEL([x],[y],[z]) Was moved while active and turned off.")
investigate_log("was moved whilst active; it powered down.","singulo")
-/obj/structure/particle_accelerator/ex_act(severity)
+/obj/structure/particle_accelerator/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
@@ -311,7 +311,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
..()
return
-/obj/machinery/particle_accelerator/ex_act(severity)
+/obj/machinery/particle_accelerator/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 4ddd46143f7..eb752aff6a9 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -50,7 +50,7 @@ GLOBAL_LIST_BOILERPLATE(all_singularities, /obj/singularity)
consume(user)
return 1
-/obj/singularity/ex_act(severity, target)
+/obj/singularity/legacy_ex_act(severity, target)
switch(severity)
if(1)
if(current_size <= STAGE_TWO)
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 8559e40b034..55032b4db2d 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -148,7 +148,7 @@ GLOBAL_LIST_EMPTY(solars_list)
return
-/obj/machinery/power/solar/ex_act(severity)
+/obj/machinery/power/solar/legacy_ex_act(severity)
switch(severity)
if(1.0)
if(prob(15))
@@ -545,7 +545,7 @@ GLOBAL_LIST_EMPTY(solars_list)
update_icon()
-/obj/machinery/power/solar_control/ex_act(severity)
+/obj/machinery/power/solar_control/legacy_ex_act(severity)
switch(severity)
if(1.0)
//SN src = null
diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm
index 3575b92e317..f1fdc9a70e9 100644
--- a/code/modules/power/tesla/energy_ball.dm
+++ b/code/modules/power/tesla/energy_ball.dm
@@ -29,7 +29,7 @@
if(!is_miniball)
set_light(10, 7, "#EEEEFF")
-/obj/singularity/energy_ball/ex_act(severity, target)
+/obj/singularity/energy_ball/legacy_ex_act(severity, target)
return
/obj/singularity/energy_ball/Destroy()
diff --git a/code/modules/power/tesla/tesla_act.dm b/code/modules/power/tesla/tesla_act.dm
index e10ea8934eb..e421b28226e 100644
--- a/code/modules/power/tesla/tesla_act.dm
+++ b/code/modules/power/tesla/tesla_act.dm
@@ -34,7 +34,7 @@
else if(prob(50))
emp_act(2)
else
- ex_act(2)
+ legacy_ex_act(2)
/obj/machinery/camera/tesla_act(var/power)//EMP proof upgrade also makes it tesla immune
if(isEmpProof())
diff --git a/code/modules/projectiles/projectile/beam/beams.dm b/code/modules/projectiles/projectile/beam/beams.dm
index add17ad2e42..3699678c160 100644
--- a/code/modules/projectiles/projectile/beam/beams.dm
+++ b/code/modules/projectiles/projectile/beam/beams.dm
@@ -129,7 +129,7 @@
/obj/item/projectile/beam/pulse/on_hit(var/atom/target, var/blocked = 0)
if(isturf(target))
- target.ex_act(2)
+ LEGACY_EX_ACT(target, 2, null)
..()
/obj/item/projectile/beam/pulse/shotgun
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index 05c992c2124..3cce5ddee46 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -105,7 +105,7 @@
if(A == firer)
return
- A.ex_act(2)
+ LEGACY_EX_ACT(A, 2, null)
playsound(src.loc, 'sound/effects/meteorimpact.ogg', 40, 1)
for(var/mob/M in range(10, src))
diff --git a/code/modules/reagents/machinery/chem_master.dm b/code/modules/reagents/machinery/chem_master.dm
index a6efbaa595e..872dd9d00d0 100644
--- a/code/modules/reagents/machinery/chem_master.dm
+++ b/code/modules/reagents/machinery/chem_master.dm
@@ -33,7 +33,7 @@
default_apply_parts()
create_reagents(1000)
-/obj/machinery/chem_master/ex_act(severity)
+/obj/machinery/chem_master/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
diff --git a/code/modules/reagents/machinery/dispenser/reagent_tank.dm b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
index 40c3e808767..c177946352d 100644
--- a/code/modules/reagents/machinery/dispenser/reagent_tank.dm
+++ b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
@@ -55,7 +55,7 @@
if (N)
amount_per_transfer_from_this = N
-/obj/structure/reagent_dispensers/ex_act(severity)
+/obj/structure/reagent_dispensers/legacy_ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
@@ -206,7 +206,7 @@
if(!istype(Proj ,/obj/item/projectile/beam/lasertag) && !istype(Proj ,/obj/item/projectile/beam/practice) )
explode()
-/obj/structure/reagent_dispensers/fueltank/ex_act()
+/obj/structure/reagent_dispensers/fueltank/legacy_ex_act()
explode()
/obj/structure/reagent_dispensers/fueltank/blob_act()
@@ -454,7 +454,7 @@
if(Proj.get_structure_damage())
explode()
-/obj/structure/reagent_dispensers/cookingoil/ex_act()
+/obj/structure/reagent_dispensers/cookingoil/legacy_ex_act()
explode()
/obj/structure/reagent_dispensers/cookingoil/proc/explode()
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index eaac4586c37..f6b2cf1dbf9 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -846,7 +846,7 @@
// pipe affected by explosion
-/obj/structure/disposalpipe/ex_act(severity)
+/obj/structure/disposalpipe/legacy_ex_act(severity)
switch(severity)
if(1.0)
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index 8b66b0be894..e415c92045c 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -74,7 +74,7 @@
griefProtection()
..()
-/obj/machinery/r_n_d/server/ex_act(severity)
+/obj/machinery/r_n_d/server/legacy_ex_act(severity)
griefProtection()
..()
diff --git a/code/modules/resleeving/sleevecard.dm b/code/modules/resleeving/sleevecard.dm
index 786dedf8395..87ae3ae47b3 100644
--- a/code/modules/resleeving/sleevecard.dm
+++ b/code/modules/resleeving/sleevecard.dm
@@ -93,9 +93,9 @@
for(var/mob/M in src)
M.emp_act(severity)
-/obj/item/sleevecard/ex_act(severity)
+/obj/item/sleevecard/legacy_ex_act(severity)
if(infomorph)
- infomorph.ex_act(severity)
+ LEGACY_EX_ACT(infomorph, severity, null)
else
qdel(src)
diff --git a/code/modules/shieldgen/emergency_shield.dm b/code/modules/shieldgen/emergency_shield.dm
index 3d2ed5b9dca..d7af0cca39c 100644
--- a/code/modules/shieldgen/emergency_shield.dm
+++ b/code/modules/shieldgen/emergency_shield.dm
@@ -63,7 +63,7 @@
set_opacity(1)
spawn(20) if(!QDELETED(src)) set_opacity(0)
-/obj/machinery/shield/ex_act(severity)
+/obj/machinery/shield/legacy_ex_act(severity)
switch(severity)
if(1.0)
if (prob(75))
@@ -223,7 +223,7 @@
update_icon()
return
-/obj/machinery/shieldgen/ex_act(severity)
+/obj/machinery/shieldgen/legacy_ex_act(severity)
switch(severity)
if(1.0)
src.health -= 75
diff --git a/code/modules/shieldgen/energy_field.dm b/code/modules/shieldgen/energy_field.dm
index 224da0aa6fe..4d0bb7ab4ac 100644
--- a/code/modules/shieldgen/energy_field.dm
+++ b/code/modules/shieldgen/energy_field.dm
@@ -41,7 +41,7 @@
for(var/obj/effect/energy_field/F in T)
F.update_icon()
-/obj/effect/energy_field/ex_act(var/severity)
+/obj/effect/energy_field/legacy_ex_act(var/severity)
adjust_strength(-(4 - severity) * 4)
/obj/effect/energy_field/bullet_act(var/obj/item/projectile/Proj)
diff --git a/code/modules/shieldgen/energy_shield.dm b/code/modules/shieldgen/energy_shield.dm
index 6941f407d91..e4a108d6bdf 100644
--- a/code/modules/shieldgen/energy_shield.dm
+++ b/code/modules/shieldgen/energy_shield.dm
@@ -221,7 +221,7 @@
// Explosions
-/obj/effect/shield/ex_act(var/severity)
+/obj/effect/shield/legacy_ex_act(var/severity)
if(!disabled_for)
take_damage(rand(10,15) / severity, SHIELD_DAMTYPE_PHYSICAL)
diff --git a/code/modules/shieldgen/sheldwallgen.dm b/code/modules/shieldgen/sheldwallgen.dm
index e9dc964f5fb..d27925dc347 100644
--- a/code/modules/shieldgen/sheldwallgen.dm
+++ b/code/modules/shieldgen/sheldwallgen.dm
@@ -289,7 +289,7 @@
return
-/obj/machinery/shieldwall/ex_act(severity)
+/obj/machinery/shieldwall/legacy_ex_act(severity)
if(needs_power)
var/obj/machinery/shieldwallgen/G
switch(severity)
diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm
index cf823c01094..ffd4184f7bc 100644
--- a/code/modules/shieldgen/shield_gen.dm
+++ b/code/modules/shieldgen/shield_gen.dm
@@ -230,7 +230,7 @@
updateDialog()
-/obj/machinery/shield_gen/ex_act(var/severity)
+/obj/machinery/shield_gen/legacy_ex_act(var/severity)
if(active)
toggle()
diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm
index f6aa5716db1..cd72a3a0a90 100644
--- a/code/modules/shuttles/shuttle_console.dm
+++ b/code/modules/shuttles/shuttle_console.dm
@@ -139,7 +139,7 @@
/obj/machinery/computer/shuttle_control/bullet_act(var/obj/item/projectile/Proj)
visible_message("\The [Proj] ricochets off \the [src]!")
-/obj/machinery/computer/shuttle_control/ex_act()
+/obj/machinery/computer/shuttle_control/legacy_ex_act()
return
/obj/machinery/computer/shuttle_control/emp_act()
diff --git a/code/modules/species/station/promethean/promethean_blob.dm b/code/modules/species/station/promethean/promethean_blob.dm
index 6b8be5e411e..f5559c05798 100644
--- a/code/modules/species/station/promethean/promethean_blob.dm
+++ b/code/modules/species/station/promethean/promethean_blob.dm
@@ -181,9 +181,9 @@
else
return ..()
-/mob/living/simple_mob/slime/promethean/ex_act(severity)
+/mob/living/simple_mob/slime/promethean/legacy_ex_act(severity)
if(humanform)
- return humanform.ex_act(severity)
+ LEGACY_EX_ACT(humanform, severity, null)
else
return ..()
diff --git a/code/modules/species/station/xenomorph_hybrids/hybrid_resin.dm b/code/modules/species/station/xenomorph_hybrids/hybrid_resin.dm
index 3b87f08856d..e4df8bfab49 100644
--- a/code/modules/species/station/xenomorph_hybrids/hybrid_resin.dm
+++ b/code/modules/species/station/xenomorph_hybrids/hybrid_resin.dm
@@ -190,7 +190,7 @@
healthcheck()
return
-/obj/effect/alien/hybrid_resin/ex_act(severity)
+/obj/effect/alien/hybrid_resin/legacy_ex_act(severity)
switch(severity)
if(1.0)
health-=50
diff --git a/code/modules/spells/spell_projectile.dm b/code/modules/spells/spell_projectile.dm
index 01e7d163fa4..97d9a54e4c2 100644
--- a/code/modules/spells/spell_projectile.dm
+++ b/code/modules/spells/spell_projectile.dm
@@ -21,7 +21,7 @@
carried = null
return ..()
-/obj/item/projectile/spell_projectile/ex_act()
+/obj/item/projectile/spell_projectile/legacy_ex_act()
return
/obj/item/projectile/spell_projectile/before_move()
diff --git a/code/modules/spells/targeted/ethereal_jaunt.dm b/code/modules/spells/targeted/ethereal_jaunt.dm
index df83354b8a5..fa459bd43c7 100644
--- a/code/modules/spells/targeted/ethereal_jaunt.dm
+++ b/code/modules/spells/targeted/ethereal_jaunt.dm
@@ -101,7 +101,7 @@
src.canmove = 0
spawn(2) src.canmove = 1
-/obj/effect/dummy/spell_jaunt/ex_act(blah)
+/obj/effect/dummy/spell_jaunt/legacy_ex_act(blah)
return
/obj/effect/dummy/spell_jaunt/bullet_act(blah)
return
diff --git a/code/modules/vehicles_legacy/vehicle.dm b/code/modules/vehicles_legacy/vehicle.dm
index ba0f60906e3..6b9ce9776a7 100644
--- a/code/modules/vehicles_legacy/vehicle.dm
+++ b/code/modules/vehicles_legacy/vehicle.dm
@@ -129,7 +129,7 @@
health = clamp( health + amount, 0, maxhealth)
healthcheck()
-/obj/vehicle_old/ex_act(severity)
+/obj/vehicle_old/legacy_ex_act(severity)
switch(severity)
if(1.0)
explode()
diff --git a/code/modules/ventcrawl/ventcrawl_atmospherics.dm b/code/modules/ventcrawl/ventcrawl_atmospherics.dm
index c87fc9a4e6f..7a79883334e 100644
--- a/code/modules/ventcrawl/ventcrawl_atmospherics.dm
+++ b/code/modules/ventcrawl/ventcrawl_atmospherics.dm
@@ -13,9 +13,9 @@
pipe_image = null
. = ..()
-/obj/machinery/atmospherics/ex_act(severity)
+/obj/machinery/atmospherics/legacy_ex_act(severity)
for(var/atom/movable/A in src) //ventcrawling is serious business
- A.ex_act(severity)
+ LEGACY_EX_ACT(A, severity, null)
. = ..()
/obj/machinery/atmospherics/Entered(atom/movable/Obj)
diff --git a/code/modules/vore/fluffstuff/custom_guns.dm b/code/modules/vore/fluffstuff/custom_guns.dm
index eac989bfb31..bc477680e7f 100644
--- a/code/modules/vore/fluffstuff/custom_guns.dm
+++ b/code/modules/vore/fluffstuff/custom_guns.dm
@@ -754,7 +754,7 @@ END OF CITADEL CHANGES */
/obj/item/gun/energy/frontier/emp_act(severity)
return ..(severity+2)
-/obj/item/gun/energy/frontier/ex_act() //|rugged|
+/obj/item/gun/energy/frontier/legacy_ex_act() //|rugged|
return
/obj/item/gun/energy/frontier/locked
diff --git a/code/modules/vore/resizing/grav_pull_vr.dm b/code/modules/vore/resizing/grav_pull_vr.dm
index d8536f8cd32..863a0082a1c 100644
--- a/code/modules/vore/resizing/grav_pull_vr.dm
+++ b/code/modules/vore/resizing/grav_pull_vr.dm
@@ -36,7 +36,7 @@
if(X && !istype(X, /mob/living/carbon/human))
if(break_windows && istype(X, /obj/structure/window)) //shatter windows
var/obj/structure/window/W = X
- W.ex_act(2.0)
+ LEGACY_EX_ACT(W, 2, null)
if(istype(X, /obj))
var/obj/O = X
diff --git a/code/modules/xenoarcheaology/artifacts/artifact.dm b/code/modules/xenoarcheaology/artifacts/artifact.dm
index a08393d8cba..ae45138531b 100644
--- a/code/modules/xenoarcheaology/artifacts/artifact.dm
+++ b/code/modules/xenoarcheaology/artifacts/artifact.dm
@@ -289,7 +289,7 @@
if(secondary_effect && secondary_effect.trigger == TRIGGER_ENERGY && prob(25))
secondary_effect.ToggleActivate(0)
-/obj/machinery/artifact/ex_act(severity)
+/obj/machinery/artifact/legacy_ex_act(severity)
switch(severity)
if(1.0) qdel(src)
if(2.0)
diff --git a/code/modules/xenoarcheaology/tools/coolant_tank.dm b/code/modules/xenoarcheaology/tools/coolant_tank.dm
index c5c4daffb3e..6a15c1bcf3c 100644
--- a/code/modules/xenoarcheaology/tools/coolant_tank.dm
+++ b/code/modules/xenoarcheaology/tools/coolant_tank.dm
@@ -14,7 +14,7 @@
if(!istype(Proj ,/obj/item/projectile/beam/lasertag) && !istype(Proj ,/obj/item/projectile/beam/practice) ) // TODO: make this not terrible
explode()
-/obj/structure/reagent_dispensers/coolanttank/ex_act()
+/obj/structure/reagent_dispensers/coolanttank/legacy_ex_act()
explode()
/obj/structure/reagent_dispensers/coolanttank/proc/explode()