diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index facb89134cd..f86595e2695 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -11744,10 +11744,6 @@ /obj/effect/decal/remains/xeno, /turf/open/floor/grass, /area/wizard_station) -"AG" = ( -/obj/structure/ladder/unbreakable/binary/space, -/turf/open/indestructible/airblock, -/area/fabric_of_reality) "AH" = ( /turf/open/floor/plasteel, /area/centcom/supplypod/loading/one) @@ -17034,9 +17030,6 @@ }, /turf/open/floor/wood, /area/centcom/holding) -"MB" = ( -/turf/open/indestructible/binary, -/area/fabric_of_reality) "MD" = ( /obj/effect/light_emitter{ set_cap = 1; @@ -17065,10 +17058,6 @@ }, /turf/open/floor/grass, /area/centcom/holding) -"MH" = ( -/obj/structure/ladder/unbreakable/binary/unlinked, -/turf/open/indestructible/airblock, -/area/fabric_of_reality) "MI" = ( /obj/machinery/light{ dir = 1 @@ -17166,10 +17155,6 @@ "NE" = ( /turf/open/floor/plasteel, /area/centcom/supplypod/podStorage) -"NF" = ( -/obj/structure/ladder/unbreakable/binary, -/turf/open/indestructible/airblock, -/area/fabric_of_reality) "NG" = ( /obj/machinery/door/airlock/centcom{ name = "CentCom Security"; @@ -17456,10 +17441,6 @@ /obj/structure/window/reinforced/fulltile, /turf/open/floor/grass, /area/centcom/holding) -"Qm" = ( -/obj/singularity/wizard/mapped, -/turf/open/indestructible/binary, -/area/fabric_of_reality) "Qq" = ( /obj/structure/cable, /turf/open/floor/plasteel/dark, @@ -17789,9 +17770,6 @@ }, /turf/open/floor/wood, /area/centcom/holding) -"To" = ( -/turf/open/indestructible/airblock, -/area/fabric_of_reality) "Tq" = ( /obj/structure/table/wood/bar, /obj/item/stack/sheet/glass/fifty, @@ -18318,9 +18296,6 @@ }, /turf/open/floor/wood, /area/centcom/holding) -"Zc" = ( -/turf/open/indestructible/binary, -/area/space) "Zh" = ( /obj/effect/turf_decal/tile/green{ dir = 1 @@ -26591,37 +26566,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa jA hH @@ -26848,37 +26823,37 @@ aa aa aa aa -lI -lI -lI -Zc -Zc -Zc -Zc -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa jA hH @@ -27105,37 +27080,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -Zc -Zc -Zc -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -Zc -lI -Zc -Zc -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa jA hH @@ -27362,37 +27337,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -Zc -Zc -Zc -lI -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa jA jA @@ -27619,37 +27594,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -lI -Zc -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -Zc -Zc -Zc -lI -lI -lI -lI -lI -lI -Zc -Zc -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -27876,37 +27851,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -lI -lI -Zc -lI -lI -lI -lI -lI -lI -lI -lI -lI -Zc -lI -lI -lI -lI -lI -lI -lI -lI -Zc -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -28133,37 +28108,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -Zc -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -28390,37 +28365,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -MB -MB -MB -To -To -To -To -To -MH -To -To -To -MB -To -To -To -To -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -28647,37 +28622,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -MB -MB -To -To -To -To -To -To -To -MB -MB -To -To -To -To -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -28904,37 +28879,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -To -MB -MB -To -To -To -To -To -To -MB -To -To -To -To -To -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -29161,37 +29136,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -To -To -MB -MB -To -To -To -To -To -MB -To -To -To -MB -MB -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -29418,37 +29393,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -To -To -To -MB -MB -To -To -MB -MB -MB -To -To -MB -MB -To -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -29675,37 +29650,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -To -To -To -To -MB -MB -To -MB -MB -MB -MB -MB -MB -To -To -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -29932,37 +29907,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -MB -MB -To -To -To -To -To -MB -To -To -MB -To -To -To -To -To -To -lI -lI -lI -Zc -Zc -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -30189,37 +30164,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -MB -To -To -To -To -To -MB -MB -MB -To -To -To -To -To -To -To -lI -lI -Zc -Zc -Zc -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -30446,37 +30421,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -NF -To -To -To -To -To -To -MB -Qm -MB -To -To -To -To -To -To -AG -lI -lI -lI -Zc -Zc -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -30703,37 +30678,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -To -To -MB -MB -MB -MB -To -MB -MB -To -To -To -To -To -To -lI -lI -lI -Zc -Zc -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -30960,37 +30935,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -To -MB -MB -MB -MB -To -To -To -MB -To -To -To -To -To -To -lI -lI -lI -lI -Zc -Zc -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -31217,37 +31192,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -MB -MB -MB -To -To -To -To -To -MB -MB -To -To -To -To -To -lI -lI -lI -lI -lI -Zc -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -31474,37 +31449,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -MB -MB -To -MB -To -To -To -To -To -To -MB -MB -MB -To -To -To -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -31731,37 +31706,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -MB -MB -To -To -MB -MB -To -To -To -To -To -To -To -MB -MB -To -To -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -31988,37 +31963,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -To -MB -MB -MB -To -To -To -To -To -To -To -To -MB -MB -To -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -32245,37 +32220,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -To -MB -To -To -To -To -To -To -To -To -To -To -To -MB -MB -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -32502,37 +32477,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -To -To -To -MB -To -To -To -To -To -MB -To -To -To -To -To -To -MB -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -32759,37 +32734,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -33016,37 +32991,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -33273,37 +33248,37 @@ aa aa aa aa -lI -lI -lI -lI -Zc -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -33530,37 +33505,37 @@ aa aa aa aa -lI -lI -lI -Zc -Zc -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -Zc -lI -lI -lI -lI -lI -lI -lI -lI -lI -Zc -Zc -Zc -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -33787,37 +33762,37 @@ aa aa aa aa -lI -lI -lI -Zc -Zc -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -Zc -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -34044,37 +34019,37 @@ aa aa aa aa -lI -lI -lI -lI -Zc -lI -lI -lI -lI -lI -lI -Zc -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -34301,37 +34276,37 @@ aa aa aa aa -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI -lI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index b792671dc15..7556a482d07 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -62,6 +62,7 @@ #define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" #define ADMIN_VERBOSEJMP(src) "[src ? "[AREACOORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" #define ADMIN_INDIVIDUALLOG(user) "(LOGS)" +#define ADMIN_RETRIEVE_BOH_ITEMS(boh) "(RETRIEVE CONSUMED ITEMS)" #define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt" #define ADMIN_PUNISHMENT_BRAINDAMAGE "Brain damage" @@ -87,4 +88,4 @@ #define POLICY_POLYMORPH "polymorph" //Shown to vicitm of staff of change and related effects. -#define POLICY_VERB_HEADER "policy_verb_header" //Shown on top of policy verb window \ No newline at end of file +#define POLICY_VERB_HEADER "policy_verb_header" //Shown on top of policy verb window diff --git a/code/datums/components/stationloving.dm b/code/datums/components/stationloving.dm index 5eee8ec50e4..51d67e10e20 100644 --- a/code/datums/components/stationloving.dm +++ b/code/datums/components/stationloving.dm @@ -56,7 +56,7 @@ /datum/component/stationloving/proc/in_bounds() var/static/list/allowed_shuttles = typecacheof(list(/area/shuttle/syndicate, /area/shuttle/escape, /area/shuttle/pod_1, /area/shuttle/pod_2, /area/shuttle/pod_3, /area/shuttle/pod_4)) - var/static/list/disallowed_centcom_areas = typecacheof(list(/area/abductor_ship, /area/fabric_of_reality, /area/awaymission/errorroom)) + var/static/list/disallowed_centcom_areas = typecacheof(list(/area/abductor_ship, /area/awaymission/errorroom)) var/turf/T = get_turf(parent) if (!T) return FALSE diff --git a/code/datums/components/storage/concrete/bag_of_holding.dm b/code/datums/components/storage/concrete/bag_of_holding.dm index c3ac69f17f4..6e73a52d49c 100644 --- a/code/datums/components/storage/concrete/bag_of_holding.dm +++ b/code/datums/components/storage/concrete/bag_of_holding.dm @@ -13,8 +13,6 @@ user.visible_message("An unseen force knocks [user] to the ground!", "\"I think not!\"") user.Paralyze(60) return - if(istype(loccheck.loc, /area/fabric_of_reality)) - to_chat(user, "You can't do that here!") to_chat(user, "The Bluespace interfaces of the two devices catastrophically malfunction!") qdel(W) playsound(loccheck,'sound/effects/supermatter.ogg', 200, 1) @@ -23,19 +21,7 @@ log_game("[key_name(user)] detonated a bag of holding at [loc_name(loccheck)].") user.gib(TRUE, TRUE, TRUE) - for(var/turf/T in range(6,loccheck)) - if(istype(T, /turf/open/space/transit)) - continue - for(var/mob/living/M in T) - if(M.movement_type & FLYING) - 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() + new/obj/singularity/boh_tear(loccheck) qdel(A) return . = ..() diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index 2f976a71e5e..8d85885d2f6 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -138,14 +138,6 @@ name = "Syndicate Elite Squad" icon_state = "syndie-elite" -/area/fabric_of_reality - name = "Tear in the Fabric of Reality" - requires_power = FALSE - has_gravity = TRUE - noteleport = TRUE - blob_allowed = FALSE - var/turf/origin - //CAPTURE THE FLAG /area/ctf diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index d7a5a55ec74..0c21538cebe 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -181,51 +181,3 @@ break // break if both our connections are filled update_icon() - -/obj/structure/ladder/unbreakable/binary - name = "mysterious ladder" - desc = "Where does it go?" - height = 0 - id = "lavaland_binary" - var/area_to_place = /area/lavaland/surface/outdoors - var/active = FALSE - -/obj/structure/ladder/unbreakable/binary/proc/ActivateAlmonds() - if(area_to_place && !active) - var/turf/T = getTargetTurf() - if(T) - var/obj/structure/ladder/unbreakable/U = new (T) - U.id = id - U.height = height+1 - LateInitialize() // LateInit both of these to build the links. It's fine. - U.LateInitialize() - for(var/turf/TT in range(2,U)) - TT.TerraformTurf(/turf/open/indestructible/binary, /turf/open/indestructible/binary, CHANGETURF_INHERIT_AIR) - active = TRUE - -/obj/structure/ladder/unbreakable/binary/proc/getTargetTurf() - var/list/turfList = get_area_turfs(area_to_place) - while (turfList.len && !.) - var/i = rand(1, turfList.len) - var/turf/potentialTurf = turfList[i] - if (is_centcom_level(potentialTurf.z)) // These ladders don't lead to centcom. - turfList.Cut(i,i+1) - continue - if(!istype(potentialTurf, /turf/open/lava) && !potentialTurf.density) // Or inside dense turfs or lava - var/clear = TRUE - for(var/obj/O in potentialTurf) // Let's not place these on dense objects either. Might be funny though. - if(O.density) - clear = FALSE - break - if(clear) - . = potentialTurf - if (!.) - turfList.Cut(i,i+1) - -/obj/structure/ladder/unbreakable/binary/space - id = "space_binary" - area_to_place = /area/space - -/obj/structure/ladder/unbreakable/binary/unlinked //Crew gets to complete one - id = "unlinked_binary" - area_to_place = null diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index 0a7b5074886..6d5333822b6 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -100,19 +100,3 @@ underlay_appearance.icon = 'icons/turf/floors.dmi' underlay_appearance.icon_state = "dirt" return TRUE - -//For Bag of Holding Bombs - -/turf/open/chasm/magic - name = "tear in the fabric of reality" - desc = "Where does it lead?" - icon = 'icons/turf/floors/magic_chasm.dmi' - baseturfs = /turf/open/chasm/magic - light_range = 1.9 - light_power = 0.65 - -/turf/open/chasm/magic/Initialize() - . = ..() - var/turf/T = safepick(get_area_turfs(/area/fabric_of_reality)) - if(T) - set_target(T) \ No newline at end of file diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 300e3f0f7b6..393799dd0fa 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1790,7 +1790,7 @@ log_query_debug("[usr.key] | [response]") else if(answer == "no") log_query_debug("[usr.key] | Reported no server hang") - + else if(href_list["ctf_toggle"]) if(!check_rights(R_ADMIN)) return @@ -1804,12 +1804,12 @@ return if(confirm == "Yes") restart() - + else if(href_list["check_teams"]) if(!check_rights(R_ADMIN)) return check_teams() - + else if(href_list["team_command"]) if(!check_rights(R_ADMIN)) return @@ -1909,6 +1909,19 @@ else if(href_list["beakerpanel"]) beaker_panel_act(href_list) + else if(href_list["retrieveboh"]) + var/obj/singularity/boh_tear/tear = locate(href_list["retrieveboh"]) + if(!tear) + to_chat(usr, "Either items were already retrieved or 10 minutes have passed and they were deleted.") + return + var/confirm = alert("This will teleport all items consumed to the BoH tear back to the BoH tear original location, and delete the BoH if it still exists. Are you sure?", "Confirm Damage Control", "Yes", "No") + if(confirm != "Yes") + return + var/turf/T = get_turf(tear.old_loc) + message_admins("The items consumed by the BoH tear at [ADMIN_VERBOSEJMP(T)] were retrieved by [key_name_admin(usr)].") + tear.investigate_log("Items consumed at [AREACOORD(T)] retrieved by [key_name(usr)].", INVESTIGATE_SINGULO) + tear.retrieve_consumed_items() + /datum/admins/proc/HandleCMode() if(!check_rights(R_ADMIN)) return diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index fe5efa59b81..ae13110ec34 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -424,10 +424,8 @@ var/off_station = 0 var/turf/bomb_location = get_turf(src) var/area/A = get_area(bomb_location) - 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(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))) @@ -448,13 +446,7 @@ /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)) - 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) + INVOKE_ASYNC(GLOBAL_PROC,.proc/KillEveryoneOnZLevel, z) /obj/machinery/nuclearbomb/proc/get_cinematic_type(off_station) if(off_station < 2) diff --git a/code/modules/power/singularity/boh_tear.dm b/code/modules/power/singularity/boh_tear.dm new file mode 100644 index 00000000000..684776d8485 --- /dev/null +++ b/code/modules/power/singularity/boh_tear.dm @@ -0,0 +1,72 @@ +/// BoH tear +/// The BoH tear is a stationary singularity with a really high gravitational pull, which collapses briefly after being created +/// The BoH isn't deleted for 10 minutes (only moved to nullspace) so that admins may retrieve the things back in case of a grief +/obj/singularity/boh_tear + name = "tear in the fabric of reality" + desc = "Your own comprehension of reality starts bending as you stare this." + icon = 'icons/effects/96x96.dmi' + icon_state = "boh_tear" + pixel_x = -32 + pixel_y = -32 + dissipate = 0 + move_self = 0 + consume_range = 1 + grav_pull = 25 + current_size = STAGE_SIX + allowed_size = STAGE_SIX + var/ghosts = list() + var/old_loc + +/obj/singularity/boh_tear/Initialize() + . = ..() + old_loc = loc + addtimer(CALLBACK(src, /atom/movable.proc/moveToNullspace), 5 SECONDS) // vanishes after 5 seconds + QDEL_IN(src, 10 MINUTES) + +/// Retrieve all the items consumed +/obj/singularity/boh_tear/proc/retrieve_consumed_items() + for(var/atom/movable/content in contents) + content.forceMove(old_loc) + if(ismob(content)) + var/mob/M = content + if(!M.mind) + continue + for(var/mob/dead/observer/ghost in ghosts) + if(ghost.mind == M.mind) + ghosts -= ghost + ghost.can_reenter_corpse = TRUE + ghost.reenter_corpse() + break + qdel(src) + +/obj/singularity/boh_tear/process() + eat() + +/obj/singularity/boh_tear/consume(atom/A) + if(isturf(A)) + A.singularity_act() + return + var/atom/movable/AM = A + if(!istype(AM)) + return + if(isliving(AM)) + var/mob/living/M = AM + var/turf/T = get_turf(src) + investigate_log("([key_name(A)]) has been consumed by the BoH tear at [AREACOORD(T)].", INVESTIGATE_SINGULO) + M.ghostize(FALSE) + else if(!isobj(AM)) + return + AM.forceMove(src) + +/obj/singularity/boh_tear/admin_investigate_setup() + var/turf/T = get_turf(src) + message_admins("A BoH tear has been created at [ADMIN_VERBOSEJMP(T)]. [ADMIN_RETRIEVE_BOH_ITEMS(src)]") + investigate_log("was created at [AREACOORD(T)].", INVESTIGATE_SINGULO) + +/obj/singularity/boh_tear/attack_tk(mob/living/user) + if(!istype(user)) + return + to_chat(user, "You don't feel like you are real anymore.") + user.dust_animation() + user.spawn_dust() + addtimer(CALLBACK(src, .proc/consume, user), 5) diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index 37709f4090f..3ec7701d095 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ diff --git a/icons/turf/floors/magic_chasm.dmi b/icons/turf/floors/magic_chasm.dmi deleted file mode 100644 index 41c9326ffc4..00000000000 Binary files a/icons/turf/floors/magic_chasm.dmi and /dev/null differ diff --git a/tgstation.dme b/tgstation.dme index e747e1e4d4b..4a7f7743860 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2391,6 +2391,7 @@ #include "code\modules\power\terminal.dm" #include "code\modules\power\tracker.dm" #include "code\modules\power\turbine.dm" +#include "code\modules\power\singularity\boh_tear.dm" #include "code\modules\power\singularity\collector.dm" #include "code\modules\power\singularity\containment_field.dm" #include "code\modules\power\singularity\emitter.dm"