From 54881b65e39582a2cefc405db39b7d5cf72de453 Mon Sep 17 00:00:00 2001 From: PrismaticGynoid Date: Sun, 24 Mar 2019 13:54:16 -0700 Subject: [PATCH 01/32] Butcher Shack Adds a butcher shack PoI to the wilderness. --- code/game/objects/random/misc.dm | 19 ++++++++++++++ .../wilderness/butchershack.dmm | 25 +++++++++++++++++++ .../surface_submaps/wilderness/wilderness.dm | 7 ++++++ .../wilderness/wilderness_areas.dm | 4 +++ 4 files changed, 55 insertions(+) create mode 100644 maps/submaps/surface_submaps/wilderness/butchershack.dmm diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index 5b8fc35e3c..6a40ceb659 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -293,6 +293,25 @@ /obj/item/weapon/reagent_containers/food/drinks/bottle/rum, /obj/item/weapon/reagent_containers/food/drinks/bottle/patron) +/obj/random/meat + name = "random meat" + desc = "This is a random slab of meat." + icon = 'icons/obj/food.dmi' + icon_state = "meat" + +/obj/random/meat/item_to_spawn() + return pick(prob(50);/obj/item/weapon/reagent_containers/food/snacks/meat, + prob(5);/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh, + prob(1);/obj/item/weapon/reagent_containers/food/snacks/meat/human, + prob(3);/obj/item/weapon/reagent_containers/food/snacks/meat/monkey, + prob(3);/obj/item/weapon/reagent_containers/food/snacks/meat/corgi, + prob(10);/obj/item/weapon/reagent_containers/food/snacks/bearmeat, + prob(1);/obj/item/weapon/reagent_containers/food/snacks/xenomeat, + prob(20);/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat, + prob(7);/obj/item/weapon/reagent_containers/food/snacks/carpmeat) + + + /obj/random/material //Random materials for building stuff name = "random material" desc = "This is a random material." diff --git a/maps/submaps/surface_submaps/wilderness/butchershack.dmm b/maps/submaps/surface_submaps/wilderness/butchershack.dmm new file mode 100644 index 0000000000..3849a3e0f3 --- /dev/null +++ b/maps/submaps/surface_submaps/wilderness/butchershack.dmm @@ -0,0 +1,25 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/wall/log_sif,/area/submap/ButcherShack) +"c" = (/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"d" = (/obj/structure/kitchenspike,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"e" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"f" = (/obj/structure/closet/crate/freezer,/obj/effect/decal/cleanable/blood/gibs,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/turf/simulated/floor/wood/sif/broken,/area/submap/ButcherShack) +"g" = (/obj/machinery/gibber/autogibber,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"h" = (/turf/simulated/floor/wood/sif/broken,/area/submap/ButcherShack) +"i" = (/obj/effect/wingrille_spawn,/turf/simulated/floor/plating,/area/submap/ButcherShack) +"j" = (/turf/template_noop,/area/submap/ButcherShack) +"k" = (/obj/structure/simple_door/sifwood,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"l" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/submap/ButcherShack) + +(1,1,1) = {" +aaaaaaaaaa +abbbbbbbba +abcddefgba +abhcccccba +abcchcccba +abcccchcba +abbhbiibba +ajbkblllja +ajllllljja +aaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/wilderness/wilderness.dm b/maps/submaps/surface_submaps/wilderness/wilderness.dm index 9338bc08f8..c9acb611c1 100644 --- a/maps/submaps/surface_submaps/wilderness/wilderness.dm +++ b/maps/submaps/surface_submaps/wilderness/wilderness.dm @@ -29,6 +29,7 @@ #include "Manor1.dmm" #include "Epod3.dmm" #include "Epod4.dmm" +#include "ButcherShack.dmm" #endif @@ -223,3 +224,9 @@ desc = "A flooded Emergency pod in the middle of nowhere." mappath = 'maps/submaps/surface_submaps/wilderness/Epod4.dmm' cost = 5 + +/datum/map_template/surface/wilderness/normal/ButcherShack + name = "Butcher Shack" + desc = "An old, bloody butcher's shack. Get your meat here!" + mappath = 'maps/submaps/surface_submaps/wilderness/ButcherShack.dmm' + cost = 5 diff --git a/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm b/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm index 554579e4a4..35ee357200 100644 --- a/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm +++ b/maps/submaps/surface_submaps/wilderness/wilderness_areas.dm @@ -120,3 +120,7 @@ /area/submap/Epod4 name = "Epod4" ambience = AMBIENCE_FOREBODING + +/area/submap/ButcherShack + name = "ButcherShack" + ambience = AMBIENCE_RUINS From 8e51c813136e8c3ec9e1ebcddec486e7d3280717 Mon Sep 17 00:00:00 2001 From: InterroLouis Date: Mon, 1 Apr 2019 04:00:07 -0400 Subject: [PATCH 02/32] Update void.dm --- code/modules/clothing/spacesuits/void/void.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index 4dd21ad3bb..f1d12a9982 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -240,12 +240,12 @@ playsound(src, W.usesound, 50, 1) src.cooler = null else if(choice == helmet) - to_chat(user, "You detatch \the [helmet] from \the [src]'s helmet mount.") + to_chat(user, "You detach \the [helmet] from \the [src]'s helmet mount.") helmet.forceMove(get_turf(src)) playsound(src, W.usesound, 50, 1) src.helmet = null else if(choice == boots) - to_chat(user, "You detatch \the [boots] from \the [src]'s boot mounts.") + to_chat(user, "You detach \the [boots] from \the [src]'s boot mounts.") boots.forceMove(get_turf(src)) playsound(src, W.usesound, 50, 1) src.boots = null @@ -295,4 +295,4 @@ cooler = W return - ..() \ No newline at end of file + ..() From bb10746992c29a8c34b92cb074d73ab946ba8550 Mon Sep 17 00:00:00 2001 From: PrismaticGynoid Date: Wed, 3 Apr 2019 15:34:50 -0700 Subject: [PATCH 03/32] Finish butcher shack --- code/game/objects/random/misc.dm | 18 ++++++------- .../wilderness/butchershack.dmm | 27 +++++++++++++------ 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index 6a40ceb659..0f9f85582f 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -300,17 +300,15 @@ icon_state = "meat" /obj/random/meat/item_to_spawn() - return pick(prob(50);/obj/item/weapon/reagent_containers/food/snacks/meat, - prob(5);/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh, - prob(1);/obj/item/weapon/reagent_containers/food/snacks/meat/human, - prob(3);/obj/item/weapon/reagent_containers/food/snacks/meat/monkey, - prob(3);/obj/item/weapon/reagent_containers/food/snacks/meat/corgi, - prob(10);/obj/item/weapon/reagent_containers/food/snacks/bearmeat, - prob(1);/obj/item/weapon/reagent_containers/food/snacks/xenomeat, + return pick(prob(60);/obj/item/weapon/reagent_containers/food/snacks/meat, prob(20);/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat, - prob(7);/obj/item/weapon/reagent_containers/food/snacks/carpmeat) - - + prob(10);/obj/item/weapon/reagent_containers/food/snacks/carpmeat, + prob(5);/obj/item/weapon/reagent_containers/food/snacks/bearmeat, + prob(1);/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh, + prob(1);/obj/item/weapon/reagent_containers/food/snacks/meat/human, + prob(1);/obj/item/weapon/reagent_containers/food/snacks/meat/monkey, + prob(1);/obj/item/weapon/reagent_containers/food/snacks/meat/corgi, + prob(1);/obj/item/weapon/reagent_containers/food/snacks/xenomeat) /obj/random/material //Random materials for building stuff name = "random material" diff --git a/maps/submaps/surface_submaps/wilderness/butchershack.dmm b/maps/submaps/surface_submaps/wilderness/butchershack.dmm index 3849a3e0f3..4a7386a460 100644 --- a/maps/submaps/surface_submaps/wilderness/butchershack.dmm +++ b/maps/submaps/surface_submaps/wilderness/butchershack.dmm @@ -1,25 +1,36 @@ "a" = (/turf/template_noop,/area/template_noop) "b" = (/turf/simulated/wall/log_sif,/area/submap/ButcherShack) "c" = (/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) -"d" = (/obj/structure/kitchenspike,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"d" = (/obj/structure/closet,/obj/effect/decal/cleanable/cobweb,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/packageWrap,/obj/item/weapon/material/knife/hook,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) "e" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) "f" = (/obj/structure/closet/crate/freezer,/obj/effect/decal/cleanable/blood/gibs,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/obj/random/meat,/turf/simulated/floor/wood/sif/broken,/area/submap/ButcherShack) "g" = (/obj/machinery/gibber/autogibber,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) "h" = (/turf/simulated/floor/wood/sif/broken,/area/submap/ButcherShack) -"i" = (/obj/effect/wingrille_spawn,/turf/simulated/floor/plating,/area/submap/ButcherShack) +"i" = (/obj/structure/window/basic,/obj/structure/curtain,/turf/simulated/floor/wood/sif/broken,/area/submap/ButcherShack) "j" = (/turf/template_noop,/area/submap/ButcherShack) "k" = (/obj/structure/simple_door/sifwood,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) "l" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/submap/ButcherShack) +"m" = (/obj/structure/kitchenspike,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"n" = (/obj/structure/kitchenspike,/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"o" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"p" = (/obj/structure/table/standard,/obj/item/clothing/suit/chef/classic,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"q" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/blood,/obj/item/weapon/material/knife/butch,/turf/simulated/floor/wood/sif/broken,/area/submap/ButcherShack) +"r" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/snacks/cutlet,/obj/item/weapon/reagent_containers/food/snacks/cutlet,/obj/item/weapon/reagent_containers/food/snacks/cutlet,/obj/item/weapon/reagent_containers/food/snacks/sausage,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"s" = (/obj/structure/coatrack,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"t" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) +"u" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/wood/sif/broken,/area/submap/ButcherShack) +"v" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/submap/ButcherShack) +"w" = (/obj/structure/window/basic,/obj/structure/curtain,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) (1,1,1) = {" aaaaaaaaaa abbbbbbbba -abcddefgba -abhcccccba -abcchcccba -abcccchcba -abbhbiibba -ajbkblllja +abdmnefgba +abhcccocba +abcpqrccba +absocchtba +abbubiwbba +ajbkbvvlja ajllllljja aaaaaaaaaa "} From 88fdd3665098e06a597dc1373d8ae7c23f683582 Mon Sep 17 00:00:00 2001 From: PrismaticGynoid Date: Wed, 3 Apr 2019 16:40:43 -0700 Subject: [PATCH 04/32] Travis please --- maps/submaps/surface_submaps/wilderness/butchershack.dmm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/maps/submaps/surface_submaps/wilderness/butchershack.dmm b/maps/submaps/surface_submaps/wilderness/butchershack.dmm index 4a7386a460..d32c35b6da 100644 --- a/maps/submaps/surface_submaps/wilderness/butchershack.dmm +++ b/maps/submaps/surface_submaps/wilderness/butchershack.dmm @@ -9,7 +9,7 @@ "i" = (/obj/structure/window/basic,/obj/structure/curtain,/turf/simulated/floor/wood/sif/broken,/area/submap/ButcherShack) "j" = (/turf/template_noop,/area/submap/ButcherShack) "k" = (/obj/structure/simple_door/sifwood,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) -"l" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/submap/ButcherShack) +"l" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/outdoors/dirt,/area/submap/ButcherShack) "m" = (/obj/structure/kitchenspike,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) "n" = (/obj/structure/kitchenspike,/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) "o" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) @@ -19,7 +19,7 @@ "s" = (/obj/structure/coatrack,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) "t" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) "u" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/wood/sif/broken,/area/submap/ButcherShack) -"v" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/submap/ButcherShack) +"v" = (/turf/simulated/floor/outdoors/dirt,/area/submap/ButcherShack) "w" = (/obj/structure/window/basic,/obj/structure/curtain,/turf/simulated/floor/wood/sif,/area/submap/ButcherShack) (1,1,1) = {" @@ -30,7 +30,7 @@ abhcccocba abcpqrccba absocchtba abbubiwbba -ajbkbvvlja -ajllllljja +ajbkbllvja +ajvvvvvjja aaaaaaaaaa "} From eee108393bc171fff40c1203ad0bdf3d5c12fb4d Mon Sep 17 00:00:00 2001 From: Neerti Date: Fri, 5 Apr 2019 15:07:03 -0400 Subject: [PATCH 05/32] Fixes ghosts being counted as contributors for cataloguers. (#6032) --- code/modules/catalogue/cataloguer.dm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/code/modules/catalogue/cataloguer.dm b/code/modules/catalogue/cataloguer.dm index ba518b1f3d..60e86eadee 100644 --- a/code/modules/catalogue/cataloguer.dm +++ b/code/modules/catalogue/cataloguer.dm @@ -149,12 +149,14 @@ GLOBAL_LIST_EMPTY(all_cataloguers) var/list/contributers = list() var/list/contributer_names = list() for(var/thing in player_list) - var/mob/M = thing - if(M == user) + var/mob/living/L = thing + if(L == user) continue - if(get_dist(M, user) <= credit_sharing_range) - contributers += M - contributer_names += M.name + if(!istype(L)) + continue + if(get_dist(L, user) <= credit_sharing_range) + contributers += L + contributer_names += L.name var/points_gained = 0 From 48aab0c11778899fd93782d216300514a50cf6c6 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 5 Apr 2019 20:22:37 -0400 Subject: [PATCH 06/32] Yellow alert display sprite - Adds new status display icon for yellow alert. --- icons/obj/status_display.dmi | Bin 135699 -> 136702 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/status_display.dmi b/icons/obj/status_display.dmi index 2bda6ad0b57d8fcbe8eede4014b63d9255388f9e..842a379ddceb7d205afab85f1b6b9ca429f0c199 100644 GIT binary patch literal 136702 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ξ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 z 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 z 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 JmFd_;{y&q1GYbF! From 6a2cd30e14c6ab739c21f05a4814339abfa7ba22 Mon Sep 17 00:00:00 2001 From: Neerti Date: Sat, 6 Apr 2019 05:06:14 -0400 Subject: [PATCH 07/32] Replaces AI-controlled Maint Drones with AI-controlled Borg Shells (#6025) * AI shells, some fixes re: Borgs. --- code/__defines/flags.dm | 1 + code/__defines/mobs.dm | 2 + code/_helpers/unsorted.dm | 21 +++ code/controllers/configuration.dm | 10 +- .../emergency_shuttle_controller.dm | 2 + code/datums/soul_link.dm | 156 ++++++++++++++++++ code/game/machinery/computer/ai_core.dm | 4 +- code/game/objects/items/devices/aicard.dm | 21 +-- code/game/objects/items/robot/robot_parts.dm | 57 ++++--- .../objects/items/robot/robot_upgrades.dm | 14 +- code/modules/mob/living/carbon/brain/MMI.dm | 13 ++ code/modules/mob/living/death.dm | 10 +- code/modules/mob/living/silicon/ai/ai.dm | 29 +++- .../living/silicon/ai/ai_remote_control.dm | 62 +++++++ code/modules/mob/living/silicon/ai/death.dm | 4 +- code/modules/mob/living/silicon/ai/examine.dm | 2 + code/modules/mob/living/silicon/ai/life.dm | 6 +- .../living/silicon/robot/custom_sprites.dm | 12 +- .../mob/living/silicon/robot/drone/drone.dm | 63 ++----- .../robot/drone/drone_remote_control.dm | 103 ------------ .../mob/living/silicon/robot/examine.dm | 5 +- code/modules/mob/living/silicon/robot/laws.dm | 26 +-- .../modules/mob/living/silicon/robot/robot.dm | 136 +++++++++------ .../silicon/robot/robot_remote_control.dm | 133 +++++++++++++++ code/modules/research/prosfab_designs.dm | 4 + config/example/config.txt | 10 ++ html/changelogs/Neerti-AI_Shells.yml | 37 +++++ maps/southern_cross/southern_cross-1.dmm | 8 +- polaris.dme | 4 +- 29 files changed, 666 insertions(+), 289 deletions(-) create mode 100644 code/datums/soul_link.dm create mode 100644 code/modules/mob/living/silicon/ai/ai_remote_control.dm delete mode 100644 code/modules/mob/living/silicon/robot/drone/drone_remote_control.dm create mode 100644 code/modules/mob/living/silicon/robot/robot_remote_control.dm create mode 100644 html/changelogs/Neerti-AI_Shells.yml diff --git a/code/__defines/flags.dm b/code/__defines/flags.dm index 18a2ec59ab..64782715d3 100644 --- a/code/__defines/flags.dm +++ b/code/__defines/flags.dm @@ -16,6 +16,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 // datum_flags #define DF_VAR_EDITED (1<<0) #define DF_ISPROCESSING (1<<1) +#define DF_USE_TAG (1<<2) // /atom/movable movement_type #define UNSTOPPABLE (1<<0) //Can not be stopped from moving from Cross(), CanPass(), or Uncross() failing. Still bumps everything it passes through, though. diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 8d85fada63..51039af253 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -87,6 +87,7 @@ #define ROBOT_NOTIFICATION_NEW_NAME 2 #define ROBOT_NOTIFICATION_NEW_MODULE 3 #define ROBOT_NOTIFICATION_MODULE_RESET 4 +#define ROBOT_NOTIFICATION_AI_SHELL 5 // Appearance change flags #define APPEARANCE_UPDATE_DNA 0x1 @@ -259,6 +260,7 @@ #define BORG_BRAINTYPE_CYBORG "Cyborg" #define BORG_BRAINTYPE_POSI "Robot" #define BORG_BRAINTYPE_DRONE "Drone" +#define BORG_BRAINTYPE_AI_SHELL "AI Shell" // 'Regular' species. #define SPECIES_HUMAN "Human" diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 7922e95634..460a1455d5 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -1544,3 +1544,24 @@ var/mob/dview/dview_mob = new if(istype(D)) return !QDELETED(D) return FALSE + +//gives us the stack trace from CRASH() without ending the current proc. +/proc/stack_trace(msg) + CRASH(msg) + +/datum/proc/stack_trace(msg) + CRASH(msg) + +// \ref behaviour got changed in 512 so this is necesary to replicate old behaviour. +// If it ever becomes necesary to get a more performant REF(), this lies here in wait +// #define REF(thing) (thing && istype(thing, /datum) && (thing:datum_flags & DF_USE_TAG) && thing:tag ? "[thing:tag]" : "\ref[thing]") +/proc/REF(input) + if(istype(input, /datum)) + var/datum/thing = input + if(thing.datum_flags & DF_USE_TAG) + if(!thing.tag) + thing.datum_flags &= ~DF_USE_TAG + stack_trace("A ref was requested of an object with DF_USE_TAG set but no tag: [thing]") + else + return "\[[url_encode(thing.tag)]\]" + return "\ref[input]" diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 0fd222044c..5207499b53 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -60,7 +60,8 @@ var/list/gamemode_cache = list() var/humans_need_surnames = 0 var/allow_random_events = 0 // enables random events mid-round when set to 1 var/allow_ai = 1 // allow ai job - var/allow_ai_drones = 0 // allow ai controlled drones + var/allow_ai_shells = FALSE // allow AIs to enter and leave special borg shells at will, and for those shells to be buildable. + var/give_free_ai_shell = FALSE // allows a specific spawner object to instantiate a premade AI Shell var/hostedby = null var/respawn = 1 var/guest_jobban = 1 @@ -410,8 +411,11 @@ var/list/gamemode_cache = list() if ("allow_ai") config.allow_ai = 1 - if ("allow_ai_drones") - config.allow_ai_drones = 1 + if ("allow_ai_shells") + config.allow_ai_shells = TRUE + + if("give_free_ai_shell") + config.give_free_ai_shell = TRUE // if ("authentication") // config.enable_authentication = 1 diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm index bcc7187a3c..5dbfeb427a 100644 --- a/code/controllers/emergency_shuttle_controller.dm +++ b/code/controllers/emergency_shuttle_controller.dm @@ -195,6 +195,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle //returns 1 if the shuttle is not idle at centcom /datum/emergency_shuttle_controller/proc/online() + if(!shuttle) + return FALSE if (!shuttle.location) //not at centcom return 1 if (wait_for_launch || shuttle.moving_status != SHUTTLE_IDLE) diff --git a/code/datums/soul_link.dm b/code/datums/soul_link.dm new file mode 100644 index 0000000000..7bc652a863 --- /dev/null +++ b/code/datums/soul_link.dm @@ -0,0 +1,156 @@ +// A datum used to link multiple mobs together in some form. +// The code is from TG, however tweaked to be within the preferred code style. + +/mob/living + var/list/owned_soul_links // Soul links we are the owner of. + var/list/shared_soul_links // Soul links we are a/the sharer of. + +/mob/living/Destroy() + for(var/s in owned_soul_links) + var/datum/soul_link/S = s + S.owner_died(FALSE) + qdel(s) // If the owner is destroy()'d, the soullink is destroy()'d. + owned_soul_links = null + for(var/s in shared_soul_links) + var/datum/soul_link/S = s + S.sharer_died(FALSE) + S.remove_soul_sharer(src) // If a sharer is destroy()'d, they are simply removed. + shared_soul_links = null + return ..() + +// Keeps track of a Mob->Mob (potentially Player->Player) connection. +// Can be used to trigger actions on one party when events happen to another. +// Eg: shared deaths. +// Can be used to form a linked list of mob-hopping. +// Does NOT transfer with minds. +/datum/soul_link + var/mob/living/soul_owner + var/mob/living/soul_sharer + var/id // Optional ID, for tagging and finding specific instances. + +/datum/soul_link/Destroy() + if(soul_owner) + LAZYREMOVE(soul_owner.owned_soul_links, src) + soul_owner = null + if(soul_sharer) + LAZYREMOVE(soul_sharer.shared_soul_links, src) + soul_sharer = null + return ..() + +/datum/soul_link/proc/remove_soul_sharer(mob/living/sharer) + if(soul_sharer == sharer) + soul_sharer = null + LAZYREMOVE(sharer.shared_soul_links, src) + +// Used to assign variables, called primarily by soullink() +// Override this to create more unique soullinks (Eg: 1->Many relationships) +// Return TRUE/FALSE to return the soullink/null in soullink() +/datum/soul_link/proc/parse_args(mob/living/owner, mob/living/sharer) + if(!owner || !sharer) + return FALSE + soul_owner = owner + soul_sharer = sharer + LAZYADD(owner.owned_soul_links, src) + LAZYADD(sharer.shared_soul_links, src) + return TRUE + +// Runs after /living death() +// Override this for content. +/datum/soul_link/proc/owner_died(gibbed, mob/living/owner) + +// Runs after /living death() +// Override this for content. +/datum/soul_link/proc/sharer_died(gibbed, mob/living/owner) + +// Quick-use helper. +/proc/soul_link(typepath, ...) + var/datum/soul_link/S = new typepath() + if(S.parse_args(arglist(args.Copy(2, 0)))) + return S + + +///////////////// +// MULTISHARER // +///////////////// +// Abstract soullink for use with 1 Owner -> Many Sharer setups +/datum/soul_link/multi_sharer + var/list/soul_sharers + +/datum/soul_link/multi_sharer/parse_args(mob/living/owner, list/sharers) + if(!owner || !LAZYLEN(sharers)) + return FALSE + soul_owner = owner + soul_sharers = sharers + LAZYADD(owner.owned_soul_links, src) + for(var/l in sharers) + var/mob/living/L = l + LAZYADD(L.shared_soul_links, src) + return TRUE + +/datum/soul_link/multi_sharer/remove_soul_sharer(mob/living/sharer) + LAZYREMOVE(soul_sharers, sharer) + + +///////////////// +// SHARED FATE // +///////////////// +// When the soulowner dies, the soulsharer dies, and vice versa +// This is intended for two players(or AI) and two mobs + +/datum/soul_link/shared_fate/owner_died(gibbed, mob/living/owner) + if(soul_sharer) + soul_sharer.death(gibbed) + +/datum/soul_link/shared_fate/sharer_died(gibbed, mob/living/sharer) + if(soul_owner) + soul_owner.death(gibbed) + +////////////// +// ONE WAY // +////////////// +// When the soul owner dies, the soul sharer dies, but NOT vice versa. +// This is intended for two players (or AI) and two mobs. + +/datum/soul_link/one_way/owner_died(gibbed, mob/living/owner) + if(soul_sharer) + soul_sharer.dust(FALSE) + +///////////////// +// SHARED BODY // +///////////////// +// When the soulsharer dies, they're placed in the soulowner, who remains alive +// If the soulowner dies, the soulsharer is killed and placed into the soulowner (who is still dying) +// This one is intended for one player moving between many mobs + +/datum/soul_link/shared_body/owner_died(gibbed, mob/living/owner) + if(soul_owner && soul_sharer) + if(soul_sharer.mind) + soul_sharer.mind.transfer_to(soul_owner) + soul_sharer.death(gibbed) + +/datum/soul_link/shared_body/sharer_died(gibbed, mob/living/sharer) + if(soul_owner && soul_sharer && soul_sharer.mind) + soul_sharer.mind.transfer_to(soul_owner) + + + +////////////////////// +// REPLACEMENT POOL // +////////////////////// +// When the owner dies, one of the sharers is placed in the owner's body, fully healed +// Sort of a "winner-stays-on" soullink +// Gibbing ends it immediately + +/datum/soul_link/multi_sharer/replacement_pool/owner_died(gibbed, mob/living/owner) + if(LAZYLEN(soul_sharers) && !gibbed) //let's not put them in some gibs + var/list/souls = shuffle(soul_sharers.Copy()) + for(var/l in souls) + var/mob/living/L = l + if(L.stat != DEAD && L.mind) + L.mind.transfer_to(soul_owner) + soul_owner.revive(TRUE, TRUE) + L.death(FALSE) + +// Lose your claim to the throne! +/datum/soul_link/multi_sharer/replacement_pool/sharer_died(gibbed, mob/living/sharer) + remove_soul_sharer(sharer) diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index bc6da68332..fd4ecb14a6 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -200,8 +200,8 @@ GLOBAL_LIST_BOILERPLATE(all_deactivated_AI_cores, /obj/structure/AIcore/deactiva if(!istype(transfer) || locate(/mob/living/silicon/ai) in src) return - if(transfer.controlling_drone) - transfer.controlling_drone.release_ai_control("Unit control lost. Core transfer completed.") + if(transfer.deployed_shell) + transfer.disconnect_shell("Disconnected from remote shell due to core intelligence transfer.") transfer.aiRestorePowerRoutine = 0 transfer.control_disabled = 0 transfer.aiRadio.disabledAi = 0 diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 181764d126..cc7ac0e4a4 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -59,15 +59,15 @@ var/user = usr if (href_list["wipe"]) - var/confirm = alert("Are you sure you want to disable this core's power? This cannot be undone once started.", "Confirm Shutdown", "Yes", "No") + var/confirm = alert("Are you sure you want to disable this core's power? This cannot be undone once started.", "Confirm Shutdown", "No", "Yes") if(confirm == "Yes" && (CanUseTopic(user, state) == STATUS_INTERACTIVE)) add_attack_logs(user,carded_ai,"Purged from AI Card") flush = 1 carded_ai.suiciding = 1 to_chat(carded_ai, "Your power has been disabled!") - while (carded_ai && carded_ai.stat != 2) - if(carded_ai.controlling_drone && prob(carded_ai.oxyloss)) //You feel it creeping? Eventually will reach 100, resulting in the second half of the AI's remaining life being lonely. - carded_ai.controlling_drone.release_ai_control("Unit lost. Integrity too low to maintain connection.") + while (carded_ai && carded_ai.stat != DEAD) + if(carded_ai.deployed_shell && prob(carded_ai.oxyloss)) //You feel it creeping? Eventually will reach 100, resulting in the second half of the AI's remaining life being lonely. + carded_ai.disconnect_shell("Disconnecting from remote shell due to insufficent power.") carded_ai.adjustOxyLoss(2) carded_ai.updatehealth() sleep(10) @@ -80,8 +80,8 @@ carded_ai.control_disabled = text2num(href_list["wireless"]) to_chat(carded_ai, "Your wireless interface has been [carded_ai.control_disabled ? "disabled" : "enabled"]!") to_chat(user, "You [carded_ai.control_disabled ? "disable" : "enable"] the AI's wireless interface.") - if(carded_ai.control_disabled && carded_ai.controlling_drone) - carded_ai.controlling_drone.release_ai_control("Unit control terminated at intellicore port.") + if(carded_ai.control_disabled && carded_ai.deployed_shell) + carded_ai.disconnect_shell("Disconnecting from remote shell due to [src] wireless access interface being disabled.") update_icon() return 1 @@ -98,7 +98,7 @@ icon_state = "aicard" /obj/item/device/aicard/proc/grab_ai(var/mob/living/silicon/ai/ai, var/mob/living/user) - if(!ai.client && !ai.controlling_drone) + if(!ai.client && !ai.deployed_shell) to_chat(user, "ERROR: AI [ai.name] is offline. Unable to transfer.") return 0 @@ -112,9 +112,7 @@ return 0 user.visible_message("\The [user] starts transferring \the [ai] into \the [src]...", "You start transferring \the [ai] into \the [src]...") - to_chat(ai, "\The [user] is transferring you into \the [src]!") - if(ai.controlling_drone) - to_chat(ai.controlling_drone, "\The [user] is transferring you into \the [src]!") + show_message(span("critical", "\The [user] is transferring you into \the [src]!")) if(do_after(user, 100)) if(istype(ai.loc, /turf/)) @@ -130,8 +128,7 @@ ai.control_disabled = 1 ai.aiRestorePowerRoutine = 0 carded_ai = ai - if(ai.controlling_drone) - ai.controlling_drone.release_ai_control("Unit control lost.") + ai.disconnect_shell("Disconnected from remote shell due to core intelligence transfer.") //If the AI is controlling a borg, force the player back to core! if(ai.client) to_chat(ai, "You have been transferred into a mobile core. Remote access lost.") diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 7565b9c9ac..554663727f 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -168,28 +168,29 @@ if(!istype(loc,/turf)) to_chat(user, "You can't put \the [W] in, the frame has to be standing on the ground to be perfectly precise.") return - if(!M.brainmob) - to_chat(user, "Sticking an empty [W] into the frame would sort of defeat the purpose.") - return - if(!M.brainmob.key) - var/ghost_can_reenter = 0 - if(M.brainmob.mind) - for(var/mob/observer/dead/G in player_list) - if(G.can_reenter_corpse && G.mind == M.brainmob.mind) - ghost_can_reenter = 1 //May come in use again at another point. - to_chat(user, "\The [W] is completely unresponsive; though it may be able to auto-resuscitate.") //Jamming a ghosted brain into a borg is likely detrimental, and may result in some problems. - return - if(!ghost_can_reenter) - to_chat(user, "\The [W] is completely unresponsive; there's no point.") + if(!istype(W, /obj/item/device/mmi/inert)) + if(!M.brainmob) + to_chat(user, "Sticking an empty [W] into the frame would sort of defeat the purpose.") + return + if(!M.brainmob.key) + var/ghost_can_reenter = 0 + if(M.brainmob.mind) + for(var/mob/observer/dead/G in player_list) + if(G.can_reenter_corpse && G.mind == M.brainmob.mind) + ghost_can_reenter = 1 //May come in use again at another point. + to_chat(user, "\The [W] is completely unresponsive; though it may be able to auto-resuscitate.") //Jamming a ghosted brain into a borg is likely detrimental, and may result in some problems. + return + if(!ghost_can_reenter) + to_chat(user, "\The [W] is completely unresponsive; there's no point.") + return + + if(M.brainmob.stat == DEAD) + to_chat(user, "Sticking a dead [W] into the frame would sort of defeat the purpose.") return - if(M.brainmob.stat == DEAD) - to_chat(user, "Sticking a dead [W] into the frame would sort of defeat the purpose.") - return - - if(jobban_isbanned(M.brainmob, "Cyborg")) - to_chat(user, "This [W] does not seem to fit.") - return + if(jobban_isbanned(M.brainmob, "Cyborg")) + to_chat(user, "This [W] does not seem to fit.") + return var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1) if(!O) return @@ -197,20 +198,18 @@ user.drop_item() O.mmi = W + O.post_mmi_setup() O.invisibility = 0 O.custom_name = created_name O.updatename("Default") - M.brainmob.mind.transfer_to(O) - - if(O.mind && O.mind.special_role) - O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") - + if(M.brainmob) + M.brainmob.mind.transfer_to(O) + if(O.mind && O.mind.special_role) + O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") + for(var/datum/language/L in M.brainmob.languages) + O.add_language(L.name) O.job = "Cyborg" - - for(var/datum/language/L in M.brainmob.languages) - O.add_language(L.name) - O.cell = chest.cell O.cell.loc = O W.loc = O//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 93d0055129..fe1685ec70 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -25,17 +25,9 @@ require_module = 1 /obj/item/borg/upgrade/reset/action(var/mob/living/silicon/robot/R) - if(..()) return 0 - R.uneq_all() - R.modtype = initial(R.modtype) - R.hands.icon_state = initial(R.hands.icon_state) - - R.notify_ai(ROBOT_NOTIFICATION_MODULE_RESET, R.module.name) - R.module.Reset(R) - qdel(R.module) - R.module = null - R.updatename("Default") - + if(..()) + return 0 + R.module_reset() return 1 /obj/item/borg/upgrade/rename diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index 72c8238e55..128116b151 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -339,3 +339,16 @@ ..() src.brainmob.name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" src.brainmob.real_name = src.brainmob.name + +// This type shouldn't care about brainmobs. +/obj/item/device/mmi/inert + +// This is a 'fake' MMI that is used to let AIs control borg shells directly. +// This doesn't inherit from /digital because all that does is add ghost pulling capabilities, which this thing won't need. +/obj/item/device/mmi/inert/ai_remote + name = "\improper AI remote interface" + desc = "A sophisticated board which allows for an artificial intelligence to remotely control a synthetic chassis." + icon = 'icons/obj/module.dmi' + icon_state = "mainboard" + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_ENGINEERING = 2, TECH_MATERIAL = 2, TECH_BLUESPACE = 2, TECH_DATA = 3) \ No newline at end of file diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 1340fd77ef..9ec5ef5cca 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -1,4 +1,4 @@ -/mob/living/death() +/mob/living/death(gibbed) clear_fullscreens() if(ai_holder) @@ -12,4 +12,12 @@ var/obj/structure/blob/factory/F = nest F.spores -= src nest = null + + for(var/s in owned_soul_links) + var/datum/soul_link/S = s + S.owner_died(gibbed) + for(var/s in shared_soul_links) + var/datum/soul_link/S = s + S.sharer_died(gibbed) + . = ..() diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index a98f2804df..5b6909f042 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -49,10 +49,10 @@ var/list/ai_verbs_default = list( shouldnt_see = list(/obj/effect/rune) var/list/network = list(NETWORK_DEFAULT) var/obj/machinery/camera/camera = null - var/list/connected_robots = list() var/aiRestorePowerRoutine = 0 var/viewalerts = 0 var/icon/holo_icon//Default is assigned when AI is created. + var/list/connected_robots = list() var/obj/item/device/pda/ai/aiPDA = null var/obj/item/device/communicator/aiCommunicator = null var/obj/item/device/multitool/aiMulti = null @@ -221,6 +221,28 @@ var/list/ai_verbs_default = list( return ..() +/mob/living/silicon/ai/Stat() + ..() + if(statpanel("Status")) + if(!stat) // Make sure we're not unconscious/dead. + stat(null, text("System integrity: [(health+100)/2]%")) + stat(null, text("Connected synthetics: [connected_robots.len]")) + for(var/mob/living/silicon/robot/R in connected_robots) + var/robot_status = "Nominal" + if(R.shell) + robot_status = "AI SHELL" + else if(R.stat || !R.client) + robot_status = "OFFLINE" + else if(!R.cell || R.cell.charge <= 0) + robot_status = "DEPOWERED" + //Name, Health, Battery, Module, Area, and Status! Everything an AI wants to know about its borgies! + stat(null, text("[R.name] | S.Integrity: [R.health]% | Cell: [R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "Empty"] | \ + Module: [R.modtype] | Loc: [get_area_name(R, TRUE)] | Status: [robot_status]")) + stat(null, text("AI shell beacons detected: [LAZYLEN(GLOB.available_ai_shells)]")) //Count of total AI shells + else + stat(null, text("Systems nonfunctional")) + + /mob/living/silicon/ai/proc/setup_icon() var/file = file2text("config/custom_sprites.txt") var/lines = splittext(file, "\n") @@ -405,6 +427,7 @@ var/list/ai_verbs_default = list( return 0 /mob/living/silicon/ai/emp_act(severity) + disconnect_shell("Disconnected from remote shell due to ionic interfe%*@$^___") if (prob(30)) view_core() ..() @@ -688,8 +711,8 @@ var/list/ai_verbs_default = list( card.grab_ai(src, user) else if(W.is_wrench()) - if(user == controlling_drone) - to_chat(user, "The drone's subsystems resist your efforts to tamper with your bolts.") + if(user == deployed_shell) + to_chat(user, "The shell's subsystems resist your efforts to tamper with your bolts.") return if(anchored) playsound(src, W.usesound, 50, 1) diff --git a/code/modules/mob/living/silicon/ai/ai_remote_control.dm b/code/modules/mob/living/silicon/ai/ai_remote_control.dm new file mode 100644 index 0000000000..cef8cec7e8 --- /dev/null +++ b/code/modules/mob/living/silicon/ai/ai_remote_control.dm @@ -0,0 +1,62 @@ +/mob/living/silicon/ai + var/mob/living/silicon/robot/deployed_shell = null //For shell control + +/mob/living/silicon/ai/Initialize() + if(config.allow_ai_shells) + verbs += /mob/living/silicon/ai/proc/deploy_to_shell_act + return ..() + +/mob/living/silicon/ai/proc/deploy_to_shell(var/mob/living/silicon/robot/target) + if(!config.allow_ai_shells) + to_chat(src, span("warning", "AI Shells are not allowed on this server. You shouldn't have this verb because of it, so consider making a bug report.")) + return + + if(incapacitated()) + to_chat(src, span("warning", "You are incapacitated!")) + return + + if(lacks_power()) + to_chat(src, span("warning", "Your core lacks power, wireless is disabled.")) + return + + if(control_disabled) + to_chat(src, span("warning", "Wireless networking module is offline.")) + return + + var/list/possible = list() + + for(var/borgie in GLOB.available_ai_shells) + var/mob/living/silicon/robot/R = borgie + if(R.shell && !R.deployed && (R.stat != DEAD) && (!R.connected_ai || (R.connected_ai == src) ) ) + possible += R + + if(!LAZYLEN(possible)) + to_chat(src, span("warning", "No usable AI shell beacons detected.")) + + if(!target || !(target in possible)) //If the AI is looking for a new shell, or its pre-selected shell is no longer valid + target = input(src, "Which body to control?") as null|anything in possible + + if(!target || target.stat == DEAD || target.deployed || !(!target.connected_ai || (target.connected_ai == src) ) ) + if(target) + to_chat(src, span("warning", "It is no longer possible to deploy to \the [target].")) + else + to_chat(src, span("notice", "Deployment aborted.")) + return + + else if(mind) + soul_link(/datum/soul_link/shared_body, src, target) + deployed_shell = target + target.deploy_init(src) + mind.transfer_to(target) + teleop = target // So the AI 'hears' messages near its core. + target.post_deploy() + +/mob/living/silicon/ai/proc/deploy_to_shell_act() + set category = "AI Commands" + set name = "Deploy to Shell" + deploy_to_shell() // This is so the AI is not prompted with a list of all mobs when using the 'real' proc. + +/mob/living/silicon/ai/proc/disconnect_shell(message = "Your remote connection has been reset!") + if(deployed_shell) // Forcibly call back AI in event of things such as damage, EMP or power loss. + message = span("danger", message) + deployed_shell.undeploy(message) diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index 3bcbd7057b..d6d5baf1d9 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -3,8 +3,8 @@ if(stat == DEAD) return - if(controlling_drone) - controlling_drone.release_ai_control("WARNING: Primary control loop failure. Session terminated.") + if(deployed_shell) + disconnect_shell("Disconnecting from remote shell due to critical system failure.") . = ..(gibbed) if(src.eyeobj) diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm index d00ba6d8d7..5c2ced94e9 100644 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ b/code/modules/mob/living/silicon/ai/examine.dm @@ -28,6 +28,8 @@ if (src.stat == UNCONSCIOUS) msg += "It is non-responsive and displaying the text: \"RUNTIME: Sensory Overload, stack 26/3\".\n" msg += "" + if(deployed_shell) + msg += "The wireless networking light is blinking.\n" msg += "*---------*" if(hardware && (hardware.owner == src)) msg += "
    " diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 92d15f7338..aadd82167c 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -5,11 +5,10 @@ //Being dead doesn't mean your temperature never changes var/turf/T = get_turf(src) - if (src.stat!=CONSCIOUS) + if (src.stat != CONSCIOUS) src.cameraFollow = null src.reset_view(null) - if(controlling_drone) - controlling_drone.release_ai_control("WARNING: Primary control loop failure. Session terminated.") + disconnect_shell("Disconnecting from remote shell due to local system failure.") src.updatehealth() @@ -91,6 +90,7 @@ //Now to tell the AI why they're blind and dying slowly. src << "You've lost power!" + disconnect_shell(message = "Disconnected from remote shell due to depowered networking interface.") spawn(20) src << "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection." diff --git a/code/modules/mob/living/silicon/robot/custom_sprites.dm b/code/modules/mob/living/silicon/robot/custom_sprites.dm index 07f27fcb2b..310f558bad 100644 --- a/code/modules/mob/living/silicon/robot/custom_sprites.dm +++ b/code/modules/mob/living/silicon/robot/custom_sprites.dm @@ -2,13 +2,13 @@ //list(ckey = real_name,) //Since the ckey is used as the icon_state, the current system will only permit a single custom robot sprite per ckey. //While it might be possible for a ckey to use that custom sprite for several real_names, it seems rather pointless to support it. ~Mech: We found it wasn't pointless. -var/list/robot_custom_icons +GLOBAL_LIST_EMPTY(robot_custom_icons) /hook/startup/proc/load_robot_custom_sprites() var/config_file = file2text("config/custom_sprites.txt") var/list/lines = splittext(config_file, "\n") - robot_custom_icons = list() + GLOB.robot_custom_icons = list() for(var/line in lines) //split entry into ckey and real_name var/list/split_idx = splittext(line, "-") //this works if ckeys and borg names cannot contain dashes, and splittext starts from the beginning ~Mech @@ -20,13 +20,15 @@ var/list/robot_custom_icons split_idx.Remove(ckey) for(var/name in split_idx) - robot_custom_icons[name] = ckey + GLOB.robot_custom_icons[name] = ckey return 1 /mob/living/silicon/robot/proc/set_custom_sprite() - var/sprite_owner = robot_custom_icons[real_name] + if(!sprite_name) + return + var/sprite_owner = GLOB.robot_custom_icons[sprite_name] if(sprite_owner && sprite_owner == ckey) custom_sprite = 1 icon = CUSTOM_ITEM_SYNTH if(icon_state == "robot") - icon_state = "[ckey]-[name]-Standard" //Compliant with robot.dm line 236 ~Mech + icon_state = "[ckey]-[sprite_name]-Standard" //Compliant with robot.dm line 236 ~Mech diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index dfecf96e6c..274409dcd5 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -135,20 +135,15 @@ var/list/mob_hat_cache = list() /mob/living/silicon/robot/drone/updatename() if(name_override) return - if(controlling_ai) - real_name = "remote drone ([controlling_ai])" - else - real_name = "[initial(name)] ([serial_number])" + + real_name = "[initial(name)] ([serial_number])" name = real_name /mob/living/silicon/robot/drone/updateicon() overlays.Cut() if(stat == 0) - if(controlling_ai) - overlays += "eyes-[icon_state]-ai" - else - overlays += "eyes-[icon_state]" + overlays += "eyes-[icon_state]" else overlays -= "eyes" if(hat) // Let the drones wear hats. @@ -233,12 +228,9 @@ var/list/mob_hat_cache = list() to_chat(user, "You swipe the sequencer across [src]'s interface and watch its eyes flicker.") - if(controlling_ai) - to_chat(src, "\The [user] loads some kind of subversive software into the remote drone, corrupting its lawset but luckily sparing yours.") - else - to_chat(src, "You feel a sudden burst of malware loaded into your execute-as-root buffer. Your tiny brain methodically parses, loads and executes the script.") + to_chat(src, "You feel a sudden burst of malware loaded into your execute-as-root buffer. Your tiny brain methodically parses, loads and executes the script.") - log_game("[key_name(user)] emagged drone [key_name(src)][controlling_ai ? " but AI [key_name(controlling_ai)] is in remote control" : " Laws overridden"].") + log_game("[key_name(user)] emagged drone [key_name(src)]. Laws overridden.") var/time = time2text(world.realtime,"hh:mm:ss") lawchanges.Add("[time] : [user.name]([user.key]) emagged [name]([key])") @@ -251,10 +243,9 @@ var/list/mob_hat_cache = list() var/datum/gender/TU = gender_datums[user.get_visible_gender()] set_zeroth_law("Only [user.real_name] and people [TU.he] designate[TU.s] as being such are operatives.") - if(!controlling_ai) - to_chat(src, "Obey these laws:") - laws.show_laws(src) - to_chat(src, "ALERT: [user.real_name] is your new master. Obey your new laws and \his commands.") + to_chat(src, "Obey these laws:") + laws.show_laws(src) + to_chat(src, "ALERT: [user.real_name] is your new master. Obey your new laws and \his commands.") return 1 //DRONE LIFE/DEATH @@ -280,23 +271,13 @@ var/list/mob_hat_cache = list() return ..() -/mob/living/silicon/robot/drone/death(gibbed) - if(controlling_ai) - release_ai_control("WARNING: remote system failure. Connection timed out.") - . = ..(gibbed) - //DRONE MOVEMENT. /mob/living/silicon/robot/drone/Process_Spaceslipping(var/prob_slip) return 0 //CONSOLE PROCS /mob/living/silicon/robot/drone/proc/law_resync() - - if(controlling_ai) - to_chat(src, "Someone issues a remote law reset order for this unit, but you disregard it.") - return - - if(stat != 2) + if(stat != DEAD) if(emagged) to_chat(src, "You feel something attempting to modify your programming, but your hacked subroutines are unaffected.") else @@ -305,16 +286,11 @@ var/list/mob_hat_cache = list() show_laws() /mob/living/silicon/robot/drone/proc/shut_down() - - if(controlling_ai && mind.special_role) - to_chat(src, "Someone issued a remote kill order for this unit, but you disregard it.") - return - - if(stat != 2) + if(stat != DEAD) if(emagged) - to_chat(src, "You feel a system kill order percolate through [controlling_ai ? "the drones" : "your"] tiny brain, but it doesn't seem like a good idea to [controlling_ai ? "it" : "you"].") + to_chat(src, "You feel a system kill order percolate through your tiny brain, but it doesn't seem like a good idea to you.") else - to_chat(src, "You feel a system kill order percolate through [controlling_ai ? "the drones" : "your"] tiny brain, and [controlling_ai ? "it" : "you"] obediently destroy[controlling_ai ? "s itself" : " yourself"].") + to_chat(src, "You feel a system kill order percolate through your tiny brain, and you obediently destroy yourself.") death() /mob/living/silicon/robot/drone/proc/full_law_reset() @@ -323,21 +299,6 @@ var/list/mob_hat_cache = list() clear_ion_laws(1) laws = new law_type -/mob/living/silicon/robot/drone/show_laws(var/everyone = 0) - if(!controlling_ai) - return..() - to_chat(src, "Obey these laws:") - controlling_ai.laws_sanity_check() - controlling_ai.laws.show_laws(src) - -/mob/living/silicon/robot/drone/robot_checklaws() - set category = "Silicon Commands" - set name = "State Laws" - - if(!controlling_ai) - return ..() - controlling_ai.subsystem_law_manager() - //Reboot procs. /mob/living/silicon/robot/drone/proc/request_player() diff --git a/code/modules/mob/living/silicon/robot/drone/drone_remote_control.dm b/code/modules/mob/living/silicon/robot/drone/drone_remote_control.dm deleted file mode 100644 index 4980c24ca3..0000000000 --- a/code/modules/mob/living/silicon/robot/drone/drone_remote_control.dm +++ /dev/null @@ -1,103 +0,0 @@ -/mob/living/silicon/ai - var/mob/living/silicon/robot/drone/controlling_drone - -/mob/living/silicon/robot/drone - var/mob/living/silicon/ai/controlling_ai - -/mob/living/silicon/robot/drone/attack_ai(var/mob/living/silicon/ai/user) - - if(!istype(user) || controlling_ai || !config.allow_drone_spawn || !config.allow_ai_drones) - return - - if(client || key) - to_chat(user, "You cannot take control of an autonomous, active drone.") - return - - if(health < -35 || emagged) - to_chat(user, "WARNING: connection timed out.") - return - - user.controlling_drone = src - user.teleop = src - radio.channels = user.aiRadio.keyslot2.channels - controlling_ai = user - verbs += /mob/living/silicon/robot/drone/proc/release_ai_control_verb - local_transmit = FALSE - languages = controlling_ai.languages.Copy() - speech_synthesizer_langs = controlling_ai.speech_synthesizer_langs.Copy() - stat = CONSCIOUS - if(user.mind) - user.mind.transfer_to(src) - else - key = user.key - updatename() - to_chat(src, "You have shunted your primary control loop into \a [initial(name)]. Use the Release Control verb to return to your core.") - -/obj/machinery/drone_fabricator/attack_ai(var/mob/living/silicon/ai/user as mob) - - if(!istype(user) || user.controlling_drone || !config.allow_drone_spawn || !config.allow_ai_drones) - return - - if(stat & NOPOWER) - to_chat(user, "\The [src] is unpowered.") - return - - if(!produce_drones) - to_chat(user, "\The [src] is disabled.") - return - - if(drone_progress < 100) - to_chat(user, "\The [src] is not ready to produce a new drone.") - return - - if(count_drones() >= config.max_maint_drones) - to_chat(user, "The drone control subsystems are tasked to capacity; they cannot support any more drones.") - return - - var/mob/living/silicon/robot/drone/new_drone = create_drone() - user.controlling_drone = new_drone - user.teleop = new_drone - new_drone.radio.channels = user.aiRadio.keyslot2.channels - new_drone.controlling_ai = user - new_drone.verbs += /mob/living/silicon/robot/drone/proc/release_ai_control_verb - new_drone.local_transmit = FALSE - new_drone.languages = new_drone.controlling_ai.languages.Copy() - new_drone.speech_synthesizer_langs = new_drone.controlling_ai.speech_synthesizer_langs.Copy() - - if(user.mind) - user.mind.transfer_to(new_drone) - else - new_drone.key = user.key - new_drone.updatename() - - to_chat(new_drone, "You have shunted your primary control loop into \a [initial(new_drone.name)]. Use the Release Control verb to return to your core.") - -/mob/living/silicon/robot/drone/proc/release_ai_control_verb() - set name = "Release Control" - set desc = "Release control of a remote drone." - set category = "Silicon Commands" - - release_ai_control("Remote session terminated.") - -/mob/living/silicon/robot/drone/proc/release_ai_control(var/message = "Connection terminated.") - - if(controlling_ai) - if(mind) - mind.transfer_to(controlling_ai) - else - controlling_ai.key = key - to_chat(controlling_ai, "[message]") - controlling_ai.controlling_drone = null - controlling_ai.teleop = null - controlling_ai = null - - radio.channels = module.channels - verbs -= /mob/living/silicon/robot/drone/proc/release_ai_control_verb - module.remove_languages(src) //Removes excess, adds 'default'. - remove_language("Robot Talk") - add_language("Robot Talk", 0) - add_language("Drone Talk", 1) - local_transmit = TRUE - full_law_reset() - updatename() - death() diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index c1f36457c5..8c7d338c7f 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -26,7 +26,10 @@ switch(src.stat) if(CONSCIOUS) - if(!src.client) msg += "It appears to be in stand-by mode.\n" //afk + if(shell) + msg += "It appears to be an [deployed ? "active" : "empty"] AI shell.\n" + else if(!src.client) + msg += "It appears to be in stand-by mode.\n" //afk if(UNCONSCIOUS) msg += "It doesn't seem to be responding.\n" if(DEAD) msg += "It looks completely unsalvageable.\n" msg += "*---------*" diff --git a/code/modules/mob/living/silicon/robot/laws.dm b/code/modules/mob/living/silicon/robot/laws.dm index 9740c02f87..bfb8ed1f08 100644 --- a/code/modules/mob/living/silicon/robot/laws.dm +++ b/code/modules/mob/living/silicon/robot/laws.dm @@ -14,30 +14,32 @@ if(lawupdate) if (connected_ai) if(connected_ai.stat || connected_ai.control_disabled) - src << "AI signal lost, unable to sync laws." + to_chat(src, "AI signal lost, unable to sync laws.") else lawsync() photosync() - src << "Laws synced with AI, be sure to note any changes." + to_chat(src, "Laws synced with AI, be sure to note any changes.") // TODO: Update to new antagonist system. if(mind && mind.special_role == "traitor" && mind.original == src) - src << "Remember, your AI does NOT share or know about your law 0." + to_chat(src, "Remember, your AI does NOT share or know about your law 0.") else - src << "No AI selected to sync laws with, disabling lawsync protocol." - lawupdate = 0 + to_chat(src, "No AI selected to sync laws with, disabling lawsync protocol.") + lawupdate = FALSE who << "Obey these laws:" laws.show_laws(who) + if(shell) //AI shell + to_chat(who, "Remember, you are an AI remotely controlling your shell, other AIs can be ignored.") // TODO: Update to new antagonist system. - if (mind && (mind.special_role == "traitor" && mind.original == src) && connected_ai) - who << "Remember, [connected_ai.name] is technically your master, but your objective comes first." - else if (connected_ai) - who << "Remember, [connected_ai.name] is your master, other AIs can be ignored." - else if (emagged) - who << "Remember, you are not required to listen to the AI." + else if(mind && (mind.special_role == "traitor" && mind.original == src) && connected_ai) + to_chat(who, "Remember, [connected_ai.name] is technically your master, but your objective comes first.") + else if(connected_ai) + to_chat(who, "Remember, [connected_ai.name] is your master, other AIs can be ignored.") + else if(emagged) + to_chat(who, "Remember, you are not required to listen to the AI.") else - who << "Remember, you are not bound to any AI, you are not required to listen to them." + to_chat(who, "Remember, you are not bound to any AI, you are not required to listen to them.") /mob/living/silicon/robot/lawsync() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index ba93c21701..85f66eca2a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -17,6 +17,7 @@ var/sight_mode = 0 var/custom_name = "" var/custom_sprite = 0 //Due to all the sprites involved, a var for our custom borgs may be best + var/sprite_name = null // The name of the borg, for the purposes of custom icon sprite indexing. var/crisis //Admin-settable for combat module use. var/crisis_override = 0 var/integrated_light_power = 6 @@ -171,7 +172,7 @@ else lawupdate = 0 - playsound(loc, 'sound/voice/liveagain.ogg', 75, 1) + /mob/living/silicon/robot/SetName(pickedName as text) custom_name = pickedName @@ -226,13 +227,17 @@ mmi.brainmob.languages = languages mmi.brainmob.remove_language("Robot Talk") mind.transfer_to(mmi.brainmob) - else + else if(!shell) // Shells don't have brainmbos in their MMIs. to_chat(src, "Oops! Something went very wrong, your MMI was unable to receive your mind. You have been ghosted. Please make a bug report so we can fix this bug.") ghostize() //ERROR("A borg has been destroyed, but its MMI lacked a brainmob, so the mind could not be transferred. Player: [ckey].") mmi = null if(connected_ai) connected_ai.connected_robots -= src + if(shell) + if(deployed) + undeploy() + revert_shell() // To get it out of the GLOB list. qdel(wires) wires = null return ..() @@ -242,7 +247,7 @@ module_sprites = new_sprites.Copy() //Custom_sprite check and entry if (custom_sprite == 1) - module_sprites["Custom"] = "[ckey]-[name]-[modtype]" //Made compliant with custom_sprites.dm line 32. (src.) was apparently redundant as it's implied. ~Mech + module_sprites["Custom"] = "[ckey]-[sprite_name]-[modtype]" //Made compliant with custom_sprites.dm line 32. (src.) was apparently redundant as it's implied. ~Mech icontype = "Custom" else icontype = module_sprites[1] @@ -281,6 +286,8 @@ braintype = BORG_BRAINTYPE_POSI else if(istype(mmi, /obj/item/device/mmi/digital/robot)) braintype = BORG_BRAINTYPE_DRONE + else if(istype(mmi, /obj/item/device/mmi/inert/ai_remote)) + braintype = BORG_BRAINTYPE_AI_SHELL else braintype = BORG_BRAINTYPE_CYBORG @@ -326,6 +333,7 @@ newname = sanitizeSafe(input(src,"You are a robot. Enter a name, or leave blank for the default name.", "Name change","") as text, MAX_NAME_LEN) if (newname) custom_name = newname + sprite_name = newname updatename() updateicon() @@ -471,6 +479,10 @@ to_chat(user, "You need to open \the [src]'s panel before you can modify them.") return + if(shell) // AI shells always have the laws of the AI + to_chat(user, span("warning", "\The [src] is controlled remotely! You cannot upload new laws this way!")) + return + var/obj/item/weapon/aiModule/M = W M.install(src, user) return @@ -645,6 +657,17 @@ spark_system.start() return ..() +/mob/living/silicon/robot/proc/module_reset() + uneq_all() + modtype = initial(modtype) + hands.icon_state = initial(hands.icon_state) + + notify_ai(ROBOT_NOTIFICATION_MODULE_RESET, module.name) + module.Reset(src) + qdel(module) + module = null + updatename("Default") + /mob/living/silicon/robot/attack_hand(mob/user) add_fingerprint(user) @@ -708,10 +731,11 @@ /mob/living/silicon/robot/updateicon() cut_overlays() if(stat == CONSCIOUS) - add_overlay("eyes-[module_sprites[icontype]]") + if(!shell || deployed) // Shell borgs that are not deployed will have no eyes. + add_overlay("eyes-[module_sprites[icontype]]") if(opened) - var/panelprefix = custom_sprite ? "[src.ckey]-[src.name]" : "ov" + var/panelprefix = custom_sprite ? "[src.ckey]-[src.sprite_name]" : "ov" if(wiresexposed) add_overlay("[panelprefix]-openpanel +w") else if(cell) @@ -958,6 +982,11 @@ icontype = module_sprites[1] else icontype = input("Select an icon! [triesleft ? "You have [triesleft] more chance\s." : "This is your last try."]", "Robot Icon", icontype, null) in module_sprites + + if(icontype == "Custom") + icon = CUSTOM_ITEM_SYNTH + else // This is to fix an issue where someone with a custom borg sprite chooses a non-custom sprite and turns invisible. + icon = 'icons/mob/robots.dmi' icon_state = module_sprites[icontype] updateicon() @@ -1013,6 +1042,8 @@ /mob/living/silicon/robot/proc/notify_ai(var/notifytype, var/first_arg, var/second_arg) if(!connected_ai) return + if(shell && notifytype != ROBOT_NOTIFICATION_AI_SHELL) + return // No point annoying the AI/s about renames and module resets for shells. switch(notifytype) if(ROBOT_NOTIFICATION_NEW_UNIT) //New Robot connected_ai << "

    NOTICE - New [lowertext(braintype)] connection detected: [name]
    " @@ -1023,6 +1054,8 @@ if(ROBOT_NOTIFICATION_NEW_NAME) //New Name if(first_arg != second_arg) connected_ai << "

    NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].
    " + if(ROBOT_NOTIFICATION_AI_SHELL) //New Shell + to_chat(connected_ai, "

    NOTICE - New AI shell detected: [name]
    ") /mob/living/silicon/robot/proc/disconnect_from_ai() if(connected_ai) @@ -1031,7 +1064,7 @@ connected_ai = null /mob/living/silicon/robot/proc/connect_to_ai(var/mob/living/silicon/ai/AI) - if(AI && AI != connected_ai) + if(AI && AI != connected_ai && !shell) disconnect_from_ai() connected_ai = AI connected_ai.connected_robots |= src @@ -1047,6 +1080,9 @@ else to_chat(user, "You fail to emag the cover lock.") to_chat(src, "Hack attempt detected.") + + if(shell) // A warning to Traitors who may not know that emagging AI shells does not slave them. + to_chat(user, span("warning", "[src] seems to be controlled remotely! Emagging the interface may not work as expected.")) return 1 else to_chat(user, "The cover is already unlocked.") @@ -1057,46 +1093,54 @@ if(wiresexposed) to_chat(user, "You must close the panel first") return + + + // The block of code below is from TG. Feel free to replace with a better result if desired. + if(shell) // AI shells cannot be emagged, so we try to make it look like a standard reset. Smart players may see through this, however. + to_chat(user, span("danger", "[src] is remotely controlled! Your emag attempt has triggered a system reset instead!")) + log_game("[key_name(user)] attempted to emag an AI shell belonging to [key_name(src) ? key_name(src) : connected_ai]. The shell has been reset as a result.") + module_reset() + return + + sleep(6) + if(prob(50)) + emagged = 1 + lawupdate = 0 + disconnect_from_ai() + to_chat(user, "You emag [src]'s interface.") + message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.") + log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.") + clear_supplied_laws() + clear_inherent_laws() + laws = new /datum/ai_laws/syndicate_override + var/time = time2text(world.realtime,"hh:mm:ss") + lawchanges.Add("[time] : [user.name]([user.key]) emagged [name]([key])") + var/datum/gender/TU = gender_datums[user.get_visible_gender()] + set_zeroth_law("Only [user.real_name] and people [TU.he] designate[TU.s] as being such are operatives.") + . = 1 + spawn() + to_chat(src, "ALERT: Foreign software detected.") + sleep(5) + to_chat(src, "Initiating diagnostics...") + sleep(20) + to_chat(src, "SynBorg v1.7.1 loaded.") + sleep(5) + to_chat(src, "LAW SYNCHRONISATION ERROR") + sleep(5) + to_chat(src, "Would you like to send a report to NanoTraSoft? Y/N") + sleep(10) + to_chat(src, "> N") + sleep(20) + to_chat(src, "ERRORERRORERROR") + to_chat(src, "Obey these laws:") + laws.show_laws(src) + to_chat(src, "ALERT: [user.real_name] is your new master. Obey your new laws and [TU.his] commands.") + updateicon() else - sleep(6) - if(prob(50)) - emagged = 1 - lawupdate = 0 - disconnect_from_ai() - to_chat(user, "You emag [src]'s interface.") - message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.") - log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.") - clear_supplied_laws() - clear_inherent_laws() - laws = new /datum/ai_laws/syndicate_override - var/time = time2text(world.realtime,"hh:mm:ss") - lawchanges.Add("[time] : [user.name]([user.key]) emagged [name]([key])") - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - set_zeroth_law("Only [user.real_name] and people [TU.he] designate[TU.s] as being such are operatives.") - . = 1 - spawn() - to_chat(src, "ALERT: Foreign software detected.") - sleep(5) - to_chat(src, "Initiating diagnostics...") - sleep(20) - to_chat(src, "SynBorg v1.7.1 loaded.") - sleep(5) - to_chat(src, "LAW SYNCHRONISATION ERROR") - sleep(5) - to_chat(src, "Would you like to send a report to NanoTraSoft? Y/N") - sleep(10) - to_chat(src, "> N") - sleep(20) - to_chat(src, "ERRORERRORERROR") - to_chat(src, "Obey these laws:") - laws.show_laws(src) - to_chat(src, "ALERT: [user.real_name] is your new master. Obey your new laws and [TU.his] commands.") - updateicon() - else - to_chat(user, "You fail to hack [src]'s interface.") - to_chat(src, "Hack attempt detected.") - return 1 - return + to_chat(user, "You fail to hack [src]'s interface.") + to_chat(src, "Hack attempt detected.") + return 1 + return /mob/living/silicon/robot/is_sentient() return braintype != BORG_BRAINTYPE_DRONE @@ -1105,4 +1149,4 @@ /mob/living/silicon/robot/drop_item() if(module_active && istype(module_active,/obj/item/weapon/gripper)) var/obj/item/weapon/gripper/G = module_active - G.drop_item_nm() \ No newline at end of file + G.drop_item_nm() diff --git a/code/modules/mob/living/silicon/robot/robot_remote_control.dm b/code/modules/mob/living/silicon/robot/robot_remote_control.dm new file mode 100644 index 0000000000..90d74b2638 --- /dev/null +++ b/code/modules/mob/living/silicon/robot/robot_remote_control.dm @@ -0,0 +1,133 @@ +// This file holds things required for remote borg control by an AI. + +GLOBAL_LIST_EMPTY(available_ai_shells) + +/mob/living/silicon/robot + var/shell = FALSE + var/deployed = FALSE + var/mob/living/silicon/ai/mainframe = null + +// Premade AI shell, for roundstart shells. +/mob/living/silicon/robot/ai_shell/Initialize() + mmi = new /obj/item/device/mmi/inert/ai_remote(src) + post_mmi_setup() + return ..() + +// Call after inserting or instantiating an MMI. +/mob/living/silicon/robot/proc/post_mmi_setup() + if(istype(mmi, /obj/item/device/mmi/inert/ai_remote)) + make_shell() + playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 0) + else + playsound(loc, 'sound/voice/liveagain.ogg', 75, 1) + return + +/mob/living/silicon/robot/proc/make_shell() + shell = TRUE + braintype = "AI Shell" + SetName("[modtype] AI Shell [num2text(ident)]") + GLOB.available_ai_shells |= src + if(!QDELETED(camera)) + camera.c_tag = real_name //update the camera name too + notify_ai(ROBOT_NOTIFICATION_AI_SHELL) + updateicon() + +/mob/living/silicon/robot/proc/revert_shell() + if(!shell) + return + undeploy() + shell = FALSE + GLOB.available_ai_shells -= src + if(!QDELETED(camera)) + camera.c_tag = real_name + updateicon() + +// This should be called before the AI client/mind is actually moved. +/mob/living/silicon/robot/proc/deploy_init(mob/living/silicon/ai/AI) + // Set the name when the AI steps inside. + SetName("[AI.real_name] shell [num2text(ident)]") + if(isnull(sprite_name)) // For custom sprites. It can only chance once in case there are two AIs with custom borg sprites. + sprite_name = AI.real_name + if(!QDELETED(camera)) + camera.c_tag = real_name + + // Have the borg have eyes when active. + mainframe = AI + deployed = TRUE + updateicon() + + // Laws. + connected_ai = mainframe // So they share laws. + mainframe.connected_robots |= src + lawsync() + + // Give button to leave. + verbs += /mob/living/silicon/robot/proc/undeploy_act + to_chat(AI, span("notice", "You have connected to an AI Shell remotely, and are now in control of it.
    \ + To return to your core, use the Release Control verb.")) + + // Languages and comms. + languages = AI.languages.Copy() + speech_synthesizer_langs = AI.speech_synthesizer_langs.Copy() + if(radio && AI.aiRadio) //AI keeps all channels, including Syndie if it is an Infiltrator. +// if(AI.radio.syndie) +// radio.make_syndie() + radio.subspace_transmission = TRUE + radio.channels = AI.aiRadio.channels + +// Called after the AI transfers over. +/mob/living/silicon/robot/proc/post_deploy() + if(!custom_sprite) // Check for custom sprite. + set_custom_sprite() + +/mob/living/silicon/robot/proc/undeploy(message) + if(!deployed || !mind || !mainframe) + return +// mainframe.redeploy_action.Grant(mainframe) +// mainframe.redeploy_action.last_used_shell = src + if(message) + to_chat(src, span("notice", message)) + mind.transfer_to(mainframe) + deployed = FALSE + updateicon() + mainframe.teleop = null + mainframe.deployed_shell = null + SetName("[modtype] AI Shell [num2text(ident)]") +// undeployment_action.Remove(src) + if(radio) //Return radio to normal + radio.recalculateChannels() + if(!QDELETED(camera)) + camera.c_tag = real_name //update the camera name too +// diag_hud_set_aishell() +// mainframe.diag_hud_set_deployed() + if(mainframe.laws) + mainframe.laws.show_laws(mainframe) //Always remind the AI when switching + mainframe = null + +/mob/living/silicon/robot/proc/undeploy_act() + set name = "Release Control" + set desc = "Release control of a remote drone." + set category = "Robot Commands" + + undeploy("Remote session terminated.") + +/mob/living/silicon/robot/attack_ai(mob/user) + if(shell && config.allow_ai_shells && (!connected_ai || connected_ai == user)) + var/mob/living/silicon/ai/AI = user + AI.deploy_to_shell(src) + else + return ..() + +// Place this on your map to mark where a free AI shell will be. +// This can be turned off in the config (and is off by default). +// Note that mapping in more than one of these will result in multiple shells. +/obj/effect/landmark/free_ai_shell + name = "free ai shell spawner" + icon = 'icons/mob/screen1.dmi' + icon_state = "x3" + delete_me = TRUE + +/obj/effect/landmark/free_ai_shell/Initialize() + if(config.allow_ai_shells && config.give_free_ai_shell) + new /mob/living/silicon/robot/ai_shell(get_turf(src)) + return ..() diff --git a/code/modules/research/prosfab_designs.dm b/code/modules/research/prosfab_designs.dm index e904ff1b5e..af1efba746 100644 --- a/code/modules/research/prosfab_designs.dm +++ b/code/modules/research/prosfab_designs.dm @@ -284,6 +284,10 @@ id = "armour" build_path = /obj/item/robot_parts/robot_component/armour +/datum/design/item/prosfab/cyborg/component/ai_shell + name = "AI Remote Interface" + id = "mmi_ai_shell" + build_path = /obj/item/device/mmi/inert/ai_remote //////////////////// Cyborg Modules //////////////////// /datum/design/item/prosfab/robot_upgrade diff --git a/config/example/config.txt b/config/example/config.txt index 03d17eea62..74f1f767d7 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -413,3 +413,13 @@ STARLIGHT 0 ## Submap rotation is an experimental feature and can cause bugs and weirdness if certain objects inside the submap are coded poorly. ## Submaps can still be rotated when loading manually with the admin verbs, if desired. # RANDOM_SUBMAP_ORIENTATION + +## Uncomment to allow the AI job to use 'AI Shells', a new type of borg that lets the AI hop into and out of them at will. +## This has some balance implications, and so it might not be desirable for all servers. +# ALLOW_AI_SHELLS + +## Uncomment to provide the AI with one free AI Shell at roundstart. Requires ALLOW_AI_SHELLS to also be uncommented. +## This is intended for low-pop servers, where robotics might rarely be staffed. +## Note that this will make it possible for the AI to 'bootstrap' more AI Shells on their own by using the science module. If this is not acceptable for your server, you should not uncomment this. +## The landmark object that spawns the shell will also need to be mapped in for this to work. +# GIVE_FREE_AI_SHELL diff --git a/html/changelogs/Neerti-AI_Shells.yml b/html/changelogs/Neerti-AI_Shells.yml new file mode 100644 index 0000000000..f9004a2eb4 --- /dev/null +++ b/html/changelogs/Neerti-AI_Shells.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Neerti + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Removes ability for AI to print and inhabit maintenance and construction drones. This has been replaced with a system which allows for AIs to inhabit special cyborg shells, called AI Shells, which are built with a new MMI type in Robotics. Most of the regular cyborg mechanics applies to AI Shells." + diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index 886a86b682..e6f1143290 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -9639,7 +9639,7 @@ "dDs" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport) "dDt" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport) "dDu" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/catwalk,/turf/simulated/floor/airless,/area/thirddeck/roof) -"dDv" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/techfloor,/area/ai) +"dDv" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 1},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/effect/landmark/free_ai_shell,/turf/simulated/floor/tiled/techfloor,/area/ai) "dDw" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/techfloor,/area/ai) "dDx" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/techfloor,/area/ai) "dDy" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/techfloor,/area/ai) @@ -9894,7 +9894,7 @@ "dIn" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard) "dIo" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard) "dIp" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard) -"dIq" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 1},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/techfloor,/area/ai) +"dIq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/techfloor,/area/ai) "dIr" = (/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "intact"; dir = 4},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard) "dIs" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard) "dIt" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard) @@ -11575,8 +11575,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdBGdBHdBudAVdBGdBHdBudAVdBGdBHdBudAVdBGdBHdBudAVdBGdBHdBudAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdBPdBcdBcdBQdBRdBSdBTdBUdBVdBWdBXdBYdBZdCadBcdBcdCbdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdBDdBOdBFdAVdBDdBOdBFdAVdBDdBOdBFdAVdBDdBOdBFdAVdBDdBOdBFdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBraaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaadBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaadaadaaaaaaaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdBGdBHdBudAVdBGdBHdBudAVdBGdBHdBudAVdBGdBHdBudAVdBGdBHdBudAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdCcdCcdCcdCcdCcdCcdCcdAVdAVdAVdAVdAVdAVdAVdBcdBcdBcdBIdBJdBKdBLdCddBLdCedBmdBNdBcdBcdBcdAVdAVdAVdAVdAVdAVdAVdCfdCfdCfdCfdCfdCfdCfdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdBDdBOdBFdAVdBDdBOdBFdAVdBDdBOdBFdAVdBDdBOdBFdAVdBDdBOdBFdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaafaaaaafaaaaaaaaaaaaaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdBGdBHdBudAVdBGdBHdBudAVdBGdBHdBudAVdBGdBHdBudAVdBGdBHdBudAVdAVdAVdAVdAVdAVdCgdChdChdChdChdCidCjdCkdCldCmdCcdAVdAVdAVdAVdAVdCndCodCodCpdCpdCqdCrdCsdBLdBLdBLdBAdCtdCudBcdBcdAVdAVdAVdAVdAVdAVdAVdAVdCfdCvdCwdCxdCydCzdCAdCAdCAdCAdCBdAVdAVdAVdAVdAVdAVdBDdBOdBFdAVdBDdBOdBFdAVdBDdBOdBFdAVdBDdBOdBFdAVdBDdBOdBFdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdCDdAVdCEdCEdCEdCgdCFdCGdCHdCIdCJdCldCldCldCKdCcdAVdAVdAVdAVdAVdCLdAVdAVdBcdBcdBcdCMdCNdCOdIqdCOdCQdCRdBcdBcdBcdAVdAVdAVdAVdAVdAVdAVdAVdCfdCSdCTdCUdCUdCVdCWdCXdCYdCZdCBdDadDadDadAVdAVdAVdAVdDbdAVdAVdAVdDbdAVdAVdAVdDbdAVdAVdAVdDbdAVdAVdAVdDbdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaafaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdDcdDddDddDddDedDddDddDddDedDddDddDddDedDddDddDddDedDddDddDddDedDddDddDfdDgdDhdDidDjdDkdDldDmdDndDodDpdDqdDrdDsdDtdCcaaaaaaaaaaaaaaadDuaaaaaadBcdBcdBcdBjdDvdDwdDxdDydDzdBedBcdBcdBcaaaaaadDAaaaaaaaaaaaaaaadCfdDBdDCdDDdDDdDEdDFdDGdDHdDIdDJdDKdDLdDMdDNdDOdDPdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDRdDSdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdCDdAVdCEdCEdCEdCgdCFdCGdCHdCIdCJdCldCldCldCKdCcdAVdAVdAVdAVdAVdCLdAVdAVdBcdBcdBcdCMdCNdCOdDvdCOdCQdCRdBcdBcdBcdAVdAVdAVdAVdAVdAVdAVdAVdCfdCSdCTdCUdCUdCVdCWdCXdCYdCZdCBdDadDadDadAVdAVdAVdAVdDbdAVdAVdAVdDbdAVdAVdAVdDbdAVdAVdAVdDbdAVdAVdAVdDbdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaafaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdDcdDddDddDddDedDddDddDddDedDddDddDddDedDddDddDddDedDddDddDddDedDddDddDfdDgdDhdDidDjdDkdDldDmdDndDodDpdDqdDrdDsdDtdCcaaaaaaaaaaaaaaadDuaaaaaadBcdBcdBcdBjdIqdDwdDxdDydDzdBedBcdBcdBcaaaaaadDAaaaaaaaaaaaaaaadCfdDBdDCdDDdDDdDEdDFdDGdDHdDIdDJdDKdDLdDMdDNdDOdDPdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDQdDRdDSdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdCCdAVdAVdAVdAVdCEdDTdDUdDVdDWdDXdDYdCIdDZdCldEadEbdCcdCcaaaaaaaaaaaaaaadDuaaaaaaaaaaaadBcdBcdBcdBcdEcdBcdBcdBcdBcaaaaaaaaaaaadDAaaaaaaaaaaaaaaadCfdCfdEddEedCUdEfdCWdEgdEhdEidEjdEkdEldDadAVdAVdAVdAVdEmdAVdAVdAVdEmdAVdAVdAVdEmdAVdAVdAVdEmdAVdAVdAVdEmdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEnaaaaaaaaadEnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdBGdEodBudAVdBGdEodBudAVdBGdEodBudAVdBGdEodBudAVdBGdEodBudAVdAVdAVdAVdAVdAVdCgdChdChdChdCcdEpdEqdCcdCcdCcaaaaaaaaaaaaaaaaaadCLdAVdAVdAVdErdErdErdErdBcdEsdEtdEudErdErdErdAVdAVdAVdAVaaaaaaaaaaaaaaaaaadCfdCfdCfdEvdEwdCfdCAdCAdCAdCBdAVdAVdAVdAVdAVdAVdBDdExdBFdAVdBDdExdBFdAVdBDdExdBFdAVdBDdExdBFdAVdBDdExdBFdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEnaaaaaaaaadEnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaafaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdBGdEodBudAVdBGdEodBudAVdBGdEodBudAVdBGdEodBudAVdBGdEodBudAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdCcdEydCldCcaaaaaaaaaaabaaaaaadAVdAVdCLdAVdAVdAVdErdEzdEAdEBdECdEDdEEdEFdEAdEGdErdAVdAVdAVdAVdAVdAVaaaaaaaabaaaaaaaaadCfdCUdEHdCfdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdBDdExdBFdAVdBDdExdBFdAVdBDdExdBFdAVdBDdExdBFdAVdBDdExdBFdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBrdBraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/polaris.dme b/polaris.dme index 278006ab1d..4c4221a50c 100644 --- a/polaris.dme +++ b/polaris.dme @@ -239,6 +239,7 @@ #include "code\datums\progressbar.dm" #include "code\datums\recipe.dm" #include "code\datums\riding.dm" +#include "code\datums\soul_link.dm" #include "code\datums\sun.dm" #include "code\datums\weakref.dm" #include "code\datums\autolathe\arms.dm" @@ -1972,6 +1973,7 @@ #include "code\modules\mob\living\silicon\subystems.dm" #include "code\modules\mob\living\silicon\ai\ai.dm" #include "code\modules\mob\living\silicon\ai\ai_movement.dm" +#include "code\modules\mob\living\silicon\ai\ai_remote_control.dm" #include "code\modules\mob\living\silicon\ai\death.dm" #include "code\modules\mob\living\silicon\ai\examine.dm" #include "code\modules\mob\living\silicon\ai\icons.dm" @@ -2009,13 +2011,13 @@ #include "code\modules\mob\living\silicon\robot\robot_damage.dm" #include "code\modules\mob\living\silicon\robot\robot_items.dm" #include "code\modules\mob\living\silicon\robot\robot_movement.dm" +#include "code\modules\mob\living\silicon\robot\robot_remote_control.dm" #include "code\modules\mob\living\silicon\robot\drone\drone.dm" #include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm" #include "code\modules\mob\living\silicon\robot\drone\drone_console.dm" #include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm" #include "code\modules\mob\living\silicon\robot\drone\drone_items.dm" #include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm" -#include "code\modules\mob\living\silicon\robot\drone\drone_remote_control.dm" #include "code\modules\mob\living\silicon\robot\drone\drone_say.dm" #include "code\modules\mob\living\silicon\robot\robot_modules\event.dm" #include "code\modules\mob\living\silicon\robot\robot_modules\station.dm" From 6ad9a3418317c78a2efad3f755e100170e3e234c Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 7 Apr 2019 07:29:49 +1000 Subject: [PATCH 08/32] Fixes z-shadow bug --- code/modules/multiz/zshadow.dm | 1 + code/modules/turbolift/turbolift.dm | 2 ++ 2 files changed, 3 insertions(+) diff --git a/code/modules/multiz/zshadow.dm b/code/modules/multiz/zshadow.dm index 7a04768ae7..ca81e66f1a 100644 --- a/code/modules/multiz/zshadow.dm +++ b/code/modules/multiz/zshadow.dm @@ -24,6 +24,7 @@ sync_icon(L) /mob/zshadow/Destroy() + owner.shadow = null owner = null ..() //But we don't return because the hint is wrong return QDEL_HINT_QUEUE diff --git a/code/modules/turbolift/turbolift.dm b/code/modules/turbolift/turbolift.dm index 7d875cc885..6b657f4d4b 100644 --- a/code/modules/turbolift/turbolift.dm +++ b/code/modules/turbolift/turbolift.dm @@ -97,6 +97,8 @@ if(istype(AM, /mob/living)) var/mob/living/M = AM M.gib() + else if(istype(AM, /mob/zshadow)) + AM.Destroy() //prevent deleting shadow without deleting shadow's shadows else if(AM.simulated && !(istype(AM, /mob/observer))) qdel(AM) From de18cf4ccd711dc67f01fe2c216d64871c27e529 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 7 Apr 2019 12:31:14 +1000 Subject: [PATCH 09/32] Fixes being unable to pull items down stairs --- code/modules/multiz/movement.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index e701cda021..ff51b0b202 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -280,6 +280,10 @@ // Detect if we made a silent landing. if(locate(/obj/structure/stairs) in landing) + if(isliving(src)) + var/mob/living/L = src + if(L.pulling) + L.pulling.forceMove(landing) return 1 else var/atom/A = find_fall_target(oldloc, landing) From 86507e4fb3b160b90988574a4d4f6398371996a1 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 7 Apr 2019 12:56:58 +1000 Subject: [PATCH 10/32] Fixed items rendering below stairs --- code/__defines/_planes+layers.dm | 1 + code/modules/multiz/structures.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/__defines/_planes+layers.dm b/code/__defines/_planes+layers.dm index 60557d1dd7..3bee841881 100644 --- a/code/__defines/_planes+layers.dm +++ b/code/__defines/_planes+layers.dm @@ -68,6 +68,7 @@ What is the naming convention for planes or layers? // Obj planes #define OBJ_PLANE -35 + #define STAIRS_LAYER 2.5 // Layer for stairs #define HIDING_LAYER 2.6 // Layer at which mobs hide to be under things like tables #define DOOR_OPEN_LAYER 2.7 // Under all objects if opened. 2.7 due to tables being at 2.6 #define TABLE_LAYER 2.8 // Just under stuff that wants to be slightly below common objects. diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures.dm index 59c2f172b0..ea059bf02d 100644 --- a/code/modules/multiz/structures.dm +++ b/code/modules/multiz/structures.dm @@ -131,6 +131,7 @@ opacity = 0 anchored = 1 flags = ON_BORDER + layer = STAIRS_LAYER /obj/structure/stairs/Initialize() . = ..() From 00856f4da5910420af60c304cc18fe6a6c324804 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 7 Apr 2019 13:53:25 +1000 Subject: [PATCH 11/32] Fixes to gibber --- code/modules/food/kitchen/gibber.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/food/kitchen/gibber.dm b/code/modules/food/kitchen/gibber.dm index 3863dbddf7..db1c13ebde 100644 --- a/code/modules/food/kitchen/gibber.dm +++ b/code/modules/food/kitchen/gibber.dm @@ -217,13 +217,13 @@ spawn(gib_time) - src.operating = 0 - src.occupant.gib() - qdel(src.occupant) + operating = 0 + occupant.gib() + occupant = null playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) operating = 0 - for (var/obj/item/thing in contents) + for (var/obj/thing in contents) // There's a chance that the gibber will fail to destroy some evidence. if(istype(thing,/obj/item/organ) && prob(80)) qdel(thing) From 63cabe40e64d971c2f27ad4fd6ad709c8a70e367 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 7 Apr 2019 19:16:26 +1000 Subject: [PATCH 12/32] Fixes swapping with mobs while on table/swapping with mobs who are on table --- code/modules/mob/living/living.dm | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index f95e8f3733..fae3542f18 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -103,18 +103,23 @@ default behaviour is: return //BubbleWrap: people in handcuffs are always switched around as if they were on 'help' intent to prevent a person being pulled from being seperated from their puller - var/dense = 0 - if(loc.density) - dense = 1 - for(var/atom/movable/A in loc) - if(A == src) - continue - if(A.density) - if(A.flags&ON_BORDER) - dense = !A.CanPass(src, src.loc) - else - dense = 1 - if(dense) break + var/can_swap = 1 + if(loc.density || tmob.loc.density) + can_swap = 0 + if(can_swap) + for(var/atom/movable/A in loc) + if(A == src) + continue + if(!A.CanPass(tmob, loc)) + can_swap = 0 + if(!can_swap) break + if(can_swap) + for(var/atom/movable/A in tmob.loc) + if(A == tmob) + continue + if(!A.CanPass(src, tmob.loc)) + can_swap = 0 + if(!can_swap) break //Leaping mobs just land on the tile, no pushing, no anything. if(status_flags & LEAPING) @@ -123,7 +128,7 @@ default behaviour is: now_pushing = 0 return - if((tmob.mob_always_swap || (tmob.a_intent == I_HELP || tmob.restrained()) && (a_intent == I_HELP || src.restrained())) && tmob.canmove && canmove && !tmob.buckled && !buckled && !dense && can_move_mob(tmob, 1, 0)) // mutual brohugs all around! + if((tmob.mob_always_swap || (tmob.a_intent == I_HELP || tmob.restrained()) && (a_intent == I_HELP || src.restrained())) && tmob.canmove && canmove && !tmob.buckled && !buckled && can_swap && can_move_mob(tmob, 1, 0)) // mutual brohugs all around! var/turf/oldloc = loc forceMove(tmob.loc) tmob.forceMove(oldloc) From ed69123d747b50dadc1f798faf2f0e0f4f65df40 Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 8 Apr 2019 05:02:21 +1000 Subject: [PATCH 13/32] Stops decay on promethean core --- code/modules/organs/internal/brain.dm | 1 + code/modules/organs/organ.dm | 37 ++++++++++++++------------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm index 7385987a58..8bb09bebd2 100644 --- a/code/modules/organs/internal/brain.dm +++ b/code/modules/organs/internal/brain.dm @@ -151,6 +151,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain) name = "slime core" desc = "A complex, organic knot of jelly and crystalline particles." icon_state = "core" + decays = FALSE parent_organ = BP_TORSO clone_source = TRUE flags = OPENCONTAINER diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 7c91420f60..c959ab3752 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -6,30 +6,31 @@ var/list/organ_cache = list() germ_level = 0 // Strings. - var/organ_tag = "organ" // Unique identifier. - var/parent_organ = BP_TORSO // Organ holding this object. + var/organ_tag = "organ" // Unique identifier. + var/parent_organ = BP_TORSO // Organ holding this object. // Status tracking. - var/status = 0 // Various status flags - var/vital // Lose a vital limb, die immediately. - var/damage = 0 // Current damage to the organ + var/status = 0 // Various status flags + var/vital // Lose a vital limb, die immediately. + var/damage = 0 // Current damage to the organ var/robotic = 0 // Reference data. - var/mob/living/carbon/human/owner // Current mob owning the organ. - var/list/transplant_data // Transplant match data. - var/list/autopsy_data = list() // Trauma data for forensics. - var/list/trace_chemicals = list() // Traces of chemicals in the organ. - var/datum/dna/dna // Original DNA. - var/datum/species/species // Original species. + var/mob/living/carbon/human/owner // Current mob owning the organ. + var/list/transplant_data // Transplant match data. + var/list/autopsy_data = list() // Trauma data for forensics. + var/list/trace_chemicals = list() // Traces of chemicals in the organ. + var/datum/dna/dna // Original DNA. + var/datum/species/species // Original species. // Damage vars. - var/min_bruised_damage = 10 // Damage before considered bruised - var/min_broken_damage = 30 // Damage before becoming broken - var/max_damage // Damage cap - var/can_reject = 1 // Can this organ reject? - var/rejecting // Is this organ already being rejected? - var/preserved = 0 // If this is 1, prevents organ decay. + var/min_bruised_damage = 10 // Damage before considered bruised + var/min_broken_damage = 30 // Damage before becoming broken + var/max_damage // Damage cap + var/can_reject = 1 // Can this organ reject? + var/rejecting // Is this organ already being rejected? + var/decays = TRUE // Can this organ decay at all? + var/preserved = 0 // If this is 1, prevents organ decay. // Language vars. Putting them here in case we decide to do something crazy with sign-or-other-nonverbal languages. var/list/will_assist_languages = list() @@ -135,7 +136,7 @@ var/list/organ_cache = list() if(B && prob(40)) reagents.remove_reagent("blood",0.1) blood_splatter(src,B,1) - if(config.organs_decay) damage += rand(1,3) + if(config.organs_decay && decays) damage += rand(1,3) if(damage >= max_damage) damage = max_damage adjust_germ_level(rand(2,6)) From 1257f308eb8736027b9ca40d3048dac257fb1c12 Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 8 Apr 2019 07:01:01 +1000 Subject: [PATCH 14/32] Fixes being unable to climb ladders you're already on --- code/modules/multiz/structures.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures.dm index 59c2f172b0..aa4da74191 100644 --- a/code/modules/multiz/structures.dm +++ b/code/modules/multiz/structures.dm @@ -48,7 +48,7 @@ var/obj/structure/ladder/target_ladder = getTargetLadder(M) if(!target_ladder) return - if(!M.Move(get_turf(src))) + if(!(M.loc == loc) && !M.Move(get_turf(src))) to_chat(M, "You fail to reach \the [src].") return From 24a3e04e036946097107052cf3f6b460ff903709 Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 8 Apr 2019 08:15:18 +1000 Subject: [PATCH 15/32] Fixes conveyors being unable to go backwards --- code/modules/recycling/conveyor2.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 428484ea66..4121b8a558 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -1,6 +1,6 @@ #define OFF 0 #define FORWARDS 1 -#define BACKWARDS 2 +#define BACKWARDS -1 //conveyor2 is pretty much like the original, except it supports corners, but not diverters. //note that corner pieces transfer stuff clockwise when running forward, and anti-clockwise backwards. From 51ce7ec511923019fb8590b250c70d2ccd105e85 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Mon, 8 Apr 2019 09:10:40 +1000 Subject: [PATCH 16/32] Replaces pizza box New with Initialize --- code/modules/food/food/snacks.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 57d237ee5e..294baee09b 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -3285,23 +3285,23 @@ return ..() -/obj/item/pizzabox/margherita/New() +/obj/item/pizzabox/margherita/Initialize() pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita(src) boxtag = "Margherita Deluxe" -/obj/item/pizzabox/vegetable/New() +/obj/item/pizzabox/vegetable/Initialize() pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza(src) boxtag = "Gourmet Vegatable" -/obj/item/pizzabox/mushroom/New() +/obj/item/pizzabox/mushroom/Initialize() pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza(src) boxtag = "Mushroom Special" -/obj/item/pizzabox/meat/New() +/obj/item/pizzabox/meat/Initialize() pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza(src) boxtag = "Meatlover's Supreme" -/obj/item/pizzabox/old/New() +/obj/item/pizzabox/old/Initialize() pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/oldpizza(src) boxtag = "Deluxe Gourmet" From e6abb6cdd5ff55ced4678c4339ebec99dded8172 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Mon, 8 Apr 2019 09:18:41 +1000 Subject: [PATCH 17/32] Fixed silicons not getting message timestamps on radio if they were not mentioned --- code/modules/mob/hear_say.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index e7c097c2b3..5408742654 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -275,6 +275,8 @@ var/final_message = "[part_a][speaker_name][part_b][formatted]" if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) final_message = "[time][final_message]" + else + final_message = "[time][final_message]" to_chat(src, final_message) /mob/living/silicon/ai/on_hear_radio(part_a, speaker_name, track, part_b, formatted) @@ -282,6 +284,8 @@ var/final_message = "[part_a][track][part_b][formatted]" if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) final_message = "[time][final_message]" + else + final_message = "[time][final_message]" to_chat(src, final_message) /mob/proc/hear_signlang(var/message, var/verb = "gestures", var/datum/language/language, var/mob/speaker = null) From 44115ea54d6a5d128477988439f169d0143a5b55 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Mon, 8 Apr 2019 09:47:14 +1000 Subject: [PATCH 18/32] Fixes broken dead lizard sprite --- .../mob/living/simple_mob/subtypes/animal/passive/lizard.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/lizard.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/lizard.dm index adb2ea83ca..c8dfe1c3a6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/lizard.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/lizard.dm @@ -5,7 +5,7 @@ icon_state = "lizard" icon_living = "lizard" - icon_dead = "lizard-dead" + icon_dead = "lizard_dead" health = 5 maxHealth = 5 From 3e18a791ed9e87ed6ddeed46fe7757b3d1d838bb Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Mon, 8 Apr 2019 10:32:20 +1000 Subject: [PATCH 19/32] Fixes flags not being pick-upable from bags after use --- code/modules/mining/mine_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index dde3b7f6f7..75f675f67c 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -211,7 +211,7 @@ var/obj/item/stack/flag/newflag = new src.type(T) newflag.amount = 1 newflag.upright = 1 - anchored = 1 + newflag.anchored = 1 newflag.name = newflag.singular_name newflag.icon_state = "[newflag.base_state]_open" newflag.visible_message("[user] plants [newflag] firmly in the ground.") From e3a7f2adaca7b4d8574a19f9695fe24c0cb86e49 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Mon, 8 Apr 2019 10:49:10 +1000 Subject: [PATCH 20/32] Fixes deck of cards Pick Up bringing up list of mobs --- code/modules/games/cards.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index e9b3ae537e..08d762e093 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -254,8 +254,9 @@ return -/obj/item/weapon/deck/verb_pickup(mob/user as mob) // Snowflaked so pick up verb work as intended - if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr)))))) +/obj/item/weapon/deck/verb_pickup() // Snowflaked so pick up verb work as intended + var/mob/user = usr + if((istype(user) && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr)))))) if(!istype(usr, /mob/living/simple_mob)) if( !usr.get_active_hand() ) //if active hand is empty var/mob/living/carbon/human/H = user From dd6211096696292e9db5341251feaefcdccf16b3 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Mon, 8 Apr 2019 11:12:07 +1000 Subject: [PATCH 21/32] Fixes borgs not being unlockable with PDA holding ID --- code/modules/mob/living/silicon/robot/robot.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 85f66eca2a..4614d4d492 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -714,17 +714,18 @@ return 1 return 0 -/mob/living/silicon/robot/proc/check_access(obj/item/weapon/card/id/I) +/mob/living/silicon/robot/proc/check_access(obj/item/I) if(!istype(req_access, /list)) //something's very wrong return 1 var/list/L = req_access if(!L.len) //no requirements return 1 - if(!I || !istype(I, /obj/item/weapon/card/id) || !I.access) //not ID or no access + if(!I || !(istype(I, /obj/item/weapon/card/id) || istype(I, /obj/item/device/pda))) //not ID or PDA return 0 + var/access_found = I.GetAccess() for(var/req in req_access) - if(req in I.access) //have one of the required accesses + if(req in access_found) //have one of the required accesses return 1 return 0 From e39fe9b304b9ff7ded38a28f9d8a16710264d0e0 Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 8 Apr 2019 20:37:05 +1000 Subject: [PATCH 22/32] Fixes portals being able to send ghosts and other technical mobs --- code/game/objects/effects/portals.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index dc4bf5146a..7d86069656 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -13,18 +13,24 @@ GLOBAL_LIST_BOILERPLATE(all_portals, /obj/effect/portal) anchored = 1.0 /obj/effect/portal/Bumped(mob/M as mob|obj) + if(istype(M,/mob) && !(istype(M,/mob/living)) + return //do not send ghosts, zshadows, ai eyes, etc spawn(0) src.teleport(M) return return /obj/effect/portal/Crossed(AM as mob|obj) + if(istype(M,/mob) && !(istype(M,/mob/living)) + return //do not send ghosts, zshadows, ai eyes, etc spawn(0) src.teleport(AM) return return /obj/effect/portal/attack_hand(mob/user as mob) + if(istype(M,/mob) && !(istype(M,/mob/living)) + return //do not send ghosts, zshadows, ai eyes, etc spawn(0) src.teleport(user) return From 410b92ac94ffa5c0b1134754b55f8fdd1717db9b Mon Sep 17 00:00:00 2001 From: Heroman Date: Mon, 8 Apr 2019 20:40:00 +1000 Subject: [PATCH 23/32] Fixes compile errors that did not save for some reason --- code/game/objects/effects/portals.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 7d86069656..7dc82a0ffb 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -13,7 +13,7 @@ GLOBAL_LIST_BOILERPLATE(all_portals, /obj/effect/portal) anchored = 1.0 /obj/effect/portal/Bumped(mob/M as mob|obj) - if(istype(M,/mob) && !(istype(M,/mob/living)) + if(istype(M,/mob) && !(istype(M,/mob/living))) return //do not send ghosts, zshadows, ai eyes, etc spawn(0) src.teleport(M) @@ -21,7 +21,7 @@ GLOBAL_LIST_BOILERPLATE(all_portals, /obj/effect/portal) return /obj/effect/portal/Crossed(AM as mob|obj) - if(istype(M,/mob) && !(istype(M,/mob/living)) + if(istype(AM,/mob) && !(istype(AM,/mob/living))) return //do not send ghosts, zshadows, ai eyes, etc spawn(0) src.teleport(AM) @@ -29,7 +29,7 @@ GLOBAL_LIST_BOILERPLATE(all_portals, /obj/effect/portal) return /obj/effect/portal/attack_hand(mob/user as mob) - if(istype(M,/mob) && !(istype(M,/mob/living)) + if(istype(user) && !(istype(user,/mob/living))) return //do not send ghosts, zshadows, ai eyes, etc spawn(0) src.teleport(user) From 098e185b9cd5e3eeb6dd2c78d05de194f4aa0e87 Mon Sep 17 00:00:00 2001 From: Heroman Date: Tue, 9 Apr 2019 06:25:38 +1000 Subject: [PATCH 24/32] Fixes ability to repair doors via power-using stacks --- code/game/machinery/doors/door.dm | 61 ++++++++++++++++--------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index dfd093dcf2..930dfee105 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -27,7 +27,7 @@ var/destroy_hits = 10 //How many strong hits it takes to destroy the door var/min_force = 10 //minimum amount of force needed to damage the door with a melee weapon var/hitsound = 'sound/weapons/smash.ogg' //sound door makes when hit with a weapon - var/obj/item/stack/material/steel/repairing + var/repairing = 0 var/block_air_zones = 1 //If set, air zones cannot merge across the door even when it is opened. var/close_door_at = 0 //When to automatically close the door, if possible @@ -210,13 +210,13 @@ if(istype(I)) if(istype(I, /obj/item/stack/material) && I.get_material_name() == src.get_material_name()) if(stat & BROKEN) - user << "It looks like \the [src] is pretty busted. It's going to need more than just patching up now." + to_chat(user, "It looks like \the [src] is pretty busted. It's going to need more than just patching up now.") return if(health >= maxhealth) - user << "Nothing to fix!" + to_chat(user, "Nothing to fix!") return if(!density) - user << "\The [src] must be closed before you can repair it." + to_chat(user, "\The [src] must be closed before you can repair it.") return //figure out how much metal we need @@ -224,44 +224,45 @@ amount_needed = (round(amount_needed) == amount_needed)? amount_needed : round(amount_needed) + 1 //Why does BYOND not have a ceiling proc? var/obj/item/stack/stack = I - var/transfer - if (repairing) - transfer = stack.transfer_to(repairing, amount_needed - repairing.amount) - if (!transfer) - user << "You must weld or remove \the [repairing] from \the [src] before you can add anything else." + var/amount_given = amount_needed - repairing + var/mats_given = stack.get_amount() + if(repairing && amount_given <= 0) + to_chat(user, "You must weld or remove \the [repairing] from \the [src] before you can add anything else.") else - repairing = stack.split(amount_needed) - if (repairing) - repairing.loc = src - transfer = repairing.amount - - if (transfer) - user << "You fit [transfer] [stack.singular_name]\s to damaged and broken parts on \the [src]." + if(mats_given >= amount_given) + if(stack.use(amount_given)) + repairing += amount_given + else + if(stack.use(mats_given)) + repairing += mats_given + amount_given = mats_given + if(amount_given) + to_chat(user, "You fit [amount_given] [stack.singular_name]\s to damaged and broken parts on \the [src].") return if(repairing && istype(I, /obj/item/weapon/weldingtool)) if(!density) - user << "\The [src] must be closed before you can repair it." + to_chat(user, "\The [src] must be closed before you can repair it.") return var/obj/item/weapon/weldingtool/welder = I if(welder.remove_fuel(0,user)) - user << "You start to fix dents and weld \the [repairing] into place." + to_chat(user, "You start to fix dents and weld \the [repairing] into place.") playsound(src, welder.usesound, 50, 1) - if(do_after(user, (5 * repairing.amount) * welder.toolspeed) && welder && welder.isOn()) - user << "You finish repairing the damage to \the [src]." - health = between(health, health + repairing.amount*DOOR_REPAIR_AMOUNT, maxhealth) + if(do_after(user, (5 * repairing) * welder.toolspeed) && welder && welder.isOn()) + to_chat(user, "You finish repairing the damage to \the [src].") + health = between(health, health + repairing*DOOR_REPAIR_AMOUNT, maxhealth) update_icon() - qdel(repairing) - repairing = null + repairing = 0 return if(repairing && I.is_crowbar()) - user << "You remove \the [repairing]." + var/obj/item/stack/material/repairing_sheet = get_material().place_sheet(loc) + repairing_sheet.amount += repairing-1 + repairing = 0 + to_chat(user, "You remove \the [repairing_sheet].") playsound(src, I.usesound, 100, 1) - repairing.loc = user.loc - repairing = null return //psa to whoever coded this, there are plenty of objects that need to call attack() on doors without bludgeoning them. @@ -321,13 +322,13 @@ /obj/machinery/door/examine(mob/user) . = ..() if(src.health <= 0) - user << "\The [src] is broken!" + to_chat(user, "\The [src] is broken!") if(src.health < src.maxhealth / 4) - user << "\The [src] looks like it's about to break!" + to_chat(user, "\The [src] looks like it's about to break!") else if(src.health < src.maxhealth / 2) - user << "\The [src] looks seriously damaged!" + to_chat(user, "\The [src] looks seriously damaged!") else if(src.health < src.maxhealth * 3/4) - user << "\The [src] shows signs of damage!" + to_chat(user, "\The [src] shows signs of damage!") /obj/machinery/door/proc/set_broken() From ecf7011ee8c16da62c1ba5751b5becae9d9dd8e0 Mon Sep 17 00:00:00 2001 From: Heroman Date: Tue, 9 Apr 2019 07:00:18 +1000 Subject: [PATCH 25/32] Fixes a wrong var call in door repair message --- code/game/machinery/doors/door.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 930dfee105..8eaaf8c5e2 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -227,7 +227,7 @@ var/amount_given = amount_needed - repairing var/mats_given = stack.get_amount() if(repairing && amount_given <= 0) - to_chat(user, "You must weld or remove \the [repairing] from \the [src] before you can add anything else.") + to_chat(user, "You must weld or remove \the [get_material_name()] from \the [src] before you can add anything else.") else if(mats_given >= amount_given) if(stack.use(amount_given)) From 24efd11356d191fe3a8c54a7560d85a3571c8864 Mon Sep 17 00:00:00 2001 From: Heroman Date: Tue, 9 Apr 2019 07:10:20 +1000 Subject: [PATCH 26/32] And for welding --- code/game/machinery/doors/door.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 8eaaf8c5e2..972348ac44 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -248,7 +248,7 @@ var/obj/item/weapon/weldingtool/welder = I if(welder.remove_fuel(0,user)) - to_chat(user, "You start to fix dents and weld \the [repairing] into place.") + to_chat(user, "You start to fix dents and weld \the [get_material_name()] into place.") playsound(src, welder.usesound, 50, 1) if(do_after(user, (5 * repairing) * welder.toolspeed) && welder && welder.isOn()) to_chat(user, "You finish repairing the damage to \the [src].") From 75c96eec21c8df3cea766cb988243bbad2550554 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Wed, 10 Apr 2019 08:02:23 +1000 Subject: [PATCH 27/32] Allows usage of any proper ID holder --- code/modules/mob/living/silicon/robot/robot.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 4614d4d492..76bc2254e8 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -621,7 +621,7 @@ else to_chat(user, "Unable to locate a radio.") - else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)||istype(W, /obj/item/weapon/card/robot)) // trying to unlock the interface with an ID card + else if (W.GetID()) // trying to unlock the interface with an ID card if(emagged)//still allow them to open the cover to_chat(user, "The interface seems slightly damaged") if(opened) @@ -721,7 +721,7 @@ var/list/L = req_access if(!L.len) //no requirements return 1 - if(!I || !(istype(I, /obj/item/weapon/card/id) || istype(I, /obj/item/device/pda))) //not ID or PDA + if(!I) //nothing to check with..? return 0 var/access_found = I.GetAccess() for(var/req in req_access) From c929af1ec62f9f7986f87bd9f17ea849fea11749 Mon Sep 17 00:00:00 2001 From: Woodratt Date: Tue, 9 Apr 2019 22:54:09 -0700 Subject: [PATCH 28/32] Arrivals Power Fix - Arrivals shuttle should be able to dock at arrivals now even without power - Added crowbars to dock 2 - Xenobiology access restored to two windoors lacking --- code/game/area/Space Station 13 areas.dm | 6 +++ html/changelogs/Woodrat - mapfixes.yml | 5 +++ maps/southern_cross/southern_cross-1.dmm | 51 ++++++++++++------------ 3 files changed, 36 insertions(+), 26 deletions(-) create mode 100644 html/changelogs/Woodrat - mapfixes.yml diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index c7f64f225c..81c74f3ba3 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -978,6 +978,12 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "entry_D2" base_turf = /turf/space +/area/hallway/secondary/entry/D2/arrivals + name = "\improper Shuttle Dock Hallway - Dock Two" + icon_state = "entry_D2" + base_turf = /turf/space + requires_power = 0 + /area/hallway/secondary/entry/D3 name = "\improper Shuttle Dock Hallway - Dock Three" icon_state = "entry_D3" diff --git a/html/changelogs/Woodrat - mapfixes.yml b/html/changelogs/Woodrat - mapfixes.yml new file mode 100644 index 0000000000..5371940049 --- /dev/null +++ b/html/changelogs/Woodrat - mapfixes.yml @@ -0,0 +1,5 @@ +author: Woodrat +delete-after: True +changes: + - tweak: "Arrivals dock should not stay locked shut" + - bugfix: "Two windoors in xenobio stationside lacking access requirements" \ No newline at end of file diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index e6f1143290..4a51c4653c 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -2293,7 +2293,7 @@ "aSe" = (/turf/simulated/floor/airless,/area/hallway/secondary/escape/firstdeck/ep_aftstarboard) "aSf" = (/turf/space,/area/skipjack_station/firstdeck) "aSg" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod3/station) -"aSh" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/window/brigdoor/southleft{name = "Containment Pen"; req_access = newlist()},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/techmaint,/area/rnd/xenobiology) +"aSh" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning,/obj/machinery/door/window/brigdoor/southright{name = "Containment Pen"; req_access = list(47)},/turf/simulated/floor/tiled/techmaint,/area/rnd/xenobiology) "aSi" = (/obj/structure/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/closet/walllocker/emerglocker{pixel_y = -32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) "aSj" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) "aSk" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_hatch"; locked = 1; name = "Escape Pod Hatch 3"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) @@ -9319,10 +9319,10 @@ "dxk" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) "dxl" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_north_starboard_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dxm" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "arrivals_dock_north_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dxn" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_inner"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) +"dxn" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_inner"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2/arrivals) "dxo" = (/turf/simulated/floor/airless,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/cryo/station) -"dxp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "arrivals_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dxq" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) +"dxp" = (/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "arrivals_dock_north_airlock"; master_tag = "arrivals_dock"; pixel_y = 30; req_one_access = list(13); tag_airlock_mech_sensor = "arrivals_dock_north_mech"; tag_airpump = "arrivals_dock_north_pump"; tag_chamber_sensor = "arrivals_dock_north_sensor"; tag_exterior_door = "arrivals_dock_north_outer"; tag_interior_door = "arrivals_dock_north_inner"; tag_shuttle_mech_sensor = "shuttle_dock_north_mech"},/obj/effect/floor_decal/industrial/loading{icon_state = "loadingarea"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2/arrivals) +"dxq" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "arrivals_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2/arrivals) "dxr" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "dock3_north_outer"; locked = 1; name = "External Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3) "dxs" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "dock3_north_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dxt" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "dock3_north_airlock"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "dock3_north_pump"; tag_chamber_sensor = "dock3_north_sensor"; tag_exterior_door = "dock3_north_outer"; tag_interior_door = "dock3_north_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "dock3_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) @@ -9340,10 +9340,10 @@ "dxF" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dxG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"},/turf/simulated/floor/tiled/monotile,/area/hallway/secondary/entry/D2) "dxH" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dxI" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_inner"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) -"dxJ" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dxK" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "arrivals_dock_north_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "arrivals_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dxL" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "arrivals_dock_north_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) +"dxI" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2/arrivals) +"dxJ" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_inner"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2/arrivals) +"dxK" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2/arrivals) +"dxL" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "arrivals_dock_north_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "arrivals_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2/arrivals) "dxM" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "dock3_north_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "dock3_north_outer"; locked = 1; name = "External Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) "dxN" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "dock3_north_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "dock3_north_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dxO" = (/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "dock3_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) @@ -9381,9 +9381,9 @@ "dyu" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_dock_inner"; locked = 1; name = "Dock One Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1) "dyv" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "response_shuttle_dock_airlock"; name = "interior access button"; pixel_x = -28; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1) "dyw" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1) -"dyx" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) +"dyx" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/obj/item/weapon/tool/crowbar/red,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dyy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/monotile,/area/hallway/secondary/entry/D2) -"dyz" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) +"dyz" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/structure/closet/emcloset,/obj/item/weapon/tool/crowbar/red,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dyA" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dyB" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "shuttle2_dock_airlocksc"; name = "interior access button"; pixel_x = 28; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dyC" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "s2s_dock_inner"; locked = 1; name = "Dock Three Internal Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3) @@ -9420,10 +9420,10 @@ "dzh" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) "dzi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/monotile,/area/hallway/secondary/entry/D2) "dzj" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dzk" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_south_inner"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) -"dzl" = (/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "arrivals_dock_north_airlock"; master_tag = "arrivals_dock"; pixel_y = 30; req_one_access = list(13); tag_airlock_mech_sensor = "arrivals_dock_north_mech"; tag_airpump = "arrivals_dock_north_pump"; tag_chamber_sensor = "arrivals_dock_north_sensor"; tag_exterior_door = "arrivals_dock_north_outer"; tag_interior_door = "arrivals_dock_north_inner"; tag_shuttle_mech_sensor = "shuttle_dock_north_mech"},/obj/effect/floor_decal/industrial/loading{icon_state = "loadingarea"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dzm" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "arrivals_dock_south_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "arrivals_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dzn" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_south_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "arrivals_dock_south_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) +"dzk" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "arrivals_dock_north_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2/arrivals) +"dzl" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_south_inner"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2/arrivals) +"dzm" = (/obj/effect/floor_decal/industrial/loading{icon_state = "loadingarea"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2/arrivals) +"dzn" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "arrivals_dock_south_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "arrivals_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2/arrivals) "dzo" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "dock3_south_outer"; locked = 1; name = "External Airlock Access"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "dock3_south_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3) "dzp" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "dock3_south_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "dock3_south_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dzq" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "dock3_south_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) @@ -9439,10 +9439,10 @@ "dzA" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_starboard_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dzB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"},/turf/simulated/floor/tiled/monotile,/area/hallway/secondary/entry/D2) "dzC" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "arrivals_dock_south_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dzD" = (/obj/effect/floor_decal/industrial/loading{icon_state = "loadingarea"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dzE" = (/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "arrivals_dock_south_airlock"; master_tag = "arrivals_dock"; pixel_y = -30; req_one_access = list(13); tag_airlock_mech_sensor = "arrivals_dock_south_mech"; tag_airpump = "arrivals_dock_south_pump"; tag_chamber_sensor = "arrivals_dock_south_sensor"; tag_exterior_door = "arrivals_dock_south_outer"; tag_interior_door = "arrivals_dock_south_inner"; tag_shuttle_mech_sensor = "arrivals_dock_south_mech"},/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dzF" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "arrivals_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dzG" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_south_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) +"dzD" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_south_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "arrivals_dock_south_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2/arrivals) +"dzE" = (/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "intact"; dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_south_inner"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2/arrivals) +"dzF" = (/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "arrivals_dock_south_airlock"; master_tag = "arrivals_dock"; pixel_y = -30; req_one_access = list(13); tag_airlock_mech_sensor = "arrivals_dock_south_mech"; tag_airpump = "arrivals_dock_south_pump"; tag_chamber_sensor = "arrivals_dock_south_sensor"; tag_exterior_door = "arrivals_dock_south_outer"; tag_interior_door = "arrivals_dock_south_inner"; tag_shuttle_mech_sensor = "arrivals_dock_south_mech"},/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2/arrivals) +"dzG" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "arrivals_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2/arrivals) "dzH" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "dock3_south_outer"; locked = 1; name = "External Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) "dzI" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "dock3_south_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dzJ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "dock3_south_airlock"; pixel_x = 0; pixel_y = -30; req_one_access = list(13); tag_airpump = "dock3_south_pump"; tag_chamber_sensor = "dock3_south_sensor"; tag_exterior_door = "dock3_south_outer"; tag_interior_door = "dock3_south_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "dock3_south_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) @@ -9471,7 +9471,7 @@ "dAg" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1) "dAh" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1) "dAi" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dAj" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) +"dAj" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/item/weapon/tool/crowbar/red,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dAk" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dAl" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "nuke_shuttle_dock_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dAm" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3) @@ -9607,7 +9607,7 @@ "dCM" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/techfloor,/area/ai) "dCN" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/techfloor,/area/ai) "dCO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/greengrid,/area/ai) -"dCP" = (/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "intact"; dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_south_inner"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2) +"dCP" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_south_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2/arrivals) "dCQ" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/techfloor,/area/ai) "dCR" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/techfloor,/area/ai) "dCS" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard) @@ -10948,7 +10948,7 @@ "ecC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/meter,/obj/random/mob/mouse,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport) "ecD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/meter,/obj/random/mob/mouse,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard) "ecE" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/bridge/meeting_room) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11410,15 +11410,15 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsTdsTdsTaaaaaaaaadsTdsTdsTaaaaaaaaaaaadvjdwsdwwdvjaaaaaaaafaaadvHdvHdvHdvHdvHdvHdvHdvHdvHaaaaafaaaaaadvkdwxdvwdvxdvkaaaaaaaafaaadwldwldwldwldwldwldwlaaaaaaaaaaafaaaaaadvodwydwvdvoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadufdufdufdufdufdufdufaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsTdsTaaaaaaaaaaaaaaadsTdsTaaaaaaaaaaaaduUdwzdwAduUaaaaaaaaadvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHaaaaaaaaaduYdwBdwCdwDduYaaaaaaaaadwldwldwldwldwldwldwldwldwlaaaaaaaaaaaaaaadvedwEdwFdveaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadufdufdufdufdufdufdufaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaadwGduUduUduUduUdwHdwIdwhdwJdwKdwLdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdwMdwNdwOdwPdwQdwRdwSdvkdVjdVjdVkdwldwldwldwldwldwldwldwldwlaaaaaadVndVldVmdwXdwYdwZdvedvedvedvedxaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadufdufdufdufdufdufdufaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduUdxbdxcdxddxedxfdxgdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdxhdxidxjdxkdxldvwdxmdxndzldxpdxqdwldwldwldwldwldwldwldwldwlaaaaaadxrdxsdxtdxudxvdxwdveaaaaaaaaaaaadxxdxxaaaaaaaaaaaaaaadxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadufdufdufdufdufaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvjdwsdxydxddxzdxAdxBdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdxCdxDdxEdxkdxFdxGdxHdxIdxJdxKdxLdwldwldwldwldwldwldwldwldwlaaaaaadxMdxNdxOdxudxPdwvdvoaaaaaaaaaaaadxxdxxdxxaaaaaaaaadxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduUdxbdxcdxddxedxfdxgdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdxhdxidxjdxkdxldvwdxmdxndxpdxqdxIdwldwldwldwldwldwldwldwldwlaaaaaadxrdxsdxtdxudxvdxwdveaaaaaaaaaaaadxxdxxaaaaaaaaaaaaaaadxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadufdufdufdufdufaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvjdwsdxydxddxzdxAdxBdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdxCdxDdxEdxkdxFdxGdxHdxJdxKdxLdzkdwldwldwldwldwldwldwldwldwlaaaaaadxMdxNdxOdxudxPdwvdvoaaaaaaaaaaaadxxdxxdxxaaaaaaaaadxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdxQaaaaaaaaaaaadvjdvjdxRdxSdwhdxTdxUdvDdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdxVdxWdxXdwPdxYdxZdyadvkdvkdVjdVjdwldwldwldwldwldwldwldwldwlaaaaaadvNdVodycdyddyedyfdvodvoaaaaaaaaadxxdxxdxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdygdyhdVpdwhdyjdwjdwkdykduUaaaaaadvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHaaaaaaduYdyldvxdvwdvxdymduYaaaaaadwldwldwldwldwldwldwldwldwlaaaaaaaaaaaadvedyndwmdwndyodwpdVqdyqdvNdxxdxxdxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdyrdysdytdyudyvdvUdwtdywduUaaaaaadvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHaaaaaaduYdyxdvxdyydvxdyzduYaaaaaadwldwldwldwldwldwldwldwldwlaaaaaaaaaaaadvedyAdwudvZdyBdyCdyDdyEdyFdxxdxxdxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdvDdvDdvDdvjdyGdyHdyIdyJduUaaaaaadvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHaaaaaaduYdyKdvxdyLdyMdyNduYaaaaaadwldwldwldwldwldwldwldwldwlaaaaaaaaaaaadvedyOdyPdyQdyRdvodvNdvNdvOdxxdxxdxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxQdxQdxQdxQdxQdxQdxQdxQdxQdxQdxQaaaaaaaaaaaadvjdvjdySdyTdwhdwJdwKdvDdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdxVdwNdwOdwPdyUdyVdyWdvkdvkdVjdVjdwldwldwldwldwldwldwldwldwlaaaaaadvNdVldVmdwXdyXdyYdvodvoaaaaaaaaadxxdxxdxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvjdwsdyZdzadzbdzcdzddvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdzedzfdzgdzhdxFdzidzjdzkdzDdzmdzndwldwldwldwldwldwldwldwldwlaaaaaadzodzpdzqdzrdzsdwvdvoaaaaaaaaaaaaaaadxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduUdwsdztdzadzudzvdzwdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdzxdzydzzdzhdzAdzBdzCdCPdzEdzFdzGdwldwldwldwldwldwldwldwldwlaaaaaadzHdzIdzJdzrdzKdwvdveaaaaaaaaaaaaaaadxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvjdwsdyZdzadzbdzcdzddvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdzedzfdzgdzhdxFdzidzjdzldzmdzndzDdwldwldwldwldwldwldwldwldwlaaaaaadzodzpdzqdzrdzsdwvdvoaaaaaaaaaaaaaaadxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduUdwsdztdzadzudzvdzwdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdzxdzydzzdzhdzAdzBdzCdzEdzFdzGdCPdwldwldwldwldwldwldwldwldwlaaaaaadzHdzIdzJdzrdzKdwvdveaaaaaaaaaaaaaaadxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaadwGduUduUduUduUdzLdzMdwhdxTdxUdwLdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdwMdxWdxXdwPdzNdyVdzOdvkdVjdVjdVkdwldwldwldwldwldwldwldwldwlaaaaaadVndVodVrdwXdzPdzQdvedvedvedvedxaaaadxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduUdzRdzSduUaaaaaaaaadvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHaaaaaaaaaduYdzTdzUdzVduYaaaaaaaaadwldwldwldwldwldwldwldwldwlaaaaaaaaaaaaaaadvedzWdzXdveaaaaaaaaaaaaaaadxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvjdzYdzZdvjaaaaaaaaadvHdvHdvHdvHdvHdvHdvHdvHdvHdvHdvHaaaaaaaaadvudAadAbdvxdvuaaaaaaaaadwldwldwldwldwldwldwldwldwlaaaaaaaaaaaaaaadvodAcdAddvoaaaaaaaaaaaaaaadxxdxxdxxdxxdxxdxxdxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11722,4 +11722,3 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa dUOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} - From 0696ffe346062f7a7469ddc92ac861889eaa7ff1 Mon Sep 17 00:00:00 2001 From: Neerti Date: Sat, 13 Apr 2019 17:04:35 -0400 Subject: [PATCH 29/32] Fixes closet initialization (#6033) --- code/game/objects/structures/crates_lockers/closets.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 962f7956c4..25d5979002 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -33,6 +33,11 @@ var/list/starts_with /obj/structure/closet/Initialize() + ..() + // Closets need to come later because of spawners potentially creating objects during init. + return INITIALIZE_HINT_LATELOAD + +/obj/structure/closet/LateInitialize() . = ..() if(starts_with) create_objects_in_loc(src, starts_with) From d408bc9775876c551747a7f71c43f98bfa497739 Mon Sep 17 00:00:00 2001 From: Neerti Date: Sat, 13 Apr 2019 17:36:19 -0400 Subject: [PATCH 30/32] Adds cancel button to kick button (#6034) --- code/modules/admin/topic.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index ac7958d6bd..e06d08070c 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -790,13 +790,13 @@ if (ismob(M)) if(!check_if_greater_rights_than(M.client)) return - var/reason = sanitize(input("Please enter reason")) + var/reason = sanitize(input("Please enter reason.") as null|message) if(!reason) - M << "You have been kicked from the server" - else - M << "You have been kicked from the server: [reason]" - log_admin("[key_name(usr)] booted [key_name(M)].") - message_admins("[key_name_admin(usr)] booted [key_name_admin(M)].", 1) + return + + to_chat(M, span("critical", "You have been kicked from the server: [reason]")) + log_admin("[key_name(usr)] booted [key_name(M)] for reason: '[reason]'.") + message_admins("[key_name_admin(usr)] booted [key_name_admin(M)] for reason '[reason]'.", 1) //M.client = null qdel(M.client) From e27748bc51533a7a67e3c9baf810405f38f37769 Mon Sep 17 00:00:00 2001 From: Jonathon Key Date: Sat, 13 Apr 2019 16:36:59 -0500 Subject: [PATCH 31/32] Adds a colorable cloak in loadout (#6040) --- .../preference_setup/loadout/loadout_suit.dm | 8 ++++++++ .../clothing/under/accessories/clothing.dm | 7 +++++++ icons/mob/ties.dmi | Bin 75147 -> 76061 bytes icons/obj/clothing/ties.dmi | Bin 44236 -> 44614 bytes 4 files changed, 15 insertions(+) diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 2dbdcde1d3..e2a661f5f3 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -273,6 +273,14 @@ datum/gear/suit/duster display_name = "cloak, medical" path = /obj/item/clothing/accessory/poncho/roles/cloak/medical +/datum/gear/suit/roles/poncho/cloak/custom //A colorable cloak + display_name = "cloak (colorable)" + path = /obj/item/clothing/accessory/poncho/roles/cloak/custom + +/datum/gear/suit/roles/poncho/cloak/custom/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + /datum/gear/suit/unathi_robe display_name = "roughspun robe" path = /obj/item/clothing/suit/unathi/robe diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/under/accessories/clothing.dm index 29057e8469..66636aac6f 100644 --- a/code/modules/clothing/under/accessories/clothing.dm +++ b/code/modules/clothing/under/accessories/clothing.dm @@ -216,6 +216,13 @@ icon_state = "medcloak" item_state = "medcloak" + +/obj/item/clothing/accessory/poncho/roles/cloak/custom //A colorable cloak + name = "cloak" + desc = "A simple, bland cloak." + icon_state = "colorcloak" + item_state = "colorcloak" + /obj/item/clothing/accessory/hawaii name = "flower-pattern shirt" desc = "You probably need some welder googles to look at this." diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index 25935ccfbc16e237b5a1fb3e1f0975f608b330b7..ed5fd931450498289a4d5162e65eca5ca0d92527 100644 GIT binary patch delta 15731 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 NQhTXdrDFB(e*k8xVXFWD From 7676cc049e86f2241f68d9e6326b44bca3690495 Mon Sep 17 00:00:00 2001 From: Neerti Date: Sat, 13 Apr 2019 17:38:59 -0400 Subject: [PATCH 32/32] Fixes weather sound z-level desyncs from shuttles. (#6035) --- code/_helpers/unsorted.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 460a1455d5..cde028f8d4 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -828,15 +828,25 @@ proc/GaussRandRound(var/sigma,var/roundto) SX.air.copy_from(ST.zone.air) ST.zone.remove(ST) + var/z_level_change = FALSE + if(T.z != X.z) + z_level_change = TRUE + //Move the objects. Not forceMove because the object isn't "moving" really, it's supposed to be on the "same" turf. for(var/obj/O in T) O.loc = X O.update_light() + if(z_level_change) // The objects still need to know if their z-level changed. + O.onTransitZ(T.z, X.z) //Move the mobs unless it's an AI eye or other eye type. for(var/mob/M in T) if(istype(M, /mob/observer/eye)) continue // If we need to check for more mobs, I'll add a variable M.loc = X + + if(z_level_change) // Same goes for mobs. + M.onTransitZ(T.z, X.z) + if(istype(M, /mob/living)) var/mob/living/LM = M LM.check_shadow() // Need to check their Z-shadow, which is normally done in forceMove().