diff --git a/baystation12.dme b/baystation12.dme index b0d17f9b35..31e244474c 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -266,6 +266,7 @@ #include "code\game\gamemodes\cult\cult_items.dm" #include "code\game\gamemodes\cult\cult_structures.dm" #include "code\game\gamemodes\cult\hell_universe.dm" +#include "code\game\gamemodes\cult\narsie.dm" #include "code\game\gamemodes\cult\ritual.dm" #include "code\game\gamemodes\cult\runes.dm" #include "code\game\gamemodes\cult\talisman.dm" @@ -1424,7 +1425,6 @@ #include "code\modules\power\singularity\field_generator.dm" #include "code\modules\power\singularity\generator.dm" #include "code\modules\power\singularity\investigate.dm" -#include "code\modules\power\singularity\narsie.dm" #include "code\modules\power\singularity\singularity.dm" #include "code\modules\power\singularity\particle_accelerator\particle.dm" #include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" diff --git a/code/TriDimension/controller.dm b/code/TriDimension/controller.dm index a9d4df675a..7feed3ed09 100644 --- a/code/TriDimension/controller.dm +++ b/code/TriDimension/controller.dm @@ -92,16 +92,6 @@ turf += src c.add(turf,3,1) -/turf/space/New() - ..() - - var/turf/controller = locate(1, 1, z) - for(var/obj/effect/landmark/zcontroller/c in controller) - if(c.initialized) - var/list/turf = list() - turf += src - c.add(turf,3,1) - atom/movable/Move() //Hackish . = ..() diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 7484d016b6..55b1b23a9f 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -19,6 +19,8 @@ var/global/list/side_effects = list() //list of all medical sideeffects types var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking. var/global/list/joblist = list() //list of all jobstypes, minus borg and AI +var/global/list/turfs = list() //list of all turfs + //Languages/species/whitelist. var/global/list/all_species[0] var/global/list/all_languages[0] diff --git a/code/game/gamemodes/cult/cultify/turf.dm b/code/game/gamemodes/cult/cultify/turf.dm index 0005298c42..54fc9631e3 100644 --- a/code/game/gamemodes/cult/cultify/turf.dm +++ b/code/game/gamemodes/cult/cultify/turf.dm @@ -23,6 +23,9 @@ /turf/simulated/wall/cult/cultify() return +/turf/unsimulated/wall/cult/cultify() + return + /turf/unsimulated/beach/cultify() return diff --git a/code/game/gamemodes/cult/hell_universe.dm b/code/game/gamemodes/cult/hell_universe.dm index 9a7344f036..e81a6a2673 100644 --- a/code/game/gamemodes/cult/hell_universe.dm +++ b/code/game/gamemodes/cult/hell_universe.dm @@ -33,51 +33,46 @@ In short: /datum/universal_state/hell/OnTurfChange(var/turf/T) - var/turf/space/spess = T - if(istype(spess)) - spess.overlays += "hell01" + var/turf/space/S = T + if(istype(S)) + S.color = "#FF0000" + else + S.color = initial(S.color) // Apply changes when entering state /datum/universal_state/hell/OnEnter() set background = 1 garbage_collector.garbage_collect = 0 + escape_list = get_area_turfs(locate(/area/hallway/secondary/exit)) //Separated into separate procs for profiling AreaSet() - OverlaySet() MiscSet() APCSet() KillMobs() - AmbientSet() + OverlayAndAmbientSet() runedec += 9000 //basically removing the rune cap -/datum/universal_state/hell/proc/AreaSet() - for(var/area/A in world) - if(A.name=="Space") - continue - // Reset all alarms. - A.fire = null - A.atmos = 1 - A.atmosalm = 0 - A.poweralm = 1 - A.party = null +/datum/universal_state/hell/proc/AreaSet() + for(var/area/A in all_areas) + if(!istype(A,/area) || istype(A, /area/space)) + continue A.updateicon() -/datum/universal_state/hell/proc/OverlaySet() - var/image/I = image("icon" = 'icons/turf/space.dmi', "icon_state" = "hell01", "layer" = 10) - for(var/turf/space/spess in world) - spess.overlays += I +/datum/universal_state/hell/OverlayAndAmbientSet() + spawn(0) + for(var/atom/movable/lighting_overlay/L in world) + L.update_lumcount(1, 0, 0) -/datum/universal_state/hell/proc/AmbientSet() - for(var/atom/movable/lighting_overlay/L in world) - L.update_lumcount(1, 0, 0) + for(var/turf/space/T in turfs) + OnTurfChange(T) /datum/universal_state/hell/proc/MiscSet() - for(var/turf/simulated/floor/T in world) + for(var/turf/simulated/floor/T in turfs) if(!T.holy && prob(1)) new /obj/effect/gateway/active/cult(T) @@ -87,7 +82,7 @@ In short: /datum/universal_state/hell/proc/APCSet() for (var/obj/machinery/power/apc/APC in machines) - if (!(APC.stat & BROKEN) && !istype(APC.area,/area/turret_protected/ai)) + if (!(APC.stat & BROKEN) && !APC.is_critical) APC.chargemode = 0 if(APC.cell) APC.cell.charge = 0 diff --git a/code/modules/power/singularity/narsie.dm b/code/game/gamemodes/cult/narsie.dm similarity index 91% rename from code/modules/power/singularity/narsie.dm rename to code/game/gamemodes/cult/narsie.dm index 094915047b..0ef0d27663 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/game/gamemodes/cult/narsie.dm @@ -1,4 +1,5 @@ var/global/narsie_behaviour = "CultStation13" +var/global/narsie_cometh = 0 var/global/list/narsie_list = list() /obj/singularity/narsie //Moving narsie to its own file for the sake of being clearer name = "Nar-Sie" @@ -37,7 +38,7 @@ var/global/list/narsie_list = list() current_size = 12 consume_range = 12 // How many tiles out do we eat. var/announce=1 - var/narnar = 1 + var/cause_hell = 1 /obj/singularity/narsie/large/New() ..() @@ -47,13 +48,15 @@ var/global/list/narsie_list = list() narsie_spawn_animation() - if(narnar) - SetUniversalState(/datum/universal_state/hell) + if(!narsie_cometh)//so we don't initiate Hell more than one time. + if(cause_hell) + SetUniversalState(/datum/universal_state/hell) + narsie_cometh = 1 - spawn(10 SECONDS) - if(emergency_shuttle && emergency_shuttle.can_call()) - emergency_shuttle.call_evac() - emergency_shuttle.launch_time = 0 // Cannot recall + spawn(10 SECONDS) + if(emergency_shuttle) + emergency_shuttle.call_evac() + emergency_shuttle.launch_time = 0 // Cannot recall /obj/singularity/narsie/process() eat() @@ -83,14 +86,14 @@ var/global/list/narsie_list = list() /obj/singularity/narsie/large/Bump(atom/A) - if(!narnar) return + if(!cause_hell) return if(isturf(A)) narsiewall(A) else if(istype(A, /obj/structure/cult)) qdel(A) /obj/singularity/narsie/large/Bumped(atom/A) - if(!narnar) return + if(!cause_hell) return if(isturf(A)) narsiewall(A) else if(istype(A, /obj/structure/cult)) diff --git a/code/game/gamemodes/endgame/endgame.dm b/code/game/gamemodes/endgame/endgame.dm index ed1167dfe7..aef7894800 100644 --- a/code/game/gamemodes/endgame/endgame.dm +++ b/code/game/gamemodes/endgame/endgame.dm @@ -60,6 +60,9 @@ /datum/universal_state/proc/OnTurfChange(var/turf/NT) return +/datum/universal_state/proc/OverlayAndAmbientSet() + return + /proc/SetUniversalState(var/newstate,var/on_exit=1, var/on_enter=1) if(on_exit) universe.OnExit() diff --git a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm index dc315ac510..2f12370f58 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/blob.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/blob.dm @@ -8,7 +8,7 @@ //luminosity = 5 //l_color="#0066FF" - layer = 11 + layer = LIGHTING_LAYER+1 var/spawned=0 // DIR mask var/next_check=0 @@ -50,10 +50,10 @@ if(A) if(istype(A,/mob/living)) qdel(A) - continue else if(istype(A,/mob)) // Observers, AI cameras. continue - qdel(A) + else + qdel(A) T.ChangeTurf(type) if((spawned & (NORTH|SOUTH|EAST|WEST)) == (NORTH|SOUTH|EAST|WEST)) diff --git a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm index 8c826fe22d..fb4888ee20 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm @@ -8,9 +8,9 @@ move_self = 0 announce=0 - narnar=0 + cause_hell=0 - layer=12 // ITS SO BRIGHT + layer=LIGHTING_LAYER+2 // ITS SO BRIGHT consume_range = 6 @@ -35,7 +35,17 @@ return 0 if (istype(A, /mob/living/)) + var/mob/living/L = A + if(L.buckled && istype(L.buckled,/obj/structure/bed/)) + var/turf/O = L.buckled + do_teleport(O, pick(endgame_safespawns)) + L.loc = O.loc + else + do_teleport(L, pick(endgame_safespawns)) //dead-on precision + + else if (istype(A, /obj/mecha/)) do_teleport(A, pick(endgame_safespawns)) //dead-on precision + else if (isturf(A)) var/turf/T = A var/dist = get_dist(T, src) @@ -51,6 +61,9 @@ continue if (dist > consume_range) + if(!(AM.singuloCanEat())) + continue + if (101 == AM.invisibility) continue @@ -63,19 +76,19 @@ var/image/riftimage = null /mob/proc/see_rift(var/obj/singularity/narsie/large/exit/R) - if((R.z == src.z) && (get_dist(R,src) <= (R.consume_range+10)) && !(R in view(src))) + var/turf/T_mob = get_turf(src) + if((R.z == T_mob.z) && (get_dist(R,T_mob) <= (R.consume_range+10)) && !(R in view(T_mob))) if(!riftimage) - riftimage = image('icons/obj/rift.dmi',src.loc,"rift",12,1) + riftimage = image('icons/obj/rift.dmi',T_mob,"rift",LIGHTING_LAYER+2,1) riftimage.mouse_opacity = 0 - var/new_x = 32 * (R.x - src.x) + R.pixel_x - var/new_y = 32 * (R.y - src.y) + R.pixel_y + var/new_x = 32 * (R.x - T_mob.x) + R.pixel_x + var/new_y = 32 * (R.y - T_mob.y) + R.pixel_y riftimage.pixel_x = new_x riftimage.pixel_y = new_y - riftimage.loc = src.loc + riftimage.loc = T_mob src << riftimage - else if(riftimage) qdel(riftimage) diff --git a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm index 37b68340a8..8cd8765cd8 100644 --- a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm +++ b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm @@ -1,3 +1,5 @@ +var/global/universe_has_ended = 0 + /datum/universal_state/supermatter_cascade name = "Supermatter Cascade" @@ -11,9 +13,11 @@ return 0 /datum/universal_state/supermatter_cascade/OnTurfChange(var/turf/T) - var/turf/space/spess = T - if(istype(spess)) - spess.overlays += "end01" + var/turf/space/S = T + if(istype(S)) + S.color = "#0066FF" + else + S.color = initial(S.color) /datum/universal_state/supermatter_cascade/DecayTurf(var/turf/T) if(istype(T,/turf/simulated/wall)) @@ -46,13 +50,13 @@ emergency_shuttle.recall() AreaSet() - OverlaySet() MiscSet() APCSet() - AmbientSet() + OverlayAndAmbientSet() // Disable Nar-Sie. cult.allow_narsie = 0 + PlayerSet() new /obj/singularity/narsie/large/exit(pick(endgame_exits)) @@ -64,64 +68,49 @@ There's been a galaxy-wide electromagnetic pulse. All of our systems are heavil You have five minutes before the universe collapses. Good l\[\[###!!!- -AUTOMATED ALERT: Link to [command_name()] lost."} +AUTOMATED ALERT: Link to [command_name()] lost. + +The access requirements on the Asteroid Shuttles' consoles have now been revoked. +"} priority_announcement.Announce(txt,"SUPERMATTER CASCADE DETECTED") + + for(var/obj/machinery/computer/shuttle_control/C in machines) + if(istype(C, /obj/machinery/computer/shuttle_control/research) || istype(C, /obj/machinery/computer/shuttle_control/mining)) + C.req_access = list() + C.req_one_access = list() + sleep(5 MINUTES) - ticker.declare_completion() ticker.station_explosion_cinematic(0,null) // TODO: Custom cinematic - world << "Resetting in 30 seconds!" - - feedback_set_details("end_error","Universe ended") - - if(blackbox) - blackbox.save_all_data_to_sql() - - sleep(300) - log_game("Rebooting due to universal collapse") - world.Reboot() + universe_has_ended = 1 return /datum/universal_state/supermatter_cascade/proc/AreaSet() - for(var/area/A in world) - if(A.z in config.admin_levels) + for(var/area/A in all_areas) + if(!istype(A,/area) || istype(A, /area/space) || istype(A,/area/beach)) continue - if(istype(A,/area/space)) - continue - - // Reset all alarms. - A.fire = null - A.atmos = 1 - A.atmosalm = 0 - A.poweralm = 1 - - // Slap on random alerts - if(prob(25)) - switch(rand(1,4)) - if(1) - A.fire=1 - if(2) - A.atmosalm=1 A.updateicon() -/datum/universal_state/supermatter_cascade/proc/OverlaySet() - for(var/turf/space/spess in world) - spess.overlays += "end01" +/datum/universal_state/supermatter_cascade/OverlayAndAmbientSet() + spawn(0) + for(var/atom/movable/lighting_overlay/L in world) + if(L.z in config.admin_levels) + L.update_lumcount(1,1,1) + else + L.update_lumcount(0.0, 0.4, 1) -/datum/universal_state/supermatter_cascade/proc/AmbientSet() - for(var/atom/movable/lighting_overlay/L in world) - if(!(L.z in config.admin_levels)) - L.update_lumcount(0.5, 1, 0) + for(var/turf/space/T in turfs) + OnTurfChange(T) /datum/universal_state/supermatter_cascade/proc/MiscSet() - for (var/obj/machinery/firealarm/alm in world) + for (var/obj/machinery/firealarm/alm in machines) if (!(alm.stat & BROKEN)) alm.ex_act(2) /datum/universal_state/supermatter_cascade/proc/APCSet() - for (var/obj/machinery/power/apc/APC in world) - if (!(APC.stat & BROKEN)) + for (var/obj/machinery/power/apc/APC in machines) + if (!(APC.stat & BROKEN) && !APC.is_critical) APC.chargemode = 0 if(APC.cell) APC.cell.charge = 0 diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 861e3e1271..0b1f24121a 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -312,7 +312,7 @@ var/global/datum/controller/gameticker/ticker game_finished = (emergency_shuttle.returned() || mode.station_was_nuked) mode_finished = (!post_game && mode.check_finished()) else - game_finished = (mode.check_finished() || (emergency_shuttle.returned() && emergency_shuttle.evac == 1)) + game_finished = (mode.check_finished() || (emergency_shuttle.returned() && emergency_shuttle.evac == 1)) || universe_has_ended mode_finished = game_finished if(!mode.explosion_in_progress && game_finished && (mode_finished || post_game)) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index d8db07de58..b3c545053c 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -16,6 +16,7 @@ var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = if(!istype(src, /turf/space/transit)) icon_state = "[((x + y) ^ ~(x * y) + z) % 25]" update_starlight() + ..() /turf/space/proc/update_starlight() if(!config.starlight) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index e5ae4e1bb9..65d9050617 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -40,8 +40,13 @@ spawn( 0 ) src.Entered(AM) return + turfs |= src return +/turf/Destroy() + turfs -= src + ..() + /turf/ex_act(severity) return 0 diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index ffa64ce64f..e780c9fd5d 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2270,14 +2270,14 @@ if("hellonearth") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","NS") - var/choice = input("You sure you want to end the round and summon narsie at your location? Misuse of this could result in removal of flags or halarity.") in list("PRAISE SATAN", "Cancel") + var/choice = input("You sure you want to end the round and summon narsie at your location? Misuse of this could result in removal of flags or hilarity.") in list("PRAISE SATAN", "Cancel") if(choice == "PRAISE SATAN") new /obj/singularity/narsie/large(get_turf(usr)) message_admins("[key_name_admin(usr)] has summoned narsie and brought about a new realm of suffering.") if("supermattercascade") feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","SC") - var/choice = input("You sure you want to destroy the universe and create a large explosion at your location? Misuse of this could result in removal of flags or halarity.") in list("NO TIME TO EXPLAIN", "Cancel") + var/choice = input("You sure you want to destroy the universe and create a large explosion at your location? Misuse of this could result in removal of flags or hilarity.") in list("NO TIME TO EXPLAIN", "Cancel") if(choice == "NO TIME TO EXPLAIN") explosion(get_turf(usr), 8, 16, 24, 32, 1) new /turf/unsimulated/wall/supermatter(get_turf(usr)) diff --git a/code/modules/mob/living/simple_animal/constructs/constructs.dm b/code/modules/mob/living/simple_animal/constructs/constructs.dm index 56746a51d5..7781a26744 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs.dm @@ -240,11 +240,12 @@ ////////////////Glow////////////////// /mob/living/simple_animal/construct/proc/add_glow() overlays = 0 - var/overlay_layer = 11 + var/overlay_layer = LIGHTING_LAYER+0.1 if(layer != MOB_LAYER) overlay_layer=TURF_LAYER+0.2 overlays += image(icon,"glow-[icon_state]",overlay_layer) + set_light(2, -2, l_color = "#FFFFFF") ////////////////HUD////////////////////// diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index a92819606c..8e29e21008 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -214,8 +214,8 @@ /mob/living/simple_animal/hostile/proc/check_horde() if(emergency_shuttle.shuttle.location) if(!enroute && !target_mob) //The shuttle docked, all monsters rush for the escape hallway - if(!shuttletarget || (get_dist(src, shuttletarget) >= 2)) - shuttletarget = pick(escape_list) + if(!shuttletarget && escape_list.len) //Make sure we didn't already assign it a target, and that there are targets to pick + shuttletarget = pick(escape_list) //Pick a shuttle target enroute = 1 stop_automated_movement = 1 spawn() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 37af849947..21f0f6c1a5 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -37,6 +37,8 @@ //NOTE: STUFF STOLEN FROM AIRLOCK.DM thx +/obj/machinery/power/apc/critical + is_critical = 1 /obj/machinery/power/apc/high cell_type = /obj/item/weapon/cell/high @@ -44,8 +46,8 @@ /obj/machinery/power/apc/super cell_type = /obj/item/weapon/cell/super -/obj/machinery/power/apc/super/equipment - equipment = 2 +/obj/machinery/power/apc/super/critical + is_critical = 1 /obj/machinery/power/apc/hyper cell_type = /obj/item/weapon/cell/hyper @@ -94,6 +96,7 @@ var/datum/wires/apc/wires = null var/update_state = -1 var/update_overlay = -1 + var/is_critical = 0 var/global/status_overlays = 0 var/updating_icon = 0 var/global/list/status_overlays_lock diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm index dc8f667a28..3804c1f158 100644 --- a/code/modules/power/singularity/act.dm +++ b/code/modules/power/singularity/act.dm @@ -78,6 +78,9 @@ return 5000 /obj/machinery/power/supermatter/singularity_act() + if(!src.loc) + return + var/prints = "" if(src.fingerprintshidden) prints = ", all touchers : " + src.fingerprintshidden diff --git a/code/setup.dm b/code/setup.dm index 51fd28bc90..815f5b52f3 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -865,6 +865,7 @@ var/list/be_special_flags = list( #define SLIME 16 #define SIMPLE_ANIMAL 32 + #define ALLMOBS (HUMAN|MONKEY|ALIEN|ROBOT|SLIME|SIMPLE_ANIMAL) #define NEXT_MOVE_DELAY 8 @@ -876,6 +877,7 @@ var/list/be_special_flags = list( // Custom layer definitions, supplementing the default TURF_LAYER, MOB_LAYER, etc. #define DOOR_OPEN_LAYER 2.7 //Under all objects if opened. 2.7 due to tables being at 2.6 #define DOOR_CLOSED_LAYER 3.1 //Above most items if closed +#define LIGHTING_LAYER 11 #define OBFUSCATION_LAYER 14 //Where images covering the view for eyes are put #define SCREEN_LAYER 17 //Mob HUD/effects layer diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index acd2f89de6..2b5f781cfb 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -3372,7 +3372,7 @@ "bmR" = (/obj/structure/table/woodentable,/obj/item/device/eftpos{eftpos_name = "Captain EFTPOS scanner"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bmS" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/chainofcommand,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bmT" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/dropper,/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bmU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 1},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc/super/equipment{dir = 1; name = "north bump"; pixel_y = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bmU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 1},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc/super/critical{dir = 1; is_critical = 1; name = "north bump"; pixel_y = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bmV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access = list(6)},/turf/simulated/floor,/area/hallway/primary/starboard) "bmW" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/southright{name = "Research and Development Desk"; req_access = list(7)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/structure/table/plastic{name = "plastic table frame"},/turf/simulated/floor/plating,/area/hallway/primary/starboard) "bmX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_one_access = list(5,12,47)},/turf/simulated/floor/plating,/area/hallway/primary/starboard) @@ -4279,7 +4279,7 @@ "bEo" = (/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) "bEp" = (/obj/machinery/door/airlock/research{name = "Research Shuttle Dock"; req_access = list(65)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) "bEq" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/medical/sleeper) -"bEr" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) +"bEr" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable,/obj/machinery/power/apc/critical{name = "south bump"; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/rnd/docking) "bEs" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/rnd/docking) "bEt" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/medical/sleeper) "bEu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/shuttle/plating,/area/rnd/docking) @@ -4440,7 +4440,7 @@ "bHt" = (/obj/machinery/computer/shuttle_control/research,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/rnd/docking) "bHu" = (/obj/structure/lattice,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/space,/area/space) "bHv" = (/obj/structure/table/standard,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/item/weapon/circuitboard/teleporter,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bHw" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor,/area/quartermaster/miningdock) +"bHw" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc/critical{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor,/area/quartermaster/miningdock) "bHx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/quartermaster/miningdock) "bHy" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_y = 24},/obj/item/weapon/storage/belt/utility,/turf/simulated/floor,/area/quartermaster/miningdock) "bHz" = (/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor,/area/quartermaster/qm) @@ -7121,7 +7121,7 @@ "cGW" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/engineering/engine_room) "cGX" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/plating,/area/engineering/engine_room) "cGY" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/plating{icon_state = "platebotc"},/area/engineering/engine_room) -"cGZ" = (/obj/machinery/light_switch{pixel_x = 12; pixel_y = 25},/obj/machinery/power/apc/super{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/machinery/power/sensor{name = "Powernet Sensor - Engine Power"; name_tag = "Engine Power"},/turf/simulated/floor/plating,/area/engineering/engine_room) +"cGZ" = (/obj/machinery/light_switch{pixel_x = 12; pixel_y = 25},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/machinery/power/sensor{name = "Powernet Sensor - Engine Power"; name_tag = "Engine Power"},/obj/machinery/power/apc/super/critical{dir = 1; is_critical = 1; name = "north bump"; pixel_y = 24},/turf/simulated/floor/plating,/area/engineering/engine_room) "cHa" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/engi_shuttle) "cHb" = (/turf/simulated/floor/plating,/area/engineering/engine_room) "cHc" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/space,/area/space)