diff --git a/code/datums/components/storage/concrete/bag_of_holding.dm b/code/datums/components/storage/concrete/bag_of_holding.dm index e8d66e394e8..40efc02767d 100644 --- a/code/datums/components/storage/concrete/bag_of_holding.dm +++ b/code/datums/components/storage/concrete/bag_of_holding.dm @@ -31,6 +31,9 @@ M.visible_message("The bluespace collapse crushes the air towards it, pulling [M] towards the ground...") M.Paralyze(5, TRUE, TRUE) //Overrides stun absorbs. T.TerraformTurf(/turf/open/chasm/magic, /turf/open/chasm/magic) + for(var/fabricarea in get_areas(/area/fabric_of_reality)) + var/area/fabric_of_reality/R = fabricarea + R.origin = loccheck for (var/obj/structure/ladder/unbreakable/binary/ladder in GLOB.ladders) ladder.ActivateAlmonds() qdel(A) diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index d5c8a8c8418..6e61e3a90c6 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -137,6 +137,7 @@ has_gravity = TRUE noteleport = TRUE blob_allowed = FALSE + var/turf/origin //CAPTURE THE FLAG diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index fe136774b4a..22474a5cd97 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -424,7 +424,10 @@ var/off_station = 0 var/turf/bomb_location = get_turf(src) var/area/A = get_area(bomb_location) - if(bomb_location && is_station_level(bomb_location.z)) + if(istype(A, /area/fabric_of_reality)) + var/area/fabric_of_reality/fabric = A + new /obj/singularity(fabric.origin, 2000) // Stage five singulo back on the station, as a gift + else if(bomb_location && is_station_level(bomb_location.z)) if(istype(A, /area/space)) off_station = NUKE_NEAR_MISS if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE))) @@ -445,7 +448,13 @@ /obj/machinery/nuclearbomb/proc/really_actually_explode(off_station) Cinematic(get_cinematic_type(off_station),world,CALLBACK(SSticker,/datum/controller/subsystem/ticker/proc/station_explosion_detonation,src)) - INVOKE_ASYNC(GLOBAL_PROC,.proc/KillEveryoneOnZLevel, z) + var/area/A = get_area(src) + if(istype(A, /area/fabric_of_reality)) + var/area/fabric_of_reality/fabric = A + var/turf/T = fabric.origin + INVOKE_ASYNC(GLOBAL_PROC,.proc/KillEveryoneOnZLevel, T.z) + else + INVOKE_ASYNC(GLOBAL_PROC,.proc/KillEveryoneOnZLevel, z) /obj/machinery/nuclearbomb/proc/get_cinematic_type(off_station) if(off_station < 2)