Merge remote-tracking branch 'origin/master' into what-should-i-name-this-branch

This commit is contained in:
LetterN
2021-11-21 10:34:14 +08:00
213 changed files with 86534 additions and 1331 deletions
+9 -5
View File
@@ -596,9 +596,13 @@
//SHOULD_CALL_PARENT(TRUE)
return SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_ICON_STATE)
/// Updates the overlays of the atom
/**
* Builds a list of overlays for the atom, this will not apply them.
* If you need to update overlays, use [update_icon(UPDATE_OVERLAYS)],
* This proc is intended to be overridden.
*/
/atom/proc/update_overlays()
//SHOULD_CALL_PARENT(TRUE)
SHOULD_CALL_PARENT(TRUE)
. = list()
SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_OVERLAYS, .)
@@ -610,12 +614,12 @@
user.buckle_message_cooldown = world.time + 50
to_chat(user, "<span class='warning'>You can't move while buckled to [src]!</span>")
/atom/proc/contents_explosion(severity, target)
/atom/proc/contents_explosion(severity, target, origin)
return //For handling the effects of explosions on contents that would not normally be effected
/atom/proc/ex_act(severity, target, datum/explosion/E)
/atom/proc/ex_act(severity, target, origin)
set waitfor = FALSE
contents_explosion(severity, target)
contents_explosion(severity, target, origin)
SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target)
/**
+1 -7
View File
@@ -151,14 +151,8 @@ Credit where due:
var/datum/team/clockcult/main_clockcult
/datum/game_mode/clockwork_cult/pre_setup() //Gamemode and job code is pain. Have fun codediving all of that stuff, whoever works on this next - Delta
var/list/errorList = list()
var/list/reebes = SSmapping.LoadGroup(errorList, "Reebe", "map_files/generic", "City_of_Cogs.dmm", default_traits = ZTRAITS_REEBE, silent = TRUE)
if(errorList.len) // reebe failed to load
message_admins("Reebe failed to load!")
log_game("Reebe failed to load!")
if(!load_reebe())
return FALSE
for(var/datum/parsed_map/PM in reebes) //Temporarily commented because of z-level loading reliably segfaulting the server.
PM.initTemplateBounds()
if(CONFIG_GET(flag/protect_roles_from_antagonist))
restricted_jobs += protected_jobs
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
+1
View File
@@ -653,6 +653,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if (drafted_rules.len > 0)
pick_midround_rule(drafted_rules)
else if (random_event_hijacked == HIJACKED_TOO_SOON)
message_admins("DYNAMIC: Midround injection failed when random event was hijacked. Spawning another random event in its place.")
log_game("DYNAMIC: Midround injection failed when random event was hijacked. Spawning another random event in its place.")
// A random event antag would have rolled had this injection check passed.
+2 -2
View File
@@ -58,9 +58,9 @@
storedpda.forceMove(loc)
storedpda = null
/obj/machinery/pdapainter/contents_explosion(severity, target)
/obj/machinery/pdapainter/contents_explosion(severity, target, origin)
if(storedpda)
storedpda.ex_act(severity, target)
storedpda.ex_act(severity, target, origin)
/obj/machinery/pdapainter/handle_atom_del(atom/A)
if(A == storedpda)
+2 -2
View File
@@ -438,9 +438,9 @@ Class Procs:
update_appearance()
return TRUE
/obj/machinery/contents_explosion(severity, target)
/obj/machinery/contents_explosion(severity, target, origin)
if(occupant)
occupant.ex_act(severity, target)
occupant.ex_act(severity, target, origin)
/obj/machinery/handle_atom_del(atom/A)
if(A == occupant)
+2 -2
View File
@@ -55,9 +55,9 @@
storedpart.forceMove(loc)
storedpart = null
/obj/machinery/aug_manipulator/contents_explosion(severity, target)
/obj/machinery/aug_manipulator/contents_explosion(severity, target, origin)
if(storedpart)
storedpart.ex_act(severity, target)
storedpart.ex_act(severity, target, origin)
/obj/machinery/aug_manipulator/handle_atom_del(atom/A)
if(A == storedpart)
+1 -1
View File
@@ -125,7 +125,7 @@
M.reset_perspective(null)
to_chat(M, "The screen bursts into static.")
/obj/machinery/camera/ex_act(severity, target)
/obj/machinery/camera/ex_act(severity, target, origin)
if(invuln)
return
..()
+1 -1
View File
@@ -439,7 +439,7 @@
mob_occupant.copy_from_prefs_vr()
go_out()
/obj/machinery/clonepod/ex_act(severity, target)
/obj/machinery/clonepod/ex_act(severity, target, origin)
..()
if(!QDELETED(src))
go_out()
@@ -258,8 +258,8 @@
//heccing chonker passive, only gives more HP at the start of a new game but has one of the hardest weakpoint to trigger.
if(LAZYACCESS(enemy_passive, "chonker"))
if(weakpoint_check("chonker","power_attack","power_attack","power_attack"))
list_temp += "<br><center><h3>After a lot of power attacks you manage to tip over [enemy_name] as they fall over their enormous weight<center><h3> "
if(weakpoint_check("chonker","attack","attack","power_attack"))
list_temp += "<br><center><h3>After attacking twice, your power attack manages to tip over [enemy_name] as they fall over their enormous weight<center><h3> "
enemy_hp -= 30
//smart passive trait, mainly works in tandem with other traits, makes the enemy unable to be counter_attacked
@@ -302,7 +302,7 @@
else if(!enemy_stance)
var/added_temp
if(rand())
if(prob(80))
added_temp = "you for [attack_amount + 5] damage!"
player_hp -= attack_amount + 5
enemy_stance = "attack"
@@ -451,7 +451,7 @@
msg += "\t<span class='info'>shotgun -> defend, defend, power attack</span>"
msg += "\t<span class='info'>short temper -> counter, counter, counter</span>"
msg += "\t<span class='info'>poisonous -> light attack, light attack, light attack</span>"
msg += "\t<span class='info'>chonker -> power attack, power attack, power attack</span>"
msg += "\t<span class='info'>chonker -> light attack, light attack, power attack</span>"
return msg
/obj/machinery/computer/arcade/battle/emag_act(mob/user)
+1 -1
View File
@@ -407,7 +407,7 @@
if(!stat) //Opens only powered doors.
open() //Open everything!
/obj/machinery/door/ex_act(severity, target)
/obj/machinery/door/ex_act(severity, target, origin)
//if it blows up a wall it should blow up a door
..(severity ? max(1, severity - 1) : 0, target)
+1 -1
View File
@@ -69,7 +69,7 @@
/obj/machinery/door/password/emp_act(severity)
return
/obj/machinery/door/password/ex_act(severity, target)
/obj/machinery/door/password/ex_act(severity, target, origin)
return
/obj/machinery/door/password/wave_ex_act(power, datum/wave_explosion/explosion, dir)
+1 -1
View File
@@ -68,7 +68,7 @@
return ..()
//"BLAST" doors are obviously stronger than regular doors when it comes to BLASTS.
/obj/machinery/door/poddoor/ex_act(severity, target)
/obj/machinery/door/poddoor/ex_act(severity, target, origin)
if(severity == 3)
return
..()
+1 -1
View File
@@ -270,7 +270,7 @@
var/range_light = 17
var/range_flame = 17
/obj/item/bombcore/ex_act(severity, target) // Little boom can chain a big boom.
/obj/item/bombcore/ex_act(severity, target, origin) // Little boom can chain a big boom.
detonate()
@@ -84,6 +84,8 @@
icon = 'icons/obj/clockwork_objects.dmi'
hide = TRUE
autolinkers = list("h_relay")
flags_1 = DEFAULT_RICOCHET_1 | NODECONSTRUCT_1
resistance_flags = INDESTRUCTIBLE
//Generic preset relay
/obj/machinery/telecomms/relay/preset/auto
+5 -5
View File
@@ -111,23 +111,23 @@
mecha_log_message("Hit by projectile. Type: [Proj.name]([Proj.flag]).", color="red")
. = ..()
/obj/mecha/ex_act(severity, target)
/obj/mecha/ex_act(severity, target, origin)
mecha_log_message("Affected by explosion of severity: [severity].", color="red")
if(prob(deflect_chance))
severity++
log_append_to_last("Armor saved, changing severity to [severity].")
. = ..()
/obj/mecha/contents_explosion(severity, target)
/obj/mecha/contents_explosion(severity, target, origin)
severity++
for(var/X in equipment)
var/obj/item/mecha_parts/mecha_equipment/ME = X
ME.ex_act(severity,target)
ME.ex_act(severity, target, origin)
for(var/Y in trackers)
var/obj/item/mecha_parts/mecha_tracking/MT = Y
MT.ex_act(severity, target)
MT.ex_act(severity, target, origin)
if(occupant)
occupant.ex_act(severity,target)
occupant.ex_act(severity, target, origin)
/obj/mecha/handle_atom_del(atom/A)
if(A == occupant)
+1 -1
View File
@@ -144,7 +144,7 @@
return
/obj/mecha/working/ripley/contents_explosion(severity, target)
/obj/mecha/working/ripley/contents_explosion(severity, target, origin)
for(var/X in cargo)
var/obj/O = X
if(prob(30/severity))
+1 -1
View File
@@ -69,7 +69,7 @@
/obj/effect/anomaly/proc/detonate()
return
/obj/effect/anomaly/ex_act(severity, target)
/obj/effect/anomaly/ex_act(severity, target, origin)
if(severity == 1)
qdel(src)
+1 -1
View File
@@ -60,7 +60,7 @@
STOP_PROCESSING(SSfastprocess, src)
. = ..()
/obj/effect/countdown/ex_act(severity, target) //immune to explosions
/obj/effect/countdown/ex_act(severity, target, origin) //immune to explosions
return
/obj/effect/countdown/syndicatebomb
@@ -77,10 +77,10 @@
else
return ..()
/obj/effect/decal/cleanable/ex_act()
/obj/effect/decal/cleanable/ex_act(severity, target, origin)
if(reagents)
for(var/datum/reagent/R in reagents.reagent_list)
R.on_ex_act()
R.on_ex_act(severity)
..()
/obj/effect/decal/cleanable/fire_act(exposed_temperature, exposed_volume)
@@ -36,7 +36,7 @@
. = ..()
return /obj/effect/decal/cleanable/blood/gibs/old
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target, origin)
return
/obj/effect/decal/cleanable/blood/gibs/Crossed(mob/living/L)
@@ -47,7 +47,7 @@
. = ..()
setDir(pick(GLOB.cardinals))
/obj/effect/decal/cleanable/glass/ex_act()
/obj/effect/decal/cleanable/glass/ex_act(severity, target, origin)
qdel(src)
/obj/effect/decal/cleanable/glass/wave_ex_act(power, datum/wave_explosion/explosion, dir)
@@ -32,7 +32,7 @@
if (!step_to(src, get_step(src, direction), 0))
break
/obj/effect/decal/cleanable/robot_debris/ex_act()
/obj/effect/decal/cleanable/robot_debris/ex_act(severity, target, origin)
return
/obj/effect/decal/cleanable/robot_debris/limb
+1 -1
View File
@@ -17,7 +17,7 @@
/obj/effect/decal/proc/NeverShouldHaveComeHere(turf/T)
return isclosedturf(T) || isgroundlessturf(T)
/obj/effect/decal/ex_act(severity, target)
/obj/effect/decal/ex_act(severity, target, origin)
qdel(src)
/obj/effect/decal/fire_act(exposed_temperature, exposed_volume)
+2 -2
View File
@@ -30,7 +30,7 @@
/obj/effect/experience_pressure_difference()
return
/obj/effect/ex_act(severity, target)
/obj/effect/ex_act(severity, target, origin)
if(target == src)
qdel(src)
else
@@ -51,7 +51,7 @@
/obj/effect/ConveyorMove()
return
/obj/effect/abstract/ex_act(severity, target)
/obj/effect/abstract/ex_act(severity, target, origin)
return
/obj/effect/abstract/singularity_pull()
+1 -1
View File
@@ -11,7 +11,7 @@
return
// Please stop bombing the Observer-Start landmark.
/obj/effect/landmark/ex_act()
/obj/effect/landmark/ex_act(severity, target, origin)
return
/obj/effect/landmark/singularity_pull()
@@ -25,7 +25,7 @@
/obj/effect/temp_visual/singularity_pull()
return
/obj/effect/temp_visual/ex_act()
/obj/effect/temp_visual/ex_act(severity, target, origin)
return
/obj/effect/temp_visual/dir_setting
+1 -1
View File
@@ -95,7 +95,7 @@
/obj/item/wallframe/apc/try_build(turf/on_wall, user)
if(!..())
return
var/turf/T = get_turf(on_wall) //the user is not where it needs to be.
var/turf/T = get_turf(user)
var/area/A = get_area(T)
if(A.get_apc())
to_chat(user, "<span class='warning'>This area already has an APC!</span>")
+1 -1
View File
@@ -266,7 +266,7 @@
/obj/effect/chrono_field/singularity_pull()
return
/obj/effect/chrono_field/ex_act()
/obj/effect/chrono_field/ex_act(severity, target, origin)
return
/obj/effect/chrono_field/blob_act(obj/structure/blob/B)
+2
View File
@@ -763,6 +763,8 @@
if(isobj(target))
if(actually_paints)
if(istype(target, /obj/item/canvas)) //dont color our canvas neon green when im trying to paint please
return
var/list/hsl = rgb2hsl(hex2num(copytext(paint_color,2,4)),hex2num(copytext(paint_color,4,6)),hex2num(copytext(paint_color,6,8)))
var/static/whitelisted = typecacheof(list(/obj/structure/window,
/obj/effect/decal/cleanable/crayon,
@@ -144,8 +144,8 @@
/obj/effect/dummy/chameleon/attack_alien()
master.disrupt()
/obj/effect/dummy/chameleon/ex_act(S, T)
contents_explosion(S, T)
/obj/effect/dummy/chameleon/ex_act(severity, target, origin)
contents_explosion(severity, target, origin)
master.disrupt()
/obj/effect/dummy/chameleon/bullet_act()
@@ -14,7 +14,7 @@
attack_verb = list("blown up", "exploded", "detonated")
custom_materials = list(/datum/material/iron=50, /datum/material/glass=30)
/obj/item/doorCharge/ex_act(severity, target)
/obj/item/doorCharge/ex_act(severity, target, origin)
switch(severity)
if(EXPLODE_DEVASTATE)
visible_message("<span class='warning'>[src] detonates!</span>")
@@ -27,7 +27,7 @@
QDEL_NULL(beaker)
return ..()
/obj/item/storage/portable_chem_mixer/ex_act(severity, target)
/obj/item/storage/portable_chem_mixer/ex_act(severity, target, origin)
if(severity < 3)
..()
+1 -1
View File
@@ -31,7 +31,7 @@
user.update_inv_hands()
loc.assume_air(air_contents)
/obj/item/latexballon/ex_act(severity, target)
/obj/item/latexballon/ex_act(severity, target, origin)
burst()
switch(severity)
if (1)
+1 -1
View File
@@ -557,7 +557,7 @@
..()
balanced = 0
/obj/item/melee/supermatter_sword/ex_act(severity, target)
/obj/item/melee/supermatter_sword/ex_act(severity, target, origin)
visible_message("<span class='danger'>The blast wave smacks into [src] and rapidly flashes to ash.</span>",\
"<span class='italics'>You hear a loud crack as you are washed with a wave of heat.</span>")
consume_everything()
+1 -1
View File
@@ -54,7 +54,7 @@
/obj/machinery/door/keycard/emp_act(severity)
return
/obj/machinery/door/keycard/ex_act(severity, target)
/obj/machinery/door/keycard/ex_act(severity, target, origin)
return
/obj/machinery/door/keycard/try_to_activate_door(mob/user)
+2 -2
View File
@@ -18,10 +18,10 @@
/obj/item/storage/AllowDrop()
return TRUE
/obj/item/storage/contents_explosion(severity, target)
/obj/item/storage/contents_explosion(severity, target, origin)
var/in_storage = istype(loc, /obj/item/storage)? (max(0, severity - 1)) : (severity)
for(var/atom/A in contents)
A.ex_act(in_storage, target)
A.ex_act(in_storage, target, origin)
CHECK_TICK
//Cyberboss says: "USE THIS TO FILL IT, NOT INITIALIZE OR NEW"
+1 -1
View File
@@ -56,7 +56,7 @@
throwdamage = 0
take_damage(throwdamage, BRUTE, "melee", 1, get_dir(src, AM))
/obj/ex_act(severity, target)
/obj/ex_act(severity, target, origin)
if(resistance_flags & INDESTRUCTIBLE)
return
..() //contents explosion
@@ -554,9 +554,9 @@
if(!QDELETED(lockerelectronics))
lockerelectronics.accesses = req_access
/obj/structure/closet/contents_explosion(severity, target)
/obj/structure/closet/contents_explosion(severity, target, origin)
for(var/atom/A in contents)
A.ex_act(severity, target)
A.ex_act(severity, target, origin)
CHECK_TICK
/obj/structure/closet/singularity_act()
@@ -21,7 +21,7 @@
if(.) //if we actually closed the locker
recursive_organ_check(src)
/obj/structure/closet/secure_closet/freezer/ex_act()
/obj/structure/closet/secure_closet/freezer/ex_act(severity, target, origin)
if(!jones)
jones = TRUE
else
+2 -2
View File
@@ -32,9 +32,9 @@
stored_extinguisher = null
return ..()
/obj/structure/extinguisher_cabinet/contents_explosion(severity, target)
/obj/structure/extinguisher_cabinet/contents_explosion(severity, target, origin)
if(stored_extinguisher)
stored_extinguisher.ex_act(severity, target)
stored_extinguisher.ex_act(severity, target, origin)
/obj/structure/extinguisher_cabinet/handle_atom_del(atom/A)
if(A == stored_extinguisher)
+8 -1
View File
@@ -1,4 +1,4 @@
#define LOG_BURN_TIMER 150
#define LOG_BURN_TIMER 400
#define PAPER_BURN_TIMER 5
#define MAXIMUM_BURN_TIMER 3000
@@ -12,6 +12,7 @@
pixel_x = -16
resistance_flags = FIRE_PROOF
var/lit = FALSE
light_color = "#E38C2D"
var/fuel_added = 0
var/flame_expiry_timer
@@ -64,6 +65,12 @@
</span>")
adjust_fuel_timer(PAPER_BURN_TIMER)
qdel(T)
else if(istype(T,/obj/item/grown/log))
user.visible_message("<span class='notice'>[user] tosses some \
wood into [src].</span>", "<span class='notice'>You add \
some fuel to [src].</span>")
adjust_fuel_timer(LOG_BURN_TIMER)
qdel(T)
else if(try_light(T,user))
return
else
+10
View File
@@ -40,6 +40,16 @@
density = FALSE
pixel_x = -16
/obj/structure/flora/stump/attackby(obj/item/W, mob/user, params)
if((W.tool_behaviour == TOOL_SHOVEL) && params)
playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1)
if(do_after(user, 20))
new /obj/item/grown/log/tree(get_turf(src))
user.visible_message("[user] digs up [src].", "<span class='notice'>You dig up [src].</span>")
qdel(src)
else
return ..()
/obj/structure/flora/tree/pine
name = "pine tree"
desc = "A coniferous pine tree."
+2 -2
View File
@@ -91,9 +91,9 @@
/obj/structure/guncase/handle_atom_del(atom/A)
update_icon()
/obj/structure/guncase/contents_explosion(severity, target)
/obj/structure/guncase/contents_explosion(severity, target, origin)
for(var/atom/A in contents)
A.ex_act(severity++, target)
A.ex_act(severity++, target, origin)
CHECK_TICK
/obj/structure/guncase/shotgun
@@ -9,6 +9,7 @@
icon_state = "randompile"
density = FALSE
anchored = TRUE
max_integrity = 100
var/loot_amount = 5
var/delete_on_depletion = FALSE
var/can_use_hands = TRUE
+1 -1
View File
@@ -249,7 +249,7 @@
P.setAngle(rotation_angle)
return ..()
/obj/structure/reflector/ex_act()
/obj/structure/reflector/ex_act(severity, target, origin)
if(admin)
return
else
+1 -1
View File
@@ -84,7 +84,7 @@ FLOOR SAFES
/obj/structure/safe/blob_act(obj/structure/blob/B)
return
/obj/structure/safe/ex_act(severity, target)
/obj/structure/safe/ex_act(severity, target, origin)
if(((severity == 2 && target == src) || severity == 1) && explosion_count < BROKEN_THRESHOLD)
explosion_count++
switch(explosion_count)
@@ -50,14 +50,14 @@
empty_pod(location)
qdel(src)
/obj/structure/transit_tube_pod/ex_act(severity, target)
/obj/structure/transit_tube_pod/ex_act(severity, target, origin)
..()
if(!QDELETED(src))
empty_pod()
/obj/structure/transit_tube_pod/contents_explosion(severity, target)
/obj/structure/transit_tube_pod/contents_explosion(severity, target, origin)
for(var/atom/movable/AM in contents)
AM.ex_act(severity, target)
AM.ex_act(severity, target, origin)
/obj/structure/transit_tube_pod/singularity_pull(S, current_size)
..()
+1
View File
@@ -70,6 +70,7 @@
icon_state = "wood"
baseturfs = /turf/closed/indestructible/wood
smooth = SMOOTH_TRUE
canSmoothWith = list(/obj/structure/falsewall/wood, /turf/closed/wall/mineral/wood, /turf/closed/indestructible/wood)
/turf/closed/indestructible/oldshuttle/corner
icon_state = "corner"
+1 -1
View File
@@ -72,7 +72,7 @@
if(mapload && prob(66)) // 2/3 instead of 1/3 (default)
MakeDirty()
/turf/open/floor/ex_act(severity, target)
/turf/open/floor/ex_act(severity, target, origin)
var/shielded = is_shielded()
..()
if(severity != 1 && shielded && target != src)
+1 -1
View File
@@ -195,7 +195,7 @@
return TRUE
return FALSE
/turf/open/floor/plating/foam/ex_act()
/turf/open/floor/plating/foam/ex_act(severity, target, origin)
..()
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
@@ -89,7 +89,7 @@
for(var/obj/item/stack/ore/O in src)
SEND_SIGNAL(W, COMSIG_PARENT_ATTACKBY, O)
/turf/open/floor/plating/asteroid/ex_act(severity, target)
/turf/open/floor/plating/asteroid/ex_act(severity, target, origin)
. = SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target)
contents_explosion(severity, target)
@@ -120,7 +120,7 @@
/turf/open/floor/plating/beach/try_replace_tile(obj/item/stack/tile/T, mob/user, params)
return
/turf/open/floor/plating/beach/ex_act(severity, target)
/turf/open/floor/plating/beach/ex_act(severity, target, origin)
contents_explosion(severity, target)
/turf/open/floor/plating/beach/sand
@@ -53,7 +53,7 @@
acidpwr = min(acidpwr, 50) //we reduce the power so reinf floor never get melted.
. = ..()
/turf/open/floor/engine/ex_act(severity,target)
/turf/open/floor/engine/ex_act(severity,target, origin)
var/shielded = is_shielded()
contents_explosion(severity, target)
if(severity != 1 && shielded && target != src)
+2 -2
View File
@@ -18,8 +18,8 @@
clawfootstep = FOOTSTEP_LAVA
heavyfootstep = FOOTSTEP_LAVA
/turf/open/lava/ex_act(severity, target)
contents_explosion(severity, target)
/turf/open/lava/ex_act(severity, target, origin)
contents_explosion(severity, target, origin)
/turf/open/lava/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
return
+2 -2
View File
@@ -171,7 +171,7 @@
/turf/closed/mineral/acid_melt()
ScrapeAway()
/turf/closed/mineral/ex_act(severity, target)
/turf/closed/mineral/ex_act(severity, target, origin)
..()
switch(severity)
if(3)
@@ -661,7 +661,7 @@
/turf/closed/mineral/strong/acid_melt()
return
/turf/closed/mineral/strong/ex_act(severity, target)
/turf/closed/mineral/strong/ex_act(severity, target, origin)
return
#undef MINING_MESSAGE_COOLDOWN
@@ -272,12 +272,10 @@
icon_state = "map-overspace"
fixed_underlay = list("space"=1)
/turf/closed/wall/mineral/plastitanium/explosive/ex_act(severity)
/turf/closed/wall/mineral/plastitanium/explosive/ex_act(severity, target, origin)
var/datum/explosion/acted_explosion = null
for(var/datum/explosion/E in GLOB.explosions)
if(E.explosion_id == explosion_id)
acted_explosion = E
break
if(istype(origin, /datum/explosion))
acted_explosion = origin
if(acted_explosion && istype(acted_explosion.explosion_source, /obj/item/bombcore))
var/obj/item/bombcore/large/bombcore = new(get_turf(src))
bombcore.detonate()
+2 -2
View File
@@ -80,7 +80,7 @@
if(girder_type)
new /obj/item/stack/sheet/metal(src)
/turf/closed/wall/ex_act(severity, target)
/turf/closed/wall/ex_act(severity, target, origin)
if(target == src)
dismantle_wall(1,1)
return
@@ -88,7 +88,7 @@
if(1)
//SN src = null
var/turf/NT = ScrapeAway()
NT.contents_explosion(severity, target)
NT.contents_explosion(severity, target, origin)
return
if(2)
if (prob(50))
+2 -2
View File
@@ -451,7 +451,7 @@ GLOBAL_LIST_EMPTY(station_turfs)
/turf/proc/is_shielded()
/turf/contents_explosion(severity, target)
/turf/contents_explosion(severity, target, origin)
var/affecting_level
if(severity == 1)
affecting_level = 1
@@ -469,7 +469,7 @@ GLOBAL_LIST_EMPTY(station_turfs)
var/atom/movable/AM = A
if(!AM.ex_check(explosion_id))
continue
A.ex_act(severity, target)
A.ex_act(severity, target, origin)
CHECK_TICK
/turf/wave_ex_act(power, datum/wave_explosion/explosion, dir)