From 942244b7ca11ad9d217c94c4e983c58fbcd3c24b Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 00:57:33 -0400 Subject: [PATCH 01/24] Update robot_upgrades.dm --- .../objects/items/robot/robot_upgrades.dm | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 607c3a5fd051..ac62e6917d15 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -747,6 +747,55 @@ if (.) for(var/obj/item/storage/part_replacer/cyborg/RPED in R.module.modules) R.module.remove_module(RPED, TRUE) + + + + + + + +/obj/item/borg/upgrade/upgraded_rped + name = "engineering cyborg bluepsace RPED" + desc = "An upgraded version of the rapid part exchange device for the engineering cyborg, which replaces the old one." + icon = 'icons/obj/storage.dmi' + icon_state = "BS_RPED" + require_module = TRUE + module_type = /obj/item/robot_module/engineering + module_flags = BORG_MODULE_ENGINEERING + +/obj/item/borg/upgrade/upgraded_rped/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + // Removes old RPED + for(var/obj/item/storage/part_replacer/cyborg/RPED in R.module.modules) + R.module.remove_module(RPED, TRUE) + + var/obj/item/storage/part_replacer/cyborg/BSRPED = locate() in R.module.modules + if(BSRPED) + to_chat(user, "This unit is already equipped with a Bluespace RPED module.") + return FALSE + + // Puts in Bluespace RPED + BSRPED = new(R.module) + R.module.basic_modules += BSRPED + R.module.add_module(BSRPED, FALSE, TRUE) + +/obj/item/borg/upgrade/upgraded_rped/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + for(var/obj/item/storage/part_replacer/cyborg/BSRPED in R.module.modules) + R.module.remove_module(BSRPED, TRUE) + + + + +/obj/item/borg/upgrade/holofan + name = "Engineering cybrog ATMOS holofan projector" + desc = "A ATMOS holofan projector for the cyborg." + icon_state = "cyborg_upgrade2" + require_module = TRUE + module_type = /obj/item/robot_module/engineering + module_flags = BORG_MODULE_ENGINEERING /obj/item/borg/upgrade/plasmacutter name = "mining cyborg plasma cutter" From 025038d98aa1e45caaee43cadd344c7fe2ce84d9 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 01:10:17 -0400 Subject: [PATCH 02/24] Update all_nodes.dm --- code/modules/research/techweb/all_nodes.dm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index a19b2cafc967..7c4544babd98 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -313,9 +313,18 @@ display_name = "Cyborg Upgrades: Utility" description = "Utility upgrades for cyborgs." prereq_ids = list("engineering") - design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped") + design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped, borg_upgrade_holofan") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 + + /datum/techweb_node/adv_cyborg_upg_util + id = "adv_cyborg_upg_util" + display_name = "Cyborg Upgrades: Advance Utility" + description = "AdcanceUtility upgrades for cyborgs." + prereq_ids = list("adv_cyborg_upg_util") + design_ids = list("borg_upgrade_upgraded_rped") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + export_price = 4000 /datum/techweb_node/cyborg_upg_med id = "cyborg_upg_med" From a2248a806c78494f8e0ef8e03e05bb1e7711778a Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 01:39:00 -0400 Subject: [PATCH 03/24] Update all_nodes.dm --- code/modules/research/techweb/all_nodes.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 7c4544babd98..b9fdca861c9e 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -316,12 +316,12 @@ design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped, borg_upgrade_holofan") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 - - /datum/techweb_node/adv_cyborg_upg_util + +/datum/techweb_node/adv_cyborg_upg_util id = "adv_cyborg_upg_util" display_name = "Cyborg Upgrades: Advance Utility" - description = "AdcanceUtility upgrades for cyborgs." - prereq_ids = list("adv_cyborg_upg_util") + description = "Adcance Utility upgrades for cyborgs." + prereq_ids = list("cyborg_upg_util") design_ids = list("borg_upgrade_upgraded_rped") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) export_price = 4000 From e278fb4ea725c019471a4df38e6e76499f875c7c Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 01:45:13 -0400 Subject: [PATCH 04/24] Update all_nodes.dm --- code/modules/research/techweb/all_nodes.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index b9fdca861c9e..3ae775b249d7 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -320,8 +320,8 @@ /datum/techweb_node/adv_cyborg_upg_util id = "adv_cyborg_upg_util" display_name = "Cyborg Upgrades: Advance Utility" - description = "Adcance Utility upgrades for cyborgs." - prereq_ids = list("cyborg_upg_util") + description = "Advance Utility upgrades for cyborgs." + prereq_ids = list("engineering", "cyborg_upg_util") design_ids = list("borg_upgrade_upgraded_rped") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) export_price = 4000 From 1b7901382c808d92df0a1f6a1fb9933a1d17e829 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 01:58:17 -0400 Subject: [PATCH 05/24] Update layout.dm --- code/modules/research/techweb/layout.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/research/techweb/layout.dm b/code/modules/research/techweb/layout.dm index 13caacb682b4..98f2392756b4 100644 --- a/code/modules/research/techweb/layout.dm +++ b/code/modules/research/techweb/layout.dm @@ -147,6 +147,9 @@ ui_x = -96 ui_y = 160 +/datum/techweb_node/adv_cyborg_upg_util + ui_x = -96 + ui_y = 180 /datum/techweb_node/basic_mining ui_x = 96 ui_y = -384 @@ -509,4 +512,4 @@ /datum/techweb_node/mech_xray ui_x = -640 - ui_y = -896 \ No newline at end of file + ui_y = -896 From d709dd37b1cc988e5e04bc2b5b4fa9c99c64abb6 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 02:13:59 -0400 Subject: [PATCH 06/24] Update all_nodes.dm --- code/modules/research/techweb/all_nodes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 3ae775b249d7..c656b7844bde 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -322,7 +322,7 @@ display_name = "Cyborg Upgrades: Advance Utility" description = "Advance Utility upgrades for cyborgs." prereq_ids = list("engineering", "cyborg_upg_util") - design_ids = list("borg_upgrade_upgraded_rped") + design_ids = list("borg_upgrade_upgradedrped") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) export_price = 4000 From 0e644f57cf43c35ca80a58b302ffb44cae145518 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 02:14:02 -0400 Subject: [PATCH 07/24] Update layout.dm --- code/modules/research/techweb/layout.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/research/techweb/layout.dm b/code/modules/research/techweb/layout.dm index 98f2392756b4..fb27af9fe09a 100644 --- a/code/modules/research/techweb/layout.dm +++ b/code/modules/research/techweb/layout.dm @@ -148,8 +148,8 @@ ui_y = 160 /datum/techweb_node/adv_cyborg_upg_util - ui_x = -96 - ui_y = 180 + ui_x = -120 + ui_y = 160 /datum/techweb_node/basic_mining ui_x = 96 ui_y = -384 From 7a6bd110a85d35ae084e81ae2a50dc60b5915221 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 02:27:06 -0400 Subject: [PATCH 08/24] Update all_nodes.dm --- code/modules/research/techweb/all_nodes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index c656b7844bde..c476110d2f42 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -313,7 +313,7 @@ display_name = "Cyborg Upgrades: Utility" description = "Utility upgrades for cyborgs." prereq_ids = list("engineering") - design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped, borg_upgrade_holofan") + design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped", "borg_upgrade_holofan") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 From 6ac7873689f07c7cd059601f9a7adc9834b949f2 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 02:27:09 -0400 Subject: [PATCH 09/24] Update mechfabricator_designs.dm --- .../research/designs/mechfabricator_designs.dm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index b19fa91faf1c..5645a53bac10 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -788,6 +788,15 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") +/datum/design/borg_upgrade_upgraded_rped + name = "Cyborg Upgrade (BSRPED)" + id = "borg_upgrade_upgraded_rped" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/upgraded_rped + materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + /datum/design/borg_upgrade_pinpointer name = "Cyborg Upgrade (Crew pinpointer)" id = "borg_upgrade_pinpointer" @@ -824,4 +833,4 @@ materials = list(/datum/material/iron = 750, /datum/material/glass = 750) construction_time = 100 build_path = /obj/item/assembly/flash/handheld - category = list("Misc") \ No newline at end of file + category = list("Misc") From 6a58aba061f6781ebbbaaca6075f010c8783a417 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 02:43:56 -0400 Subject: [PATCH 10/24] Update robot_upgrades.dm --- code/game/objects/items/robot/robot_upgrades.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index ac62e6917d15..8d705437a50c 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -790,7 +790,7 @@ /obj/item/borg/upgrade/holofan - name = "Engineering cybrog ATMOS holofan projector" + name = "Engineering cyborg ATMOS holofan projector" desc = "A ATMOS holofan projector for the cyborg." icon_state = "cyborg_upgrade2" require_module = TRUE From 687ad27ef222ce504f9f3fd6b138b72b21ff5a7d Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 02:44:00 -0400 Subject: [PATCH 11/24] Update mechfabricator_designs.dm --- code/modules/research/designs/mechfabricator_designs.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 5645a53bac10..a62501a7b37f 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -797,6 +797,15 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") +/datum/design/borg_upgrade_holosign + name = "cyborg ATMOS holofan projector" + id = "borg_upgrade_holofan" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/holofan + materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + /datum/design/borg_upgrade_pinpointer name = "Cyborg Upgrade (Crew pinpointer)" id = "borg_upgrade_pinpointer" From b7d2b6fed19d9de307c612fa603868972cf35f08 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 03:04:23 -0400 Subject: [PATCH 12/24] Update robot_upgrades.dm --- code/game/objects/items/robot/robot_upgrades.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 8d705437a50c..d4114dccf2fb 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -766,7 +766,7 @@ /obj/item/borg/upgrade/upgraded_rped/action(mob/living/silicon/robot/R, user = usr) . = ..() if(.) - // Removes old RPED + /// Removes old RPED for(var/obj/item/storage/part_replacer/cyborg/RPED in R.module.modules) R.module.remove_module(RPED, TRUE) @@ -775,7 +775,7 @@ to_chat(user, "This unit is already equipped with a Bluespace RPED module.") return FALSE - // Puts in Bluespace RPED + /// Puts in Bluespace RPED BSRPED = new(R.module) R.module.basic_modules += BSRPED R.module.add_module(BSRPED, FALSE, TRUE) @@ -791,7 +791,7 @@ /obj/item/borg/upgrade/holofan name = "Engineering cyborg ATMOS holofan projector" - desc = "A ATMOS holofan projector for the cyborg." + desc = "An ATMOS holofan projector for the cyborg." icon_state = "cyborg_upgrade2" require_module = TRUE module_type = /obj/item/robot_module/engineering From 7d9c5f30e4fc216643565e8148368df92d7afa47 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 12:33:12 -0400 Subject: [PATCH 13/24] ad --- .../objects/items/robot/robot_upgrades.dm | 134 ++++++++++++++++-- .../designs/mechfabricator_designs.dm | 11 +- code/modules/research/stock_parts.dm | 3 + code/modules/research/techweb/all_nodes.dm | 10 +- code/modules/research/techweb/layout.dm | 2 +- .../modules/research/designs/tool_designs.dm | 2 +- 6 files changed, 143 insertions(+), 19 deletions(-) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index d4114dccf2fb..384a01926062 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -748,12 +748,6 @@ for(var/obj/item/storage/part_replacer/cyborg/RPED in R.module.modules) R.module.remove_module(RPED, TRUE) - - - - - - /obj/item/borg/upgrade/upgraded_rped name = "engineering cyborg bluepsace RPED" desc = "An upgraded version of the rapid part exchange device for the engineering cyborg, which replaces the old one." @@ -770,7 +764,7 @@ for(var/obj/item/storage/part_replacer/cyborg/RPED in R.module.modules) R.module.remove_module(RPED, TRUE) - var/obj/item/storage/part_replacer/cyborg/BSRPED = locate() in R.module.modules + var/obj/item/storage/part_replacer/bluespace/cyborg/BSRPED = locate() in R.module.modules if(BSRPED) to_chat(user, "This unit is already equipped with a Bluespace RPED module.") return FALSE @@ -783,12 +777,111 @@ /obj/item/borg/upgrade/upgraded_rped/deactivate(mob/living/silicon/robot/R, user = usr) . = ..() if (.) - for(var/obj/item/storage/part_replacer/cyborg/BSRPED in R.module.modules) + for(var/obj/item/storage/part_replacer/bluespace/cyborg/BSRPED in R.module.modules) R.module.remove_module(BSRPED, TRUE) + + var/obj/item/storage/part_replacer/cyborg/RPED = locate() in R.module.modules + RPED = new(R.module) + R.module.basic_modules += RPED + R.module.add_module(RPED, FALSE, TRUE) + +/obj/item/borg/upgrade/upgraded_tools + name = "engineering cyborg advanced tools." + desc = "An upgraded version of the basic tools for the engineering cyborg, which replaces the old one." + icon_state = "cyborg_upgrade3" + require_module = TRUE + module_type = /obj/item/robot_module/engineering + module_flags = BORG_MODULE_ENGINEERING + +/obj/item/borg/upgrade/upgraded_tools/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + /// Removes old tools + for(var/obj/item/screwdriver/cyborg/SC in R.module.modules) + R.module.remove_module(SC, TRUE) + + for(var/obj/item/wrench/cyborg/W in R.module.modules) + R.module.remove_module(W, TRUE) + + for(var/obj/item/crowbar/cyborg/CB in R.module.modules) + R.module.remove_module(CB, TRUE) + + for(var/obj/item/wirecutters/cyborg/WC in R.module.modules) + R.module.remove_module(WC, TRUE) + + for(var/obj/item/multitool/cyborg/MT in R.module.modules) + R.module.remove_module(MT, TRUE) + + for(var/obj/item/t_scanner/TS in R.module.modules) + R.module.remove_module(TS, TRUE) + + for(var/obj/item/analyzer/AL in R.module.modules) + R.module.remove_module(AL, TRUE) + + /// Puts in Advance tools + var/obj/item/jawsoflife/JL = new(R.module) + R.module.basic_modules += JL + R.module.add_module(JL, FALSE, TRUE) + + var/obj/item/handdrill/HD = new(R.module) + R.module.basic_modules += HD + R.module.add_module(HD, FALSE, TRUE) + + var/obj/item/multitool/tricorder/TC = new(R.module) + R.module.basic_modules += TC + R.module.add_module(TC, FALSE, TRUE) + +/obj/item/borg/upgrade/upgraded_tools/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + for(var/obj/item/jawsoflife/JL in R.module.modules) + R.module.basic_modules -= JL + R.module.remove_module(JL, TRUE) - - - + for(var/obj/item/handdrill/HD in R.module.modules) + R.module.basic_modules -= HD + R.module.remove_module(HD, TRUE) + + for(var/obj/item/multitool/tricorder/TC in R.module.modules) + R.module.basic_modules -= TC + R.module.remove_module(TC, TRUE) + + + var/obj/item/screwdriver/cyborg/SC = locate() in R.module.modules + SC = new(R.module) + R.module.basic_modules += SC + R.module.add_module(SC, FALSE, TRUE) + + var/obj/item/wrench/cyborg/W = locate() in R.module.modules + W = new(R.module) + R.module.basic_modules += W + R.module.add_module(W, FALSE, TRUE) + + var/obj/item/crowbar/cyborg/CB = locate() in R.module.modules + CB = new(R.module) + R.module.basic_modules += CB + R.module.add_module(CB, FALSE, TRUE) + + var/obj/item/wirecutters/cyborg/WC = locate() in R.module.modules + WC = new(R.module) + R.module.basic_modules += WC + R.module.add_module(WC, FALSE, TRUE) + + var/obj/item/multitool/cyborg/MT = locate() in R.module.modules + MT = new(R.module) + R.module.basic_modules += MT + R.module.add_module(MT, FALSE, TRUE) + + var/obj/item/t_scanner/TS = locate() in R.module.modules + TS = new(R.module) + R.module.basic_modules += TS + R.module.add_module(TS, FALSE, TRUE) + + var/obj/item/analyzer/AL = locate() in R.module.modules + AL = new(R.module) + R.module.basic_modules += AL + R.module.add_module(AL, FALSE, TRUE) + /obj/item/borg/upgrade/holofan name = "Engineering cyborg ATMOS holofan projector" desc = "An ATMOS holofan projector for the cyborg." @@ -797,6 +890,25 @@ module_type = /obj/item/robot_module/engineering module_flags = BORG_MODULE_ENGINEERING +/obj/item/borg/upgrade/holofan/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + + var/obj/item/holosign_creator/atmos/holofan = locate() in R.module.modules + if(holofan) + to_chat(user, "This unit is already equipped with a holofan module.") + return FALSE + + holofan = new(R.module) + R.module.basic_modules += holofan + R.module.add_module(holofan, FALSE, TRUE) + +/obj/item/borg/upgrade/holofan/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + for(var/obj/item/holosign_creator/atmos/holofan in R.module.modules) + R.module.remove_module(holofan, TRUE) + /obj/item/borg/upgrade/plasmacutter name = "mining cyborg plasma cutter" desc = "A plasma cutter module for the mining cyborg." diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index a62501a7b37f..36481e51cf84 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -797,12 +797,21 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") +/datum/design/borg_upgrade_upgraded_tools + name = "Cyborg Upgrade (Advanced tools)" + id = "borg_upgrade_upgraded_tools" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/upgraded_tools + materials = list(/datum/material/iron = 10000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + /datum/design/borg_upgrade_holosign name = "cyborg ATMOS holofan projector" id = "borg_upgrade_holofan" build_type = MECHFAB build_path = /obj/item/borg/upgrade/holofan - materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000) + materials = list(/datum/material/iron = 10000, /datum/material/glass = 500) construction_time = 120 category = list("Cyborg Upgrade Modules") diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index 8cf1fb8f6bef..1bf2369bb3d3 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -108,6 +108,9 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' +/obj/item/storage/part_replacer/bluespace/cyborg + desc = "A version of the Bluepspace RPED for engineering cyborgs." + /proc/cmp_rped_sort(obj/item/A, obj/item/B) return B.get_part_rating() - A.get_part_rating() diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index c476110d2f42..f3fad52d71c3 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -319,12 +319,12 @@ /datum/techweb_node/adv_cyborg_upg_util id = "adv_cyborg_upg_util" - display_name = "Cyborg Upgrades: Advance Utility" - description = "Advance Utility upgrades for cyborgs." + display_name = "Cyborg Upgrades: Advanced Utility" + description = "Advanced Utility upgrade for cyborgs." prereq_ids = list("engineering", "cyborg_upg_util") - design_ids = list("borg_upgrade_upgradedrped") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) - export_price = 4000 + design_ids = list("borg_upgrade_upgraded_rped", "borg_upgrade_upgraded_tools") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) + export_price = 5000 /datum/techweb_node/cyborg_upg_med id = "cyborg_upg_med" diff --git a/code/modules/research/techweb/layout.dm b/code/modules/research/techweb/layout.dm index fb27af9fe09a..aa5c1dccb049 100644 --- a/code/modules/research/techweb/layout.dm +++ b/code/modules/research/techweb/layout.dm @@ -148,7 +148,7 @@ ui_y = 160 /datum/techweb_node/adv_cyborg_upg_util - ui_x = -120 + ui_x = -32 ui_y = 160 /datum/techweb_node/basic_mining ui_x = 96 diff --git a/yogstation/code/modules/research/designs/tool_designs.dm b/yogstation/code/modules/research/designs/tool_designs.dm index 103d007e5644..36d239830412 100644 --- a/yogstation/code/modules/research/designs/tool_designs.dm +++ b/yogstation/code/modules/research/designs/tool_designs.dm @@ -25,4 +25,4 @@ materials = list(/datum/material/iron=500,/datum/material/silver=300,/datum/material/gold=300) build_path = /obj/item/multitool/tricorder category = list("Tool Designs") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING \ No newline at end of file + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING From afb13f36ad3805639629f0817a897354c0f1ef61 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 13:48:04 -0400 Subject: [PATCH 14/24] tweaking mat cost and research stuff --- code/modules/research/designs/mechfabricator_designs.dm | 7 ++++--- code/modules/research/techweb/all_nodes.dm | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 36481e51cf84..b0b5620ec6d7 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -802,7 +802,8 @@ id = "borg_upgrade_upgraded_tools" build_type = MECHFAB build_path = /obj/item/borg/upgrade/upgraded_tools - materials = list(/datum/material/iron = 10000) + /// Combined materials of all 3 experimentals tools + materials = list(/datum/material/iron = 8500, /datum/material/silver = 4300, /datum/material/gold=300, /datum/material/titanium = 6000) construction_time = 120 category = list("Cyborg Upgrade Modules") @@ -811,8 +812,8 @@ id = "borg_upgrade_holofan" build_type = MECHFAB build_path = /obj/item/borg/upgrade/holofan - materials = list(/datum/material/iron = 10000, /datum/material/glass = 500) - construction_time = 120 + materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) + construction_time = 140 category = list("Cyborg Upgrade Modules") /datum/design/borg_upgrade_pinpointer diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index f3fad52d71c3..ccb4cff5153c 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -323,7 +323,7 @@ description = "Advanced Utility upgrade for cyborgs." prereq_ids = list("engineering", "cyborg_upg_util") design_ids = list("borg_upgrade_upgraded_rped", "borg_upgrade_upgraded_tools") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) export_price = 5000 /datum/techweb_node/cyborg_upg_med From 16e929c950b158242a14766c82b781bcfa434417 Mon Sep 17 00:00:00 2001 From: JayBaez <72506266+JayBaez@users.noreply.github.com> Date: Mon, 23 Aug 2021 16:40:44 -0400 Subject: [PATCH 15/24] Update mechfabricator_designs.dm --- code/modules/research/designs/mechfabricator_designs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index b0b5620ec6d7..4d511ff5a837 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -793,7 +793,7 @@ id = "borg_upgrade_upgraded_rped" build_type = MECHFAB build_path = /obj/item/borg/upgrade/upgraded_rped - materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000) + materials = list(/datum/material/iron = 15000, /datum/material/glass = 5000, /datum/material/silver = 2500) construction_time = 120 category = list("Cyborg Upgrade Modules") From 283d38b69be10bbe50616b94be42d509009085e9 Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Mon, 30 Aug 2021 21:56:46 +0100 Subject: [PATCH 16/24] Apply suggestions from code review --- code/game/objects/items/robot/robot_upgrades.dm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 384a01926062..bd0424e5306c 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -812,8 +812,6 @@ for(var/obj/item/multitool/cyborg/MT in R.module.modules) R.module.remove_module(MT, TRUE) - for(var/obj/item/t_scanner/TS in R.module.modules) - R.module.remove_module(TS, TRUE) for(var/obj/item/analyzer/AL in R.module.modules) R.module.remove_module(AL, TRUE) @@ -872,11 +870,6 @@ R.module.basic_modules += MT R.module.add_module(MT, FALSE, TRUE) - var/obj/item/t_scanner/TS = locate() in R.module.modules - TS = new(R.module) - R.module.basic_modules += TS - R.module.add_module(TS, FALSE, TRUE) - var/obj/item/analyzer/AL = locate() in R.module.modules AL = new(R.module) R.module.basic_modules += AL From 78f7d075c6e1d6b7a760a1ef5eaf25a6e508c34f Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Fri, 17 Sep 2021 14:00:26 +0100 Subject: [PATCH 17/24] Update turdis.yml (#12323) --- .github/workflows/turdis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/turdis.yml b/.github/workflows/turdis.yml index 9e04743ec86a..0c5b39a32717 100644 --- a/.github/workflows/turdis.yml +++ b/.github/workflows/turdis.yml @@ -6,9 +6,9 @@ name: Turdis # events but only for the master branch on: pull_request: - branches: master + branches: [master, beta] push: - branches: master + branches: [master, beta] # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: From 2d67e6781261cc140ab8abfab9f83b336db37603 Mon Sep 17 00:00:00 2001 From: Yogbot-13 Date: Fri, 17 Sep 2021 09:00:28 -0400 Subject: [PATCH 18/24] Automatic changelog generation #12323 [ci skip] --- html/changelogs/AutoChangelog-pr-12323.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 html/changelogs/AutoChangelog-pr-12323.yml diff --git a/html/changelogs/AutoChangelog-pr-12323.yml b/html/changelogs/AutoChangelog-pr-12323.yml new file mode 100644 index 000000000000..57bccc51c638 --- /dev/null +++ b/html/changelogs/AutoChangelog-pr-12323.yml @@ -0,0 +1,14 @@ +author: "JamieD1" +delete-after: true +changes: + - rscadd: "Added new things" + - rscdel: "Removed old things" + - bugfix: "fixed a few things" + - wip: "This is work in progress" + - tweak: "tweaked a few things" + - soundadd: "added a new sound thingy" + - sounddel: "removed an old sound thingy" + - imageadd: "added some icons and images" + - imagedel: "deleted some icons and images" + - spellcheck: "fixed a few typos" + - experiment: "This is experimental" From c2a63b6903b683cead5571c4c3bcb57bd2d71d05 Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Fri, 17 Sep 2021 14:02:46 +0100 Subject: [PATCH 19/24] Delete AutoChangelog-pr-12323.yml --- html/changelogs/AutoChangelog-pr-12323.yml | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 html/changelogs/AutoChangelog-pr-12323.yml diff --git a/html/changelogs/AutoChangelog-pr-12323.yml b/html/changelogs/AutoChangelog-pr-12323.yml deleted file mode 100644 index 57bccc51c638..000000000000 --- a/html/changelogs/AutoChangelog-pr-12323.yml +++ /dev/null @@ -1,14 +0,0 @@ -author: "JamieD1" -delete-after: true -changes: - - rscadd: "Added new things" - - rscdel: "Removed old things" - - bugfix: "fixed a few things" - - wip: "This is work in progress" - - tweak: "tweaked a few things" - - soundadd: "added a new sound thingy" - - sounddel: "removed an old sound thingy" - - imageadd: "added some icons and images" - - imagedel: "deleted some icons and images" - - spellcheck: "fixed a few typos" - - experiment: "This is experimental" From 556dcdca4316b6411a83a4266cad0cd61ed77d8b Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Fri, 17 Sep 2021 14:05:22 +0100 Subject: [PATCH 20/24] [BETA] - Lobby Screen (#12321) * Replaced the lobby menu (with actual art) (#60953) * Didn't mean to commit this * This doesn't need changed anymore * Dark mode * Added countdown timer to lobby screen * I hate conflicts Co-authored-by: AMonkeyThatCodes <20987591+AMonkeyThatCodes@users.noreply.github.com> Co-authored-by: Gabriel Adamson --- code/__DEFINES/components.dm | 6 + code/__DEFINES/layers.dm | 3 + code/__DEFINES/mobs.dm | 1 - code/_onclick/hud/new_player.dm | 439 ++++++++++++++++++ .../subsystem/processing/fastlobbyprocess.dm | 6 + code/controllers/subsystem/ticker.dm | 14 +- code/game/atoms.dm | 3 + .../machinery/porta_turret/portable_turret.dm | 4 +- code/game/objects/effects/glowshroom.dm | 2 +- code/game/objects/items/shields.dm | 2 +- code/modules/mob/dead/new_player/login.dm | 5 +- .../modules/mob/dead/new_player/new_player.dm | 165 ++----- code/modules/spells/spell_types/aimed.dm | 2 +- icons/hud/lobby/background.dmi | Bin 0 -> 3629 bytes icons/hud/lobby/bottom_buttons.dmi | Bin 0 -> 4312 bytes icons/hud/lobby/character_setup.dmi | Bin 0 -> 1471 bytes icons/hud/lobby/countdown_background.dmi | Bin 0 -> 6502 bytes icons/hud/lobby/countdown_letters.dmi | Bin 0 -> 512 bytes icons/hud/lobby/join.dmi | Bin 0 -> 1180 bytes icons/hud/lobby/observe.dmi | Bin 0 -> 2047 bytes icons/hud/lobby/poll_overlay.dmi | Bin 0 -> 257 bytes icons/hud/lobby/ready.dmi | Bin 0 -> 15081 bytes yogstation.dme | 2 + 23 files changed, 497 insertions(+), 157 deletions(-) create mode 100644 code/_onclick/hud/new_player.dm create mode 100644 code/controllers/subsystem/processing/fastlobbyprocess.dm create mode 100644 icons/hud/lobby/background.dmi create mode 100644 icons/hud/lobby/bottom_buttons.dmi create mode 100644 icons/hud/lobby/character_setup.dmi create mode 100644 icons/hud/lobby/countdown_background.dmi create mode 100644 icons/hud/lobby/countdown_letters.dmi create mode 100644 icons/hud/lobby/join.dmi create mode 100644 icons/hud/lobby/observe.dmi create mode 100644 icons/hud/lobby/poll_overlay.dmi create mode 100644 icons/hud/lobby/ready.dmi diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 1760fe6b09ea..e636b2ecc94d 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -406,6 +406,12 @@ ///From base of datum/controller/subsystem/Initialize: (start_timeofday) #define COMSIG_SUBSYSTEM_POST_INITIALIZE "subsystem_post_initialize" +///Called when the ticker enters the pre-game phase +#define COMSIG_TICKER_ENTER_PREGAME "comsig_ticker_enter_pregame" + +///Called when the ticker sets up the game for start +#define COMSIG_TICKER_ENTER_SETTING_UP "comsig_ticker_enter_setting_up" + /// called by datum/cinematic/play() : (datum/cinematic/new_cinematic) #define COMSIG_GLOB_PLAY_CINEMATIC "!play_cinematic" #define COMPONENT_GLOB_BLOCK_CINEMATIC (1<<0) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 4e09a65c4c91..30a7c66d8b73 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -143,3 +143,6 @@ #define SPLASHSCREEN_LAYER 23 #define SPLASHSCREEN_PLANE 23 #define SPLASHSCREEN_RENDER_TARGET "SPLASHSCREEN_PLANE" + +#define LOBBY_BACKGROUND_LAYER 3 +#define LOBBY_BUTTON_LAYER 4 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 9d544b09ffad..544979a66b0e 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -5,7 +5,6 @@ //Ready states at roundstart for mob/dead/new_player #define PLAYER_NOT_READY 0 #define PLAYER_READY_TO_PLAY 1 -#define PLAYER_READY_TO_OBSERVE 2 //Game mode list indexes #define CURRENT_LIVING_PLAYERS "living_players_list" diff --git a/code/_onclick/hud/new_player.dm b/code/_onclick/hud/new_player.dm new file mode 100644 index 000000000000..4c9e2eddbbea --- /dev/null +++ b/code/_onclick/hud/new_player.dm @@ -0,0 +1,439 @@ +/datum/hud/new_player + +/datum/hud/new_player/New(mob/owner) + ..() + var/list/buttons = subtypesof(/atom/movable/screen/lobby) + for(var/button in buttons) + var/atom/movable/screen/lobbyscreen = new button() + lobbyscreen.hud = src + static_inventory += lobbyscreen + lobbyscreen.postInit() + +/* + Screen objects + Todo: improve/re-implement + + Screen objects are only used for the hud and should not appear anywhere "in-game". + They are used with the client/screen list and the screen_loc var. + For more information, see the byond documentation on the screen_loc and screen vars. +*/ +/atom/movable/screen + name = "" + plane = HUD_PLANE + animate_movement = SLIDE_STEPS + speech_span = SPAN_ROBOT + vis_flags = VIS_INHERIT_PLANE + appearance_flags = APPEARANCE_UI + /// A reference to the object in the slot. Grabs or items, generally. + var/obj/master = null + /// A reference to the owner HUD, if any. + var/datum/hud/hud = null + /** + * Map name assigned to this object. + * Automatically set by /client/proc/add_obj_to_map. + */ + var/assigned_map + /** + * Mark this object as garbage-collectible after you clean the map + * it was registered on. + * + * This could probably be changed to be a proc, for conditional removal. + * But for now, this works. + */ + var/del_on_map_removal = TRUE + +/atom/movable/screen/proc/postInit() + +/atom/movable/screen/Destroy() + master = null + hud = null + return ..() + +/atom/movable/screen/lobby + plane = SPLASHSCREEN_PLANE + layer = LOBBY_BUTTON_LAYER + screen_loc = "TOP,CENTER" + +/atom/movable/screen/lobby/background + layer = LOBBY_BACKGROUND_LAYER + icon = 'icons/hud/lobby/background.dmi' + icon_state = "background" + screen_loc = "TOP,CENTER:-61" + +/atom/movable/screen/lobby/button + ///Is the button currently enabled? + var/enabled = TRUE + ///Is the button currently being hovered over with the mouse? + var/highlighted = FALSE + +/atom/movable/screen/lobby/button/Click(location, control, params) + . = ..() + if(!enabled) + return + flick("[base_icon_state]_pressed", src) + update_icon() + return TRUE + +/atom/movable/screen/lobby/button/MouseEntered(location,control,params) + . = ..() + highlighted = TRUE + update_icon() + +/atom/movable/screen/lobby/button/MouseExited() + . = ..() + highlighted = FALSE + update_icon() + +/atom/movable/screen/lobby/button/proc/update_icon(updates) + if(!enabled) + icon_state = "[base_icon_state]_disabled" + return + else if(highlighted) + icon_state = "[base_icon_state]_highlighted" + return + icon_state = base_icon_state + +/atom/movable/screen/lobby/button/proc/set_button_status(status) + if(status == enabled) + return FALSE + enabled = status + update_icon() + return TRUE + +///Prefs menu +/atom/movable/screen/lobby/button/character_setup + screen_loc = "TOP:-70,CENTER:-54" + icon = 'icons/hud/lobby/character_setup.dmi' + icon_state = "character_setup" + base_icon_state = "character_setup" + +/atom/movable/screen/lobby/button/character_setup/Click(location, control, params) + . = ..() + if(!.) + return + hud.mymob.client.prefs.ShowChoices(hud.mymob) + +///Button that appears before the game has started +/atom/movable/screen/lobby/button/ready + screen_loc = "TOP:-8,CENTER:-65" + icon = 'icons/hud/lobby/ready.dmi' + icon_state = "not_ready" + base_icon_state = "not_ready" + var/ready = FALSE + +/atom/movable/screen/lobby/button/ready/Initialize(mapload) + . = ..() + if(SSticker.current_state > GAME_STATE_PREGAME) + set_button_status(FALSE) + else + RegisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP, .proc/hide_ready_button) + +/atom/movable/screen/lobby/button/ready/proc/hide_ready_button() + set_button_status(FALSE) + UnregisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP) + +/atom/movable/screen/lobby/button/ready/Click(location, control, params) + . = ..() + if(!.) + return + var/mob/dead/new_player/new_player = hud.mymob + ready = !ready + if(ready) + new_player.ready = PLAYER_READY_TO_PLAY + base_icon_state = "ready" + else + new_player.ready = PLAYER_NOT_READY + base_icon_state = "not_ready" + update_icon() + +///Shown when the game has started +/atom/movable/screen/lobby/button/join + screen_loc = "TOP:-13,CENTER:-58" + icon = 'icons/hud/lobby/join.dmi' + icon_state = "" //Default to not visible + base_icon_state = "join_game" + enabled = FALSE + +/atom/movable/screen/lobby/button/join/Initialize(mapload) + . = ..() + if(SSticker.current_state > GAME_STATE_PREGAME) + set_button_status(TRUE) + else + RegisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP, .proc/show_join_button) + +/atom/movable/screen/lobby/button/join/Click(location, control, params) + . = ..() + if(!.) + return + if(!SSticker?.IsRoundInProgress()) + to_chat(hud.mymob, "The round is either not ready, or has already finished...") + return + + //Determines Relevent Population Cap + var/relevant_cap + var/hpc = CONFIG_GET(number/hard_popcap) + var/epc = CONFIG_GET(number/extreme_popcap) + if(hpc && epc) + relevant_cap = min(hpc, epc) + else + relevant_cap = max(hpc, epc) + + var/mob/dead/new_player/new_player = hud.mymob + + if(SSticker.queued_players.len || (relevant_cap && living_player_count() >= relevant_cap && !(ckey(new_player.key) in GLOB.admin_datums))) + to_chat(new_player, "[CONFIG_GET(string/hard_popcap_message)]") + + var/queue_position = SSticker.queued_players.Find(new_player) + if(queue_position == 1) + to_chat(new_player, "You are next in line to join the game. You will be notified when a slot opens up.") + else if(queue_position) + to_chat(new_player, "There are [queue_position-1] players in front of you in the queue to join the game.") + else + SSticker.queued_players += new_player + to_chat(new_player, "You have been added to the queue to join the game. Your position in queue is [SSticker.queued_players.len].") + return + new_player.LateChoices() + +/atom/movable/screen/lobby/button/join/proc/show_join_button(status) + set_button_status(TRUE) + UnregisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP) + +/atom/movable/screen/lobby/button/observe + screen_loc = "TOP:-40,CENTER:-54" + icon = 'icons/hud/lobby/observe.dmi' + icon_state = "observe_disabled" + base_icon_state = "observe" + enabled = FALSE + +/atom/movable/screen/lobby/button/observe/Initialize(mapload) + . = ..() + if(SSticker.current_state > GAME_STATE_STARTUP) + set_button_status(TRUE) + else + RegisterSignal(SSticker, COMSIG_TICKER_ENTER_PREGAME, .proc/enable_observing) + +/atom/movable/screen/lobby/button/observe/Click(location, control, params) + . = ..() + if(!.) + return + var/mob/dead/new_player/new_player = hud.mymob + new_player.make_me_an_observer() + +/atom/movable/screen/lobby/button/observe/proc/enable_observing() + flick("[base_icon_state]_enabled", src) + set_button_status(TRUE) + UnregisterSignal(SSticker, COMSIG_TICKER_ENTER_PREGAME, .proc/enable_observing) + + +/atom/movable/screen/lobby/button/changelog_button + icon = 'icons/hud/lobby/bottom_buttons.dmi' + icon_state = "changelog" + base_icon_state = "changelog" + screen_loc ="TOP:-122,CENTER:+58" + + +/atom/movable/screen/lobby/button/crew_manifest + icon = 'icons/hud/lobby/bottom_buttons.dmi' + icon_state = "crew_manifest" + base_icon_state = "crew_manifest" + screen_loc = "TOP:-122,CENTER:+30" + +/atom/movable/screen/lobby/button/crew_manifest/Click(location, control, params) + . = ..() + if(!.) + return + var/mob/dead/new_player/new_player = hud.mymob + new_player.ViewManifest() + +/atom/movable/screen/lobby/button/changelog_button/Click(location, control, params) + . = ..() + usr.client?.changelog() + +/atom/movable/screen/lobby/button/poll + icon = 'icons/hud/lobby/bottom_buttons.dmi' + icon_state = "poll" + base_icon_state = "poll" + screen_loc = "TOP:-122,CENTER:+2" + + var/new_poll = FALSE + +///Need to use New due to init +/atom/movable/screen/lobby/button/poll/New(loc, ...) + . = ..() + if(!usr) // + return + var/mob/dead/new_player/new_player = usr + if(IsGuestKey(new_player.key)) + set_button_status(FALSE) + return + if(!SSdbcore.Connect()) + set_button_status(FALSE) + return + var/isadmin = FALSE + if(new_player.client?.holder) + isadmin = TRUE + var/datum/DBQuery/query_get_new_polls = SSdbcore.NewQuery({" + SELECT id FROM [format_table_name("poll_question")] + WHERE (adminonly = 0 OR :isadmin = 1) + AND Now() BETWEEN starttime AND endtime + AND id NOT IN ( + SELECT pollid FROM [format_table_name("poll_vote")] + WHERE ckey = :ckey + ) + AND id NOT IN ( + SELECT pollid FROM [format_table_name("poll_textreply")] + WHERE ckey = :ckey + ) + "}, list("isadmin" = isadmin, "ckey" = new_player.ckey)) + if(query_get_new_polls.Execute()) + if(query_get_new_polls.NextRow()) + new_poll = TRUE + else + new_poll = FALSE + update_overlays() + qdel(query_get_new_polls) + if(QDELETED(new_player)) + set_button_status(FALSE) + return + +/atom/movable/screen/lobby/button/poll/proc/update_overlays() + cut_overlays() + if(new_poll) + add_overlay(mutable_appearance('icons/hud/lobby/poll_overlay.dmi', "new_poll")) + +/atom/movable/screen/lobby/button/poll/Click(location, control, params) + . = ..() + if(!.) + return + var/mob/dead/new_player/new_player = hud.mymob + new_player.handle_player_polling() + +/atom/movable/screen/lobby/timer + icon = 'icons/hud/lobby/countdown_background.dmi' + icon_state = "hidden" + screen_loc = "TOP,RIGHT" + + var/list/atom/movable/screen/lobby/display/displays = list() + + var/delayed = FALSE + var/active = FALSE + var/show_numbers = FALSE + + var/list/display_screen_locs = list( + "TOP:-7,RIGHT:-64", + "TOP:-7,RIGHT:-44", + "TOP:-7,RIGHT:-31" + ) + +GLOBAL_LIST_EMPTY(lobby_timers) + +/atom/movable/screen/lobby/timer/New(loc, ...) + . = ..() + for(var/screen_loc as anything in display_screen_locs) + var/atom/movable/screen/lobby/display/D = new() + D.screen_loc = screen_loc + displays += D + + if(SSticker.current_state > GAME_STATE_STARTUP) + set_active(TRUE) + else + RegisterSignal(SSticker, COMSIG_TICKER_ENTER_PREGAME, .proc/activate) + +/atom/movable/screen/lobby/timer/proc/set_active(new_active) + if(new_active == active) + return + active = new_active + + if(active) + flick("show_[delayed ? "delayed" : "eta"]", src) + addtimer(VARSET_CALLBACK(src, show_numbers, 13)) + RegisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP, .proc/deactivate) + START_PROCESSING(SSlobbyprocess, src) + else + flick("hide_[delayed ? "delayed" : "eta"]", src) + show_numbers = FALSE + hide_numbers() + STOP_PROCESSING(SSlobbyprocess, src) + update_icon() + +/atom/movable/screen/lobby/timer/proc/activate() + UnregisterSignal(SSticker, COMSIG_TICKER_ENTER_PREGAME) + set_active(TRUE) + +/atom/movable/screen/lobby/timer/proc/deactivate() + UnregisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP) + set_active(FALSE) + +/atom/movable/screen/lobby/timer/Destroy() + . = ..() + GLOB.lobby_timers -= src + +/atom/movable/screen/lobby/timer/process() + + var/time = SSticker.GetTimeLeft() + if(time == -10) + if(!delayed) + delay() + return + if(delayed) + undelay() + + if(!show_numbers) + return + + if(time < 0) + time = 0 + + var/seconds = round(time/10) + if(seconds > 639) + seconds = 639 + + var/minutes = round(seconds/60) + if(minutes > 9) + minutes = 9 + seconds -= minutes * 60 + + var/tens_seconds = round(seconds/10) + var/single_seconds = seconds % 10 + + displays[1].icon_state = "[minutes]-green" + displays[2].icon_state = "[tens_seconds]-green" + displays[3].icon_state = "[single_seconds]-green" + +/atom/movable/screen/lobby/timer/postInit() + . = ..() + for(var/atom/movable/screen/lobby/display/D as anything in displays) + D.hud = hud + hud.static_inventory += D + GLOB.lobby_timers += src + +/atom/movable/screen/lobby/timer/proc/hide_numbers() + for(var/atom/movable/screen/lobby/display/D as anything in displays) + D.icon_state = "" + +/atom/movable/screen/lobby/timer/proc/delay() + if(delayed) return + delayed = TRUE + hide_numbers() + flick("eta_delay", src) + show_numbers = FALSE + update_icon() + +/atom/movable/screen/lobby/timer/proc/undelay() + if(!delayed) return + delayed = FALSE + flick("delay_eta", src) + addtimer(VARSET_CALLBACK(src, show_numbers, 6)) + update_icon() + +/atom/movable/screen/lobby/timer/proc/update_icon() + if(!active) + icon_state = "hidden" + return + if(delayed) + icon_state = "delayed" + else + icon_state = "eta" + +/atom/movable/screen/lobby/display + icon = 'icons/hud/lobby/countdown_letters.dmi' \ No newline at end of file diff --git a/code/controllers/subsystem/processing/fastlobbyprocess.dm b/code/controllers/subsystem/processing/fastlobbyprocess.dm new file mode 100644 index 000000000000..9cf2d2950e9e --- /dev/null +++ b/code/controllers/subsystem/processing/fastlobbyprocess.dm @@ -0,0 +1,6 @@ +//Fires five times every second. + +PROCESSING_SUBSYSTEM_DEF(lobbyprocess) + name = "Lobby Processing" + stat_tag = "LP" + runlevels = RUNLEVEL_LOBBY diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 4ba23dd4df3d..90dfdf49c97f 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -157,8 +157,8 @@ SUBSYSTEM_DEF(ticker) to_chat(world, span_boldnotice("Welcome to [station_name()]!")) send2chat("New round starting on [SSmapping.config.map_name]!", CONFIG_GET(string/chat_announce_new_game)) current_state = GAME_STATE_PREGAME - //Everyone who wants to be an observer is now spawned - create_observers() + SEND_SIGNAL(src, COMSIG_TICKER_ENTER_PREGAME) + fire() if(GAME_STATE_PREGAME) //lobby stats for statpanels @@ -184,6 +184,7 @@ SUBSYSTEM_DEF(ticker) tipped = TRUE if(timeLeft <= 0) + SEND_SIGNAL(src, COMSIG_TICKER_ENTER_SETTING_UP) current_state = GAME_STATE_SETTING_UP Master.SetRunLevel(RUNLEVEL_SETUP) if(start_immediately) @@ -361,8 +362,6 @@ SUBSYSTEM_DEF(ticker) if(player.ready == PLAYER_READY_TO_PLAY && player.mind) GLOB.joined_player_list += player.ckey player.create_character(FALSE) - else - player.new_player_panel() CHECK_TICK /datum/controller/subsystem/ticker/proc/collect_minds() @@ -610,13 +609,6 @@ SUBSYSTEM_DEF(ticker) else timeLeft = newtime -//Everyone who wanted to be an observer gets made one now -/datum/controller/subsystem/ticker/proc/create_observers() - for(var/mob/dead/new_player/player in GLOB.player_list) - if(player.ready == PLAYER_READY_TO_OBSERVE && player.mind) - //Break chain since this has a sleep input in it - addtimer(CALLBACK(player, /mob/dead/new_player.proc/make_me_an_observer), 1) - /datum/controller/subsystem/ticker/proc/load_mode() var/mode = trim(file2text("data/mode.txt")) if(mode) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e8d40ee44a69..e59fd552091d 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -82,6 +82,9 @@ var/list/targeted_by var/atom/orbit_target //Reference to atom being orbited + + /// Used for changing icon state for different base sprites + var/base_icon_state /** * Called when an atom is created in byond (built in engine proc) * diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 74dadc5648de..4474251b09c5 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -18,7 +18,7 @@ req_access = list(ACCESS_SEC_DOORS) power_channel = EQUIP //drains power from the EQUIPMENT channel - var/base_icon_state = "standard" + base_icon_state = "standard" var/scan_range = 7 var/atom/base = null //for turrets inside other objects @@ -1080,4 +1080,4 @@ if(istype(P, /obj/item/projectile/beam/lasertag/bluetag)) on = FALSE spawn(100) - on = TRUE \ No newline at end of file + on = TRUE diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index e9f151fc1748..f9a604a8bb90 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -65,7 +65,7 @@ myseed.genes += G set_light(G.glow_range(myseed), G.glow_power(myseed), G.glow_color) setDir(CalcDir()) - var/base_icon_state = initial(icon_state) + base_icon_state = initial(icon_state) if(!floor) switch(dir) //offset to make it be on the wall rather than on the floor if(NORTH) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index d132f1d62463..5a988345efe2 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -212,7 +212,7 @@ force = 3 throwforce = 3 throw_speed = 3 - var/base_icon_state = "eshield" // [base_icon_state]1 for expanded, [base_icon_state]0 for contracted + base_icon_state = "eshield" // [base_icon_state]1 for expanded, [base_icon_state]0 for contracted var/on_force = 10 var/on_throwforce = 8 var/on_throw_speed = 2 diff --git a/code/modules/mob/dead/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm index 900721370294..5e2132f88729 100644 --- a/code/modules/mob/dead/new_player/login.dm +++ b/code/modules/mob/dead/new_player/login.dm @@ -22,8 +22,11 @@ sight |= SEE_TURFS - new_player_panel() client.playtitlemusic() + + var/datum/asset/asset_datum = get_asset_datum(/datum/asset/simple/lobby) + asset_datum.send(client) + if(SSticker.current_state < GAME_STATE_SETTING_UP) var/tl = SSticker.GetTimeLeft() var/postfix diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 3ae04568fab3..5a132ae9eeea 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -1,19 +1,19 @@ -#define LINKIFY_READY(string, value) "[string]" - /mob/dead/new_player - var/ready = 0 - var/spawning = 0//Referenced when you want to delete the new_player later on in the code. - flags_1 = NONE invisibility = INVISIBILITY_ABSTRACT density = FALSE stat = DEAD - - var/mob/living/new_character //for instant transfer once the round is set up - - //Used to make sure someone doesn't get spammed with messages if they're ineligible for roles + hud_type = /datum/hud/new_player + hud_possible = list() + + var/ready = FALSE + /// Referenced when you want to delete the new_player later on in the code. + var/spawning = FALSE + /// For instant transfer once the round is set up + var/mob/living/new_character + ///Used to make sure someone doesn't get spammed with messages if they're ineligible for roles. var/ineligible_for_roles = FALSE /mob/dead/new_player/Initialize() @@ -39,64 +39,6 @@ /mob/dead/new_player/prepare_huds() return -/mob/dead/new_player/proc/new_player_panel() - var/datum/asset/asset_datum = get_asset_datum(/datum/asset/simple/lobby) - asset_datum.send(client) - var/output = "

Setup Character

" - - if(SSticker.current_state <= GAME_STATE_PREGAME) - switch(ready) - if(PLAYER_NOT_READY) - output += "

\[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | Not Ready | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]

" - if(PLAYER_READY_TO_PLAY) - output += "

\[ Ready | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]

" - if(PLAYER_READY_TO_OBSERVE) - output += "

\[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | Observe \]

" - else - output += "

View the Crew Manifest

" - output += "

Join Game!

" - output += "

[LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)]

" - - if(!IsGuestKey(src.key)) - if (SSdbcore.Connect()) - var/isadmin = 0 - if(src.client && src.client.holder) - isadmin = 1 - var/datum/DBQuery/query_get_new_polls = SSdbcore.NewQuery({" - SELECT id FROM [format_table_name("poll_question")] - WHERE (adminonly = 0 OR :isadmin = 1) - AND Now() BETWEEN starttime AND endtime - AND id NOT IN ( - SELECT pollid FROM [format_table_name("poll_vote")] - WHERE ckey = :ckey - ) - AND id NOT IN ( - SELECT pollid FROM [format_table_name("poll_textreply")] - WHERE ckey = :ckey - ) - "}, list("isadmin" = isadmin, "ckey" = ckey)) - var/rs = REF(src) - if(query_get_new_polls.Execute()) - var/newpoll = 0 - if(query_get_new_polls.NextRow()) - newpoll = 1 - - if(newpoll) - output += "

Show Player Polls (NEW!)

" - else - output += "

Show Player Polls

" - qdel(query_get_new_polls) - if(QDELETED(src)) - return - - output += "
" - - var/datum/browser/popup = new(src, "playersetup", "
New Player Options
", 250, 265) - popup.set_window_options("can_close=0") - popup.set_content(output) - popup.open(FALSE) - -// List of possible actions user has chosen on the New Players menus /mob/dead/new_player/Topic(href, href_list[]) if(src != usr) return 0 @@ -104,67 +46,13 @@ if(!client) return 0 - //Determines Relevent Population Cap - var/relevant_cap - var/hpc = CONFIG_GET(number/hard_popcap) - var/epc = CONFIG_GET(number/extreme_popcap) - if(hpc && epc) - relevant_cap = min(hpc, epc) - else - relevant_cap = max(hpc, epc) - - if(href_list["show_preferences"]) - client.prefs.ShowChoices(src) - return 1 - - if(href_list["ready"]) - var/tready = text2num(href_list["ready"]) - //Avoid updating ready if we're after PREGAME (they should use latejoin instead) - //This is likely not an actual issue but I don't have time to prove that this - //no longer is required - if(SSticker.current_state <= GAME_STATE_PREGAME) - ready = tready - //if it's post initialisation and they're trying to observe we do the needful - if(!SSticker.current_state < GAME_STATE_PREGAME && tready == PLAYER_READY_TO_OBSERVE) - ready = tready - make_me_an_observer() - return - - if(href_list["refresh"]) - src << browse(null, "window=playersetup") //closes the player setup window - new_player_panel() - - if(href_list["late_join"]) - if(!SSticker || !SSticker.IsRoundInProgress()) - to_chat(usr, span_danger("The round is either not ready, or has already finished...")) - return - - if(href_list["late_join"] == "override") - LateChoices() - return - - if(SSticker.queued_players.len || (relevant_cap && living_player_count() >= relevant_cap && !(ckey(key) in GLOB.admin_datums))) - //yogs start -- donors bypassing the queue - if(ckey(key) in get_donators()) - to_chat(usr, span_notice("Because you are a donator, you have bypassed the queue! Thank you for donating!")) - LateChoices() - return - //yogs end - to_chat(usr, span_danger("[CONFIG_GET(string/hard_popcap_message)]")) - - var/queue_position = SSticker.queued_players.Find(usr) - if(queue_position == 1) - to_chat(usr, span_notice("You are next in line to join the game. You will be notified when a slot opens up.")) - else if(queue_position) - to_chat(usr, span_notice("There are [queue_position-1] players in front of you in the queue to join the game.")) - else - SSticker.queued_players += usr - to_chat(usr, span_notice("You have been added to the queue to join the game. Your position in queue is [SSticker.queued_players.len].")) - return + + if(href_list["late_join"]) //This still exists for queue messages in chat + if(!SSticker?.IsRoundInProgress()) + to_chat(usr, span_boldwarning("The round is either not ready, or has already finished...")) + return LateChoices() - - if(href_list["manifest"]) - ViewManifest() + return if(href_list["SelectedJob"]) @@ -176,6 +64,17 @@ to_chat(usr, span_notice("There is an administrative lock on entering the game!")) return + //Determines Relevent Population Cap + var/relevant_cap + var/hpc = CONFIG_GET(number/hard_popcap) + var/epc = CONFIG_GET(number/extreme_popcap) + if(hpc && epc) + relevant_cap = min(hpc, epc) + else + relevant_cap = max(hpc, epc) + + + if(SSticker.queued_players.len && !(ckey(key) in GLOB.admin_datums)) if((living_player_count() >= relevant_cap) || (src != SSticker.queued_players[1])) to_chat(usr, span_warning("Server is full.")) @@ -192,21 +91,10 @@ AttemptLateSpawn(href_list["SelectedJob"]) return - else if(!href_list["late_join"]) - new_player_panel() - if(href_list["showpoll"]) handle_player_polling() return - if(href_list["pollid"]) - var/pollid = href_list["pollid"] - if(istext(pollid)) - pollid = text2num(pollid) - if(isnum(pollid) && ISINTEGER(pollid)) - src.poll_player(pollid) - return - if(href_list["votepollid"] && href_list["votetype"]) var/pollid = text2num(href_list["votepollid"]) var/votetype = href_list["votetype"] @@ -290,7 +178,6 @@ if(QDELETED(src) || !src.client || this_is_like_playing_right != "Yes") ready = PLAYER_NOT_READY src << browse(null, "window=playersetup") //closes the player setup window - new_player_panel() return FALSE var/mob/dead/observer/observer = new() diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm index 364d22c441a6..3f1bcbe0a438 100644 --- a/code/modules/spells/spell_types/aimed.dm +++ b/code/modules/spells/spell_types/aimed.dm @@ -4,7 +4,7 @@ var/projectile_type = /obj/item/projectile/magic/teleport var/deactive_msg = "You discharge your projectile..." var/active_msg = "You charge your projectile!" - var/base_icon_state = "projectile" + base_icon_state = "projectile" var/active_icon_state = "projectile" var/list/projectile_var_overrides = list() var/projectile_amount = 1 //Projectiles per cast. diff --git a/icons/hud/lobby/background.dmi b/icons/hud/lobby/background.dmi new file mode 100644 index 0000000000000000000000000000000000000000..2d002f0162cc2877f761085ebf9bb73b63d5cdcf GIT binary patch literal 3629 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 Z@E-&4)fQOy*-!ug002ovPDHLkV1gwWv;6=7 literal 0 HcmV?d00001 diff --git a/icons/hud/lobby/countdown_background.dmi b/icons/hud/lobby/countdown_background.dmi new file mode 100644 index 0000000000000000000000000000000000000000..626bd249e792e74cf0c810609437598e126b4cd1 GIT binary patch literal 6502 zcmc&(2{e@bzkkMH>}e6%l~l4*`}D@h!GlF9+PZ^P)VpJ6+$nvL|JB- zLNBuP+D0L}%-FZt%zcLb|F_OP?>+b2bI-l!49`5j`ToZD_x!%!&+>EY^eHo80Z9P> z0E8{fkJ^O8|t7*RQ>BP-u`Z6m1Vn$GIk$;Xrc>}Njn^U%c@mLQUx~U4W za|}4@;eXNZvTwj;j1K?=J+eLH>vwHs(bjivX+-&is`97iR@)+bjrIeBLn^IS`#u7G zLM^yQ@qaZh#&3~tZH&mTP<*W@)@Wy`YGF4tWc5)+nRnmtkkx+6=94_H6L8ORb#JA} zqu?^8@NKGdZu=;bElCHz6BSJK9kmWc*`2Sgn>+m2>-L8;kz+&gOusK7!U;usXA$`e z2efQ$_Gt;U6y5*JK>B#5t{kQ!d79^T0+ip9KWvX4;N*}~>xdkm0s!$pERG(r3wlI- z3=8ag|0c>p?T^mox|Xo&(|lDunX>{9D|~5eHubFRN7)a4ijNKb(U*#m+r7?~xraaL zl}&J;9Enqp6ix9@dE9|Nt>J%-mH5St-<=&XvJxjG+&=<3uvfK^W@0B8y5G~722#GO z=n|n(1YLJR0c2?xqP0RlfMFFd*Ea)RJ?balKT$dcIFtk(3WP?hV511$Sv`FVuAYOK z{+hmp<&&RZ$*M{}AUCw+V?S)oAH%zbEwz%A+X=^BOu0QDcx$6g5X5L+M}`xoC8#=oc^oy_-;zK7iAK&qyH%9x_5SUGBC)oiB=8b)I9i zo76ptf#UkBr2wy}B+3eG(yOT3T-5abi|#l@jIo6HjdYwChF~+o`w3HlS7!)o^sw?c zFFb7pjNQ@4!yZTaV`~Sv+W@tdjNaOPOh4YX>298)w2z$0rT`VZw5vIzMz~)lq;zJG zWb{dvh=G&ty~*C}oB1REWJMg7V1%2?Y>9~zY?-)i{f8Xa?<kOs`S7sXYgT~ZW zD}jRzTC^6*;5Jaaf2RfXwMMW~hI9Hw!|B1mnWq3KXAH0SfG*97HRs(ePbHNP-(#lbpy&#cX&2L&XsoXQ^yHEQ#INAtW5Q3r7Gj8feSLBubHEU} z<}0=Ot)Z6WGuPDT@gjYsgwZY+IU+0%iWa9stJ1f*rcsIK`dxT1fs{DeO$^?NC0z28 z)$oUs3aw=l#GZV*-w@G#U{CuOu!a!nNN&}{@gisNp7rloXBoQeZI`?WV|Uj6(-B*S1_(S(qMNCXfiF?9RdQkRzT^R5SI)=>}QjMBXah z>TW-Rx{tI3CO%Ere0n^IIQ;F!ht^D(HO6CZA=0^R1R*S2LS#y#R-TLBm*cIJtA5JV z=wZpWm{~T(%Oi!bNQI-G^&(OoHuS9m=m{@UEFVc+pAFasdrM3&FJ#q|_s^3o{VOhb z6QgwU)wr$@DPZA8mdkO#q1XI#?R*KHcEN|3{q{UYd#cj6)`=0cb-M%gz_$TXRzSnj zyGwN?<9&;T53+BnyR;$HU(8?hM!LT0?xRZih7rbd+O%RCLc3z>9pz*Lgo9RW2`($m z@6J=NWK4JR3iGYL4e*Vkj{7AAqzp<`y+xKaquV4HSuL+&-HA_Vt8=rIM(wZpS&}Fx zs7RL?L*MC5%%_2mtM#<&-+9I3!)c?#W7Aczz8r9xe5Eb@QeQyfc1ev}uJs}X<*Y|s zd|fX5!WF$j`cv%mcHS$!kA!u``y#0(aHYAXp4z21cw3;Byx&%aId?etHXc@eCWHF!jifK&TAyh*zrQtM zb}5VD-`X;%c&)}&vZt>#^_&+eh_%fD#h}@Ec}tW7UEN^KU+1LIsM^$HI6_%*IbL14 z1@(N4tWjXsgA)k90=Yy8T) zgHG0!4G!J6hL$ z=eYEtJCa&l#a$wE{BG4{C=u9|AjzbuLGY_d_FG zCBwEDdsBm&ifsUVF>J z`S)Ff7KBc~;R7qFq+XXmJdrRn!xmYn&oMJzlvf zcd7+;11RnmfttHe_`vwypdw#`S?9-hl5*}uP{GAA(;n8U7by}jxR~ zoDOM6M!R4!<29n~IqZ3dbTnBbI4??Q2PR(6Goz?G`s(k*&*#rF4N&5C-VzY1gdCxv zil7;PLgkW3z{YYwCsH(bhyE4w6O-0^A7&N`@7gKkN@2pSzLue!GFS48mIdD8_ftS) zL~HelYnRiuSKK_ns6GSOas|v*HD$P}s(g+Jgs>J0F-Npkh4=(~xRp=6%bnB-)hcpf z3F{)`l!@P;9jEIwG4QHpbM#krD!?q;hKh_i0-LW{N5u~FmA6x_nE;E*8EmP zn~hZcZk!u6g(Blr=n6jLP8-9i{T;BN!oi5EeIGi0VANAEbOE+FVOVl+n#EqE6hvt9$kum_5AG zwFNvuC%3dp7-#D~<$7qD7wP&3>@VpydHcFTGBi@*loyHTn%HaKV-0Iw;FoCK>YSuJ zrK4(3#3bAGE}!QPrHZasL$^pWhk`z1qMonkT@!GVQx_9FqtM#SkVl*TVKLzw^Z6Ab zMV|@XwD7!~ws|Dx$c!2I_Rdf9)%SAf>__3@_od1mM-%oxS{z8?wwYvgSni&0Qc7vW z)bGKuD?;u7+03|^k6aHYTiY(eniW(2Y#rX}{!-?yHtrU)m`8LDLRknsR`)b&n32PJ-G1fL{?4>IY?0tJM(GTo>v4s{)bkRS` z**B;MIs3NK5#AJ;EXNl*$@^1VfUyt$X5=3aVPg?%5Pm{?xz*&wn6mygM!RW0j?~mv z0`M0zXcs0{@^^Q`dk?3ntVp>4ch46YAzg)1rw)(IxL=rCpbQGIuIK9D*0trG?lNeC zz~D8kO~9<@_QJ7(ozzH^xG<~4u@x5l3*RJ7hc4BulD4^_$CDp!$zX#sa?7n=P zMOVOKk$91U?$&*{0bZdpQ#w#@JFrPyJiT2Ee-6prHa-5ic8RXbGh2xZ6M3lnQ#9gt zIHb}hp}u?+Si7w2)(?+1>S9)&H0&C9mLSFYCIdaJx?L4W@L+YS7`c&mr82 zP(ltDRpQ>UAe8$_OZ}S^6&fENes5vSfj5Q1>Y+HMh7d@}Qg=$0i=GT2UVp9ckoy{D znA@IMy?h%|RYlHs@#Dl@yt&mwx0xC$Af?QK6Z#>sX8E=t7U}v~fc-=>j4C!?x$Jb( ziy1e)Smw~^)m@Qp0*d5qN7BjrN6NgMPTID>{Bybdjr)JxixIhg#CeK1K3$9wG1<9` z=QK>^avre#W%W?R*VgXRp#=!%AZp!-6pE7zrHVO>#GvLbLODZ;;67^v!#oQspwI5f z1#f(|&}578SmbS&3{-g1xGB8;%Y{ac<7c)U{@w17Vh6uFuIuH|)n-tIBn z3A>VJm>5xLFYauA_?8x!rhNg`fM%!o4&sXm1Nm$^S1VizQnN}>HZL|V zBfHlgq-~+y`0MPsx=pkjMH^i8-)Krcg`+!o@BP)GwF^SA{zRsq%uh}I3l<}7)sXQW zpu@ek>kt?3gkF}6ll{i_=X@F_aQeDo{8e_{7E ztG7&z!>kK?(lL#lhdo$o<|#`V51w5n2%hfmJQnOAJ?b2l#lD~?;^DpZPqN1SvTNIU zlCr}u?mcnh^n|EoeBCsSu2xS5bw^4cFZcK?@qFuNj;-nJrHkQG@NtJPm1QZ@gU1E4qC0deLYvl(;z@lX**xt_~i1bf}q`xXlUz&c5M z#-z#5!%^yA*WKKYo!Qj>lNQ+6*$skeaNQs#li1XHd#q)6ow!IaVw3v4*17|h@(l5Y z!N9VSklj*y?u~*ZK|4Rejumy+KVk#_@e2x!XdEhEXtXx8u)Ckfp%VFw< z^1_suq2^sztEbauDKu?XzA#tpQlZ%i$(mZV_tj<1Gi_tKvWy8$SGr2X9RzodOBgN7}G7{wYO2umE;(P^o!Mn2Q)K42lN@r!)Iy6NN`Ku|rK zq#?06!1KzV7zPBcj<)F-ZVjOusInXmsZu@3x^4u)*Pmdf%~(=9g^=G4 zyrFzrZs54x=t{TWMS_CGnR7uwQr3(*(bdUJIvvROs{09_F}`Ilw4b5)HYLg^ow3 z+N~Z(TWmE(C>w4%d~KV7<6+s=f>UOVwq~_hg6^JYa*tD{TMf-}lF(0L$Jo0gtFW=P zg_{OR+7xsjvotZVq1wk$Pwk2vnOzA)#|-yHUgCuvTz$K?t)ZU)$txjH0Vh|iDKzMZ z902aFV9E$QIy-jo`o11ez?JW?SUFz=r({V9fuF>8sVw_f%coR_Px7dOBK*+VNh%j# ztg2%hjyoNRHQnn4Tj8uzV1` zi&MawY$9LdIsM3*WdWLVXhF6cu+J-|t=mPR(0SO?6C!3A6W7qFDr`djJ}rd%AAjFT z82?FD_?Ij|>+|i9O|Iw?$tAnMfCeZ>DhMc!U@R?Vd7M1IAbOR0xQec-OtOG^Z# z1afXR*atIr?zCS6LOQiI^R_Q%*p1G`#ljuyFcyGdD@w^ec+7D)&j8$0Wz`qkI zy4)fB6GyN_Rey3%8&c@k!iTIUA7sG(|9)xSWFzpC1?k$IY6;LkAOMSFr;ZkwxJCR2 DQaHcC literal 0 HcmV?d00001 diff --git a/icons/hud/lobby/countdown_letters.dmi b/icons/hud/lobby/countdown_letters.dmi new file mode 100644 index 0000000000000000000000000000000000000000..74f9f2f79ccea9f94d68b7bb34a39c1afe4557ee GIT binary patch literal 512 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

-S@7_r_xE)=I_$bXe7Jd(@|@C9 zIDfU*kc8eJ@%@KPy&yW@!fw}O*G?O+_|4dBJ^FQ^hdCD)K`yuCQquY$Gn<<+Z!IU5 zzc+9dBinOE$!>qu?VT_W0}uX#)SwrSe2v@K`Z-U(mZ;+S6B$K z|CkijBBTmwqV+;B%FB$D?5 z_slzsFUd1_uV*co6IHPSYY27PerW#!fMi0igq}*Yc%I0w=BH~VBFozH|3@lz721Eg uVKj^1k^gPLR$D#~p;_wiKZ6`fc<3GK@(ZZaR}axA2ynDTBHFDlXZ{;J9O_~K literal 0 HcmV?d00001 diff --git a/icons/hud/lobby/poll_overlay.dmi b/icons/hud/lobby/poll_overlay.dmi new file mode 100644 index 0000000000000000000000000000000000000000..2fc97162601c500d74793b42e091ff4c0c500a54 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^5YK07RogN!d5dpXD$uX{A<$fOX3U`_q4 zHv1Ip)!jS0ja4_VkkCjuadc+blo_+R61BB={My;z%f>K|O*%jH_p2#Do0UCX9780g zCMPs7J2J8@vT*W{5ms06%Mf7ZYe-_4Skd BStI}e literal 0 HcmV?d00001 diff --git a/icons/hud/lobby/ready.dmi b/icons/hud/lobby/ready.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ab473ee8dff1d1a688e43cbdb4eb1ecc495b33a0 GIT binary patch literal 15081 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 Twh8`!0Ps>uQL;?jFyQ|IKmOuJ literal 0 HcmV?d00001 diff --git a/yogstation.dme b/yogstation.dme index b002e518256d..743e3b4653f0 100644 --- a/yogstation.dme +++ b/yogstation.dme @@ -233,6 +233,7 @@ #include "code\_onclick\hud\map_popups.dm" #include "code\_onclick\hud\monkey.dm" #include "code\_onclick\hud\movable_screen_objects.dm" +#include "code\_onclick\hud\new_player.dm" #include "code\_onclick\hud\pai.dm" #include "code\_onclick\hud\parallax.dm" #include "code\_onclick\hud\picture_in_picture.dm" @@ -318,6 +319,7 @@ #include "code\controllers\subsystem\vis_overlays.dm" #include "code\controllers\subsystem\vote.dm" #include "code\controllers\subsystem\weather.dm" +#include "code\controllers\subsystem\processing\fastlobbyprocess.dm" #include "code\controllers\subsystem\processing\fastprocess.dm" #include "code\controllers\subsystem\processing\fields.dm" #include "code\controllers\subsystem\processing\fluids.dm" From 71292c102e1279a3c6de84f272d22731634e8526 Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Fri, 17 Sep 2021 14:05:33 +0100 Subject: [PATCH 21/24] [BETA] Shuttle Building (#12322) * Add files via upload * changed sigtech, tourist, and clerk icons added more detail to sigtech icon new tourist and clerk icons * Some more icon changes I uploaded the wrong file * applied grimm-hollowknight requested changes Adds new signal technician and paramedic hud icons and reverts clerk's back, all requested by grimm-hollowknight * ah, so thats why you reverted that change im dumb * why cant i merge upstream why github Co-authored-by: nmajask From 4faf9a8f862965460128c5e15a6e32fde13e2f1a Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Fri, 17 Sep 2021 14:09:45 +0100 Subject: [PATCH 22/24] Mission shitpossible (#12324) * Infiltrators! * Fix the cigarette vending machine in the infiltrator base * Uncomment role preference * Fix a bunch of bugs. * Changes to AI hijack * GODDAMIT I FORGOT TO SAVE IN STRONGDMM * Fix the dumb gravgen runtime. * Just throw the infiltrator base on centcom directly * Add infiltrators to one-click antag (and fix vampires not being in it) * blame jamie * add infiltrators event * Admin only for now. Admin only for now. * Maybe fix the round ending a BIT too early? * Fix uplink not appearing properly in the roundend report * Improve examine text for infiltrator power sink * Whoops, remove the J * More stuff. * Jamie's map changes * Make the AI hijacker more idiot-proof. * Update map again. * fix infiltrators not being able to use edaggers * Update centcomm map again * aaaaa * fix powersink examine * e * wait nvm that's right * big typo whoopsie * Some big ol' improvements! Co-authored-by: Lucy --- _maps/map_files/generic/CentCom.dmm | 7452 ++++++++++------- _maps/shuttles/infiltrator_cutter.dmm | 1417 ++++ _maps/templates/infiltrator_base.dmm | 3106 +++++++ code/__DEFINES/role_preferences.dm | 8 +- code/__DEFINES/{yogs_defines}/antagonists.dm | 12 +- code/__DEFINES/{yogs_defines}/atom_hud.dm | 3 +- code/__DEFINES/{yogs_defines}/is_helpers.dm | 5 +- code/__DEFINES/{yogs_defines}/misc.dm | 6 +- code/datums/components/uplink.dm | 5 +- code/datums/hud.dm | 1 + code/modules/admin/topic.dm | 15 + code/modules/admin/verbs/one_click_antag.dm | 2 + code/modules/clothing/chameleon.dm | 11 +- code/modules/mob/living/silicon/ai/life.dm | 1 + code/modules/power/gravitygenerator.dm | 2 +- code/modules/uplink/uplink_items.dm | 32 +- yogstation.dme | 22 + yogstation/code/__HELPERS/game.dm | 5 + yogstation/code/_globalvars/lists/game.dm | 2 + yogstation/code/datums/action.dm | 6 + yogstation/code/datums/shuttles.dm | 4 + yogstation/code/game/area/areas/centcom.dm | 26 + yogstation/code/game/area/areas/shuttles.dm | 9 + .../gamemodes/infiltration/infiltration.dm | 82 + yogstation/code/game/gamemodes/objective.dm | 30 + .../code/game/gamemodes/objective_items.dm | 5 +- .../code/game/machinery/suit_storage_unit.dm | 4 + .../code/game/objects/effects/landmarks.dm | 20 + .../game/objects/items/devices/powersink.dm | 65 +- .../objects/items/implants/implant_dusting.dm | 45 + .../objects/items/implants/implantuplink.dm | 2 + yogstation/code/modules/admin/topic.dm | 9 - .../modules/admin/verbs/one_click_antag.dm | 35 + .../antagonists/hijacked_ai/hijacked_ai.dm | 60 + .../antagonists/infiltrator/infiltrator.dm | 94 + .../infiltrator/items/ai_hijack.dm | 37 + .../antagonists/infiltrator/items/hardsuit.dm | 35 + .../infiltrator/items/pinpointer.dm | 96 + .../antagonists/infiltrator/items/services.dm | 67 + .../antagonists/infiltrator/objectives.dm | 108 + .../modules/antagonists/infiltrator/outfit.dm | 36 + .../modules/antagonists/infiltrator/team.dm | 159 + yogstation/code/modules/clothing/chameleon.dm | 2 +- .../code/modules/clothing/head/helmet.dm | 20 + .../code/modules/events/infiltrators.dm | 58 + .../code/modules/mob/living/silicon/ai/ai.dm | 33 +- .../modules/mob/living/silicon/ai/death.dm | 11 + .../modules/mob/living/silicon/ai/life.dm | 14 + yogstation/code/modules/shuttle/syndicate.dm | 9 + yogstation/code/modules/uplink/uplink_item.dm | 49 + yogstation/icons/obj/device.dmi | Bin 1044 -> 2313 bytes yogstation/icons/obj/module.dmi | Bin 0 -> 1216 bytes .../sound/ambience/antag/infiltrator.ogg | Bin 0 -> 335258 bytes 53 files changed, 10252 insertions(+), 3085 deletions(-) create mode 100644 _maps/shuttles/infiltrator_cutter.dmm create mode 100644 _maps/templates/infiltrator_base.dmm create mode 100644 yogstation/code/__HELPERS/game.dm create mode 100644 yogstation/code/_globalvars/lists/game.dm create mode 100644 yogstation/code/game/area/areas/centcom.dm create mode 100644 yogstation/code/game/area/areas/shuttles.dm create mode 100644 yogstation/code/game/gamemodes/infiltration/infiltration.dm create mode 100644 yogstation/code/game/machinery/suit_storage_unit.dm create mode 100644 yogstation/code/game/objects/items/implants/implant_dusting.dm create mode 100644 yogstation/code/game/objects/items/implants/implantuplink.dm create mode 100644 yogstation/code/modules/antagonists/hijacked_ai/hijacked_ai.dm create mode 100644 yogstation/code/modules/antagonists/infiltrator/infiltrator.dm create mode 100644 yogstation/code/modules/antagonists/infiltrator/items/ai_hijack.dm create mode 100644 yogstation/code/modules/antagonists/infiltrator/items/hardsuit.dm create mode 100644 yogstation/code/modules/antagonists/infiltrator/items/pinpointer.dm create mode 100644 yogstation/code/modules/antagonists/infiltrator/items/services.dm create mode 100644 yogstation/code/modules/antagonists/infiltrator/objectives.dm create mode 100644 yogstation/code/modules/antagonists/infiltrator/outfit.dm create mode 100644 yogstation/code/modules/antagonists/infiltrator/team.dm create mode 100644 yogstation/code/modules/clothing/head/helmet.dm create mode 100644 yogstation/code/modules/events/infiltrators.dm create mode 100644 yogstation/code/modules/mob/living/silicon/ai/death.dm create mode 100644 yogstation/code/modules/mob/living/silicon/ai/life.dm create mode 100644 yogstation/code/modules/shuttle/syndicate.dm create mode 100644 yogstation/icons/obj/module.dmi create mode 100644 yogstation/sound/ambience/antag/infiltrator.ogg diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 421a91ff2811..9e81e908b5f4 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -49,19 +49,8 @@ /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/bunker) "al" = ( -/obj/structure/weightmachine/weightlifter, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base) "am" = ( /obj/structure/closet/crate/bin, /turf/open/floor/holofloor{ @@ -122,6 +111,19 @@ }, /turf/open/floor/holofloor, /area/holodeck/rec_center/court) +"av" = ( +/obj/docking_port/stationary{ + area_type = /area/yogs/infiltrator_base/outside; + dir = 2; + dwidth = 14; + height = 13; + id = "syndicatecutter_home"; + name = "Syndicate Home Outpost"; + roundstart_template = /datum/map_template/shuttle/infiltrator/cutter; + width = 22 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "aw" = ( /obj/structure/flora/bush, /turf/open/floor/holofloor/snow, @@ -263,13 +265,12 @@ /turf/open/floor/holofloor/snow, /area/holodeck/rec_center/winterwonderland) "aN" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 }, -/area/holodeck/rec_center/gym) +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "aO" = ( /obj/structure/window, /obj/effect/turf_decal/tile/blue, @@ -300,28 +301,9 @@ }, /area/holodeck/rec_center/lounge) "aR" = ( -/obj/item/clothing/under/shorts/red{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/clothing/under/shorts/blue{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/clothing/under/shorts/green, -/obj/item/clothing/under/shorts/grey{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/clothing/under/jabroni{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/structure/rack, -/turf/open/floor/holofloor{ - icon_state = "darkfull" - }, -/area/holodeck/rec_center/gym) +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "aS" = ( /obj/item/cardboard_cutout/chess/white/king, /turf/open/floor/holofloor{ @@ -383,6 +365,16 @@ "aZ" = ( /turf/open/floor/holofloor/carpet, /area/holodeck/rec_center/lounge) +"ba" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Cabin 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "bb" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -408,6 +400,30 @@ }, /turf/open/floor/holofloor/carpet, /area/holodeck/rec_center/lounge) +"bf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + icon_door = "black"; + name = "wardrobe" + }, +/obj/item/clothing/gloves/combat{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/shoes/combat/coldres{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/shoes/combat/coldres, +/obj/item/clothing/under/syndicate/combat{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/under/syndicate/combat, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "bg" = ( /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ @@ -465,6 +481,27 @@ icon_state = "wood" }, /area/holodeck/rec_center/lounge) +"bp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bq" = ( +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A. Foyer"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"br" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) "bs" = ( /obj/structure/table/wood, /obj/item/stamp/syndiround, @@ -661,13 +698,9 @@ /turf/open/floor/holofloor, /area/holodeck/rec_center/pet_lounge) "bU" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/turf/open/floor/holofloor{ - icon_state = "darkfull" - }, -/area/holodeck/rec_center/gym) +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "bV" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -681,15 +714,8 @@ }, /area/holodeck/rec_center/medical) "bW" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/turf/closed/indestructible/rock/snow, +/area/yogs/infiltrator_base/outside) "bX" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -745,11 +771,24 @@ }, /turf/open/floor/holofloor, /area/holodeck/rec_center/pet_lounge) +"cd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "ce" = ( /obj/effect/holodeck_effect/mobspawner/bee, /obj/item/clothing/head/beekeeper_head, /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/anthophila) +"cf" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/yogs/infiltrator_base/jail) "cg" = ( /obj/machinery/shower{ dir = 4 @@ -859,11 +898,9 @@ /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/anthophila) "cs" = ( -/obj/structure/railing, -/turf/open/floor/holofloor{ - icon_state = "darkfull" - }, -/area/holodeck/rec_center/gym) +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "ct" = ( /obj/structure/table/wood/fancy, /obj/item/clothing/suit/armor/riot/knight/blue, @@ -1095,6 +1132,21 @@ icon_state = "white" }, /area/holodeck/rec_center/medical) +"da" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/flasher{ + id = "syndicateinfiltrator_flash2"; + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "db" = ( /obj/structure/flora/ausbushes/ywflowers, /obj/effect/holodeck_effect/mobspawner/pet, @@ -1137,14 +1189,9 @@ /turf/open/floor/holofloor, /area/holodeck/rec_center/basketball) "df" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/holofloor{ - icon_state = "white" - }, -/area/holodeck/rec_center/gym) +/obj/machinery/vending/cigarette/syndicate, +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base) "dg" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -1203,6 +1250,31 @@ }, /turf/open/floor/holofloor/plating, /area/holodeck/rec_center/spacechess) +"do" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24; + req_access = 150 + }, +/obj/machinery/turretid{ + icon_state = "control_kill"; + lethal = 1; + locked = 1; + pixel_y = 28; + req_access = 150 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 5 + }, +/area/yogs/infiltrator_base) "dp" = ( /obj/structure/table/wood/fancy, /obj/item/clothing/suit/armor/riot/knight/blue, @@ -1217,20 +1289,59 @@ }, /turf/open/floor/holofloor/grass, /area/holodeck/rec_center/thunderdome1218) -"ds" = ( -/obj/structure/weightmachine/stacklifter, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +"dr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"ds" = ( +/turf/closed/indestructible/fakeglass, +/area/yogs/infiltrator_base) +"dt" = ( +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"du" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 }, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"dv" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base) +"dw" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 9 + }, +/area/yogs/infiltrator_base) "dx" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -1252,6 +1363,11 @@ }, /turf/open/floor/holofloor, /area/holodeck/rec_center/firingrange) +"dy" = ( +/turf/closed/indestructible/fakedoor{ + name = "Primary Hallway" + }, +/area/yogs/infiltrator_base/jail) "dA" = ( /turf/open/floor/holofloor, /area/holodeck/rec_center/school) @@ -1361,6 +1477,9 @@ "dL" = ( /turf/open/floor/holofloor/grass, /area/holodeck/rec_center/thunderdome1218) +"dM" = ( +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base/jail) "dN" = ( /obj/structure/table/wood, /obj/item/melee/chainofcommand{ @@ -1376,12 +1495,30 @@ icon_state = "white" }, /area/holodeck/rec_center/medical) -"dQ" = ( -/obj/machinery/door/window/eastleft, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +"dP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/area/holodeck/rec_center/gym) +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"dR" = ( +/obj/structure/bed, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = list(150); + req_access_txt = "0" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "dS" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -1407,6 +1544,20 @@ icon_state = "chapel" }, /area/holodeck/rec_center/chapelcourt) +"dW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/glass, +/obj/effect/landmark/start/infiltrator_objective, +/obj/machinery/light/small, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "dX" = ( /obj/structure/table/wood, /obj/item/folder, @@ -1510,6 +1661,14 @@ icon_state = "whiteboard" }, /area/holodeck/rec_center/spacechess) +"el" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel{ + dir = 4 + }, +/area/yogs/infiltrator_base/jail) "em" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -1567,6 +1726,12 @@ icon_state = "white" }, /area/holodeck/rec_center/firingrange) +"et" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "eu" = ( /obj/item/weldingtool, /turf/open/floor/holofloor/plating, @@ -1586,11 +1751,35 @@ }, /area/holodeck/rec_center/medical) "ex" = ( -/obj/machinery/door/window/westright, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/structure/rack{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "minibar_left"; + name = "skeletal minibar" + }, +/obj/item/reagent_containers/food/drinks/bottle/grappa{ + pixel_x = 10; + pixel_y = 18 + }, +/obj/item/reagent_containers/food/drinks/bottle/patron{ + pixel_x = -5; + pixel_y = 18 }, -/area/holodeck/rec_center/gym) +/obj/item/reagent_containers/food/drinks/bottle/vodka{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/drinks/bottle/cognac{ + pixel_x = -10; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + layer = 3.2; + pixel_x = 15; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "ey" = ( /obj/structure/table/wood, /obj/item/melee/chainofcommand{ @@ -1660,6 +1849,10 @@ "eF" = ( /turf/open/floor/holofloor, /area/holodeck/rec_center/firingrange) +"eG" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base/jail) "eH" = ( /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/thunderdome1218) @@ -1685,6 +1878,21 @@ icon_state = "white" }, /area/holodeck/rec_center/medical) +"eK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "eM" = ( /obj/structure/chair{ dir = 1 @@ -1716,13 +1924,30 @@ }, /area/holodeck/rec_center/spacechess) "eQ" = ( -/obj/structure/chair{ - dir = 4 +/obj/structure/rack{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "minibar_right"; + name = "skeletal minibar" }, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/item/reagent_containers/food/drinks/bottle/goldschlager{ + pixel_x = -8; + pixel_y = 18 }, -/area/holodeck/rec_center/gym) +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 7; + pixel_y = 18 + }, +/obj/item/reagent_containers/food/drinks/bottle/kahlua{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/drinks/bottle/absinthe{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "eR" = ( /obj/structure/chair{ dir = 1 @@ -1806,10 +2031,34 @@ /obj/effect/holodeck_effect/mobspawner/penguin, /turf/open/floor/holofloor/snow, /area/holodeck/rec_center/winterwonderland) +"fd" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) "fe" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/holofloor/grass, /area/holodeck/rec_center/pet_lounge) +"ff" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset{ + anchored = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "fg" = ( /obj/structure/table/reinforced, /obj/machinery/recharger, @@ -1843,6 +2092,13 @@ }, /turf/open/floor/holofloor/snow, /area/holodeck/rec_center/winterwonderland) +"fl" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/structure/closet/syndicate/personal, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) "fn" = ( /obj/structure/flora/ausbushes/reedbush, /turf/open/floor/holofloor/grass, @@ -1888,6 +2144,21 @@ icon_state = "white" }, /area/holodeck/rec_center/medical) +"fs" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/shuttle/syndicate/recall{ + dir = 1; + possible_destinations = "syndicatecutter_home"; + shuttleId = "syndicatecutter" + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"ft" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/suit_storage_unit/infiltrator, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "fu" = ( /obj/item/target, /obj/item/target/clown, @@ -5304,6 +5575,19 @@ }, /turf/open/floor/plasteel/white, /area/centcom/ferry) +"nk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "nl" = ( /obj/machinery/computer/security/mining{ dir = 4 @@ -5917,6 +6201,21 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"om" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"on" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "oo" = ( /obj/structure/table/wood, /obj/item/paper_bin, @@ -6102,10 +6401,69 @@ "oB" = ( /turf/open/floor/wood, /area/centcom/ferry) +"oD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/table, +/obj/item/restraints/handcuffs{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/restraints/handcuffs{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/assembly/flash/handheld, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"oE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "oF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/centcom/ferry) +"oG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) +"oH" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"oI" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "oJ" = ( /obj/machinery/door/airlock/centcom{ name = "Administrative Office"; @@ -6262,6 +6620,10 @@ }, /turf/open/floor/plasteel/bluespace, /area/centcom/testchamber) +"oV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "oW" = ( /obj/structure/flora/bush, /obj/effect/light_emitter{ @@ -6293,16 +6655,74 @@ }, /turf/open/floor/wood, /area/centcom/ferry) +"oZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"pa" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/radio/headset/syndicate/alt{ + pixel_y = 5 + }, +/obj/item/radio/headset/syndicate/alt{ + pixel_x = 1; + pixel_y = -5 + }, +/obj/item/radio/headset/syndicate/alt{ + pixel_x = 10; + pixel_y = 6 + }, +/obj/item/radio/headset/syndicate/alt{ + pixel_x = 10; + pixel_y = -5 + }, +/obj/item/multitool{ + pixel_x = -6 + }, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) +"pb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "pc" = ( /obj/machinery/computer/communications, /turf/open/floor/carpet/green, /area/centcom/ferry) +"pd" = ( +/obj/structure/chair/stool, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 26 + }, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "pe" = ( /obj/structure/chair/comfy/black{ dir = 1 }, /turf/open/floor/carpet/green, /area/centcom/ferry) +"pf" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "pg" = ( /turf/open/floor/plasteel/grimy, /area/centcom/ferry) @@ -6596,6 +7016,17 @@ }, /turf/open/floor/wood, /area/centcom/ferry) +"pA" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "pB" = ( /obj/machinery/firealarm, /turf/closed/indestructible/riveted, @@ -6687,6 +7118,52 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/wood, /area/centcom/ferry) +"pL" = ( +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A. Equipment"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"pM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"pN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "pO" = ( /obj/structure/destructible/cult/tome, /obj/item/book/codex_gigas, @@ -7147,6 +7624,15 @@ "qE" = ( /turf/closed/indestructible/riveted/uranium, /area/wizard_station) +"qF" = ( +/obj/machinery/door/airlock{ + name = "Cabin 3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "qG" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -7199,11 +7685,37 @@ /turf/open/floor/plasteel, /area/syndicate_mothership/control) "qM" = ( -/obj/structure/railing/corner, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -7; + pixel_y = 12 }, -/area/holodeck/rec_center/gym) +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -7; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "qN" = ( /obj/structure/urinal{ pixel_y = 28 @@ -7519,6 +8031,28 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"ru" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 8; + scan_range = 3 + }, +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'CAUTION: AUTOMATED TURRET'."; + name = "CAUTION: AUTOMATED TURRET"; + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base/jail) +"rv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/indestructible/fakedoor{ + name = "Primary Hallway" + }, +/area/yogs/infiltrator_base) "rw" = ( /obj/item/flashlight/lamp, /obj/structure/table/reinforced, @@ -7857,15 +8391,8 @@ /turf/open/floor/plasteel, /area/centcom/supplypod) "sc" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "sd" = ( /obj/structure/sign/nanotrasen{ pixel_y = 32 @@ -7901,6 +8428,11 @@ }, /turf/open/floor/plasteel, /area/syndicate_mothership/control) +"sh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "si" = ( /obj/structure/table/wood, /obj/item/paper/fluff/stations/centcom/disk_memo, @@ -8067,6 +8599,17 @@ }, /turf/open/floor/carpet/green, /area/centcom/ferry) +"sC" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Cell 2"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "sD" = ( /obj/machinery/door/airlock/centcom{ name = "Administrative Storage"; @@ -8405,12 +8948,9 @@ /turf/open/floor/plasteel, /area/syndicate_mothership/control) "tg" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "th" = ( /obj/structure/closet/cardboard, /obj/effect/turf_decal/stripes/corner, @@ -8545,6 +9085,10 @@ /obj/structure/flora/ausbushes/fernybush, /turf/open/floor/holofloor/grass, /area/holodeck/rec_center/pet_lounge) +"ty" = ( +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "tz" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -8554,6 +9098,20 @@ }, /turf/open/floor/wood, /area/centcom/ferry) +"tA" = ( +/obj/structure/table/wood, +/obj/item/pizzabox/vegetable, +/obj/item/paicard, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"tB" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "tC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -8796,6 +9354,29 @@ icon_state = "white" }, /area/holodeck/rec_center/medical) +"ub" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/gun/ballistic/automatic/pistol{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/gun/ballistic/automatic/pistol{ + pixel_y = 1 + }, +/obj/item/gun/ballistic/automatic/pistol{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/gun/ballistic/automatic/pistol{ + pixel_x = 2; + pixel_y = -3 + }, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) "uc" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -8945,6 +9526,16 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"up" = ( +/obj/machinery/washing_machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) +"uq" = ( +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "ur" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -9520,6 +10111,14 @@ /obj/item/toy/nuke, /turf/open/floor/wood, /area/syndicate_mothership/control) +"vy" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) "vz" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -10357,13 +10956,14 @@ /turf/open/floor/holofloor, /area/holodeck/rec_center/basketball) "xa" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/beerkeg, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 }, -/area/holodeck/rec_center/gym) +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "xb" = ( /obj/docking_port/stationary{ dir = 8; @@ -10617,6 +11217,17 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/holofloor, /area/holodeck/rec_center/firingrange) +"xF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "xG" = ( /turf/open/floor/plasteel/dark, /area/syndicate_mothership/control) @@ -10824,6 +11435,11 @@ /obj/machinery/light, /turf/open/floor/plasteel/dark, /area/centcom/supplypod) +"yg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "yh" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ dir = 4 @@ -11130,14 +11746,11 @@ /turf/open/floor/holofloor/plating, /area/holodeck/rec_center/spacechess) "yP" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/holofloor{ - icon_state = "white" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, -/area/holodeck/rec_center/gym) +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "yQ" = ( /obj/structure/flora/ausbushes/lavendergrass, /obj/structure/flora/ausbushes/sparsegrass, @@ -11777,16 +12390,12 @@ /turf/open/floor/plasteel/cafeteria, /area/centcom/holding) "zY" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/holofloor{ - icon_state = "white" +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/area/holodeck/rec_center/gym) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "zZ" = ( /obj/effect/turf_decal/tile/brown{ dir = 8 @@ -12068,6 +12677,15 @@ /obj/structure/table/reinforced, /turf/open/floor/plasteel, /area/centcom/testchamber) +"AF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "AG" = ( /obj/structure/ladder/unbreakable/binary/space, /turf/open/indestructible/airblock, @@ -12344,6 +12962,16 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/centcom/testchamber) +"Bm" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Bn" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -12755,6 +13383,16 @@ }, /turf/open/floor/bluespace, /area/centcom/testchamber) +"BX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Cabin 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "BY" = ( /obj/item/toy/figure/syndie, /turf/open/floor/plating/asteroid/snow/airless, @@ -13336,6 +13974,16 @@ }, /turf/open/floor/holofloor/plating, /area/holodeck/rec_center/spacechess) +"CT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "CU" = ( /obj/structure/table/wood/bar{ boot_dir = 8 @@ -14694,12 +15342,31 @@ }, /turf/open/floor/plasteel/white, /area/tdome/tdomeobserve) +"FA" = ( +/obj/structure/rack, +/obj/item/storage/box/lights/bulbs, +/turf/open/floor/plasteel/dark/side{ + dir = 6 + }, +/area/yogs/infiltrator_base) "FB" = ( /obj/item/cardboard_cutout/chess/white/bishop, /turf/open/floor/holofloor{ icon_state = "reebe" }, /area/holodeck/rec_center/spacechess) +"FC" = ( +/obj/structure/sign/warning/securearea{ + desc = "You shouldn't be here, you know!"; + name = "\improper FOURTH WALL"; + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4; + piping_layer = 2 + }, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "FD" = ( /obj/machinery/shower{ dir = 4 @@ -15114,6 +15781,25 @@ /obj/structure/bookcase/random/fiction, /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/bunker) +"GB" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/structure/table, +/obj/item/suppressor{ + pixel_y = 8 + }, +/obj/item/suppressor{ + pixel_y = -3 + }, +/obj/item/suppressor{ + pixel_y = 2 + }, +/obj/item/suppressor{ + pixel_y = 13 + }, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) "GC" = ( /obj/structure/table, /obj/structure/bedsheetbin, @@ -17042,6 +17728,23 @@ }, /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) +"JW" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/toy/cards/deck/syndicate{ + icon_state = "deck_syndicate_full"; + pixel_x = -6; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "JX" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -17104,18 +17807,9 @@ /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) "Kd" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "Ke" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -17612,6 +18306,21 @@ "KQ" = ( /turf/open/floor/plating, /area/centcom/evac) +"KR" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = 150 + }, +/obj/structure/table, +/obj/item/storage/toolbox/syndicate, +/obj/item/flashlight, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) "KS" = ( /obj/machinery/door/window/northright{ name = "Security Desk"; @@ -17699,6 +18408,13 @@ }, /turf/open/floor/plasteel, /area/centcom/evac) +"KZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "La" = ( /obj/machinery/stasis{ dir = 4 @@ -17749,6 +18465,19 @@ icon_state = "white" }, /area/holodeck/rec_center/medical) +"Le" = ( +/obj/structure/bed, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"Lf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Lg" = ( /obj/structure/chair/comfy/black{ dir = 1 @@ -17759,13 +18488,26 @@ /turf/open/floor/carpet/green, /area/centcom/ferry) "Lh" = ( -/obj/structure/railing{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = -2; + pixel_y = 6 }, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/item/storage/box/donkpockets{ + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 2 }, -/area/holodeck/rec_center/gym) +/obj/item/reagent_containers/food/snacks/chocolatebar{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "Li" = ( /obj/structure/window/reinforced, /obj/machinery/computer/secure_data/laptop{ @@ -17776,6 +18518,17 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/mineral/plastitanium/red, /area/centcom/evac) +"Lj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = list(150); + req_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "Lk" = ( /obj/machinery/sleeper{ controls_inside = 1; @@ -17867,27 +18620,85 @@ icon_state = "darkfull" }, /area/holodeck/rec_center/chapelcourt) +"Lv" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/gun/energy/e_gun/mini{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun/mini, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) +"Lw" = ( +/obj/structure/flora/grass/brown, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"Lx" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -24; + req_access = list(150) + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Ly" = ( /obj/effect/turf_decal/tile/red{ dir = 4 }, /turf/open/floor/holofloor, /area/holodeck/rec_center/firingrange) +"Lz" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "LA" = ( /obj/effect/decal/cleanable/crayon{ icon_state = "1" }, /turf/open/floor/holofloor/plating, /area/holodeck/rec_center/spacechess) +"LB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "LC" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = 150 }, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) "LE" = ( /obj/structure/table, /obj/item/radio/off, @@ -17916,10 +18727,14 @@ }, /area/holodeck/rec_center/chapelcourt) "LH" = ( -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/machinery/porta_turret/syndicate, +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'CAUTION: AUTOMATED TURRET'."; + name = "CAUTION: AUTOMATED TURRET"; + pixel_y = 32 }, -/area/holodeck/rec_center/gym) +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) "LI" = ( /obj/item/clothing/suit/judgerobe, /obj/item/clothing/head/powdered_wig, @@ -17939,13 +18754,25 @@ }, /area/holodeck/rec_center/chapelcourt) "LJ" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/machinery/turretid{ + ailock = 1; + control_area = null; + desc = "A specially designed set of turret controls. Looks to be covered in protective casing to prevent AI interfacing."; + icon_state = "control_stun"; + name = "Security turret control"; + pixel_x = 26; + req_access = 150 }, -/turf/open/floor/holofloor{ - icon_state = "white" +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/area/holodeck/rec_center/gym) +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "LK" = ( /obj/machinery/abductor/experiment{ team_number = 2 @@ -18199,16 +19026,12 @@ /turf/open/floor/plasteel/bluespace, /area/centcom/testchamber) "Mo" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/holofloor{ - icon_state = "white" +/obj/machinery/door/airlock{ + name = "Bar Storage" }, -/area/holodeck/rec_center/gym) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "Mp" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -18242,6 +19065,13 @@ }, /turf/open/floor/wood, /area/centcom/holding) +"Mt" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Mu" = ( /obj/machinery/light{ dir = 1 @@ -18469,6 +19299,22 @@ layer = 5 }, /area/space) +"MP" = ( +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A. Equipment"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "MQ" = ( /obj/structure/chair/stool/bar, /turf/open/floor/holofloor/carpet, @@ -18479,6 +19325,21 @@ }, /turf/open/floor/carpet/black, /area/centcom/holding) +"MS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "MT" = ( /obj/machinery/processor, /turf/open/floor/plasteel/cafeteria, @@ -18487,6 +19348,16 @@ /obj/machinery/portable_atmospherics/canister/bz, /turf/open/floor/bluespace, /area/centcom/testchamber) +"MV" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Cell 1"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "MW" = ( /obj/machinery/portable_atmospherics/canister/water_vapor, /turf/open/floor/bluespace, @@ -18678,15 +19549,16 @@ /turf/open/floor/plasteel/bluespace, /area/centcom/testchamber) "Np" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/stripes/white/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/syndicate/personal, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) "Nq" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -18777,6 +19649,17 @@ /obj/item/gun/magic/rune/toxic_rune, /turf/open/floor/wood, /area/centcom/testchamber) +"NC" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/closet/secure_closet/personal, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/carpet/black, +/area/yogs/infiltrator_base) "ND" = ( /obj/structure/table/wood, /obj/item/antag_spawner/nuke_ops/borg_tele/medical{ @@ -18833,6 +19716,14 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"NK" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "NL" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -19060,6 +19951,20 @@ /obj/item/encryptionkey/syndicate, /turf/open/floor/plasteel, /area/centcom/testchamber) +"Oh" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = 150 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base/jail) "Oi" = ( /obj/machinery/portable_atmospherics/canister/miasma, /turf/open/floor/bluespace, @@ -19341,6 +20246,14 @@ /obj/mecha/combat/gygax, /turf/open/floor/engine, /area/centcom/testchamber) +"OJ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stack/cable_coil, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) "OK" = ( /obj/machinery/door/airlock/external{ name = "Emergency Recovery Airlock" @@ -19416,6 +20329,16 @@ "OQ" = ( /turf/open/space/bluespace_locker_mirage, /area/bluespace_locker) +"OS" = ( +/obj/structure/closet/crate/bin, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "OT" = ( /obj/structure/chair, /obj/effect/turf_decal/tile/green{ @@ -19486,6 +20409,15 @@ /obj/machinery/washing_machine, /turf/open/floor/plasteel/white, /area/centcom/holding) +"Pc" = ( +/obj/machinery/vending/coffee, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Pd" = ( /obj/structure/table, /obj/item/assembly/flash/handheld, @@ -19577,16 +20509,15 @@ /turf/open/floor/carpet/black, /area/centcom/holding) "Pp" = ( -/obj/structure/railing{ - dir = 1 +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 }, -/obj/structure/chair{ +/obj/effect/turf_decal/stripes/white/corner{ dir = 1 }, -/turf/open/floor/holofloor{ - icon_state = "darkfull" - }, -/area/holodeck/rec_center/gym) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) "Pq" = ( /turf/open/floor/plasteel/bluespace, /area/centcom/testchamber) @@ -19695,6 +20626,20 @@ /obj/item/reagent_containers/pill/adminordrazine, /turf/open/floor/plasteel, /area/centcom/testchamber) +"PF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "PH" = ( /obj/structure/chair{ pixel_y = -2 @@ -19832,6 +20777,18 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"PZ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset/anchored, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Qa" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -19976,31 +20933,47 @@ /turf/open/floor/plasteel, /area/centcom/testchamber) "Qp" = ( -/obj/structure/railing{ +/obj/effect/turf_decal/stripes/white/line{ dir = 1 }, -/turf/open/floor/holofloor{ - icon_state = "darkfull" - }, -/area/holodeck/rec_center/gym) +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) "Qq" = ( /obj/structure/lattice/catwalk/swarmer_catwalk, /obj/effect/decal/cleanable/blood/gibs/old, /turf/open/space/basic, /area/centcom/testchamber) +"Qr" = ( +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = 150 + }, +/obj/structure/bed, +/obj/item/bedsheet/black, +/turf/open/floor/carpet/black, +/area/yogs/infiltrator_base) "Qs" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/stripes/white/corner{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/stripes/white/corner{ dir = 4 }, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) "Qt" = ( /obj/structure/sign/warning/biohazard, /turf/closed/indestructible/riveted, /area/centcom/testchamber) +"Qu" = ( +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Qv" = ( /obj/structure/window{ dir = 1 @@ -20317,6 +21290,13 @@ /obj/item/storage/secure/briefcase, /turf/open/floor/plasteel/dark, /area/centcom/ferry) +"QY" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "QZ" = ( /obj/effect/decal/cleanable/crayon{ icon_state = "5" @@ -20359,13 +21339,16 @@ /turf/open/floor/plasteel/bluespace, /area/centcom/testchamber) "Rc" = ( -/obj/structure/railing{ - dir = 4 +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 }, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/machinery/light/small{ + dir = 4 }, -/area/holodeck/rec_center/gym) +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/syndicate/personal, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) "Rd" = ( /obj/machinery/light, /obj/effect/turf_decal/tile/green{ @@ -20435,6 +21418,21 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"Rk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/effect/landmark/start/infiltrator_objective, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"Rl" = ( +/turf/open/floor/carpet/black, +/area/yogs/infiltrator_base) "Rm" = ( /obj/structure/chair/wood/wings{ dir = 3 @@ -20484,6 +21482,20 @@ }, /turf/open/floor/holofloor, /area/holodeck/rec_center/firingrange) +"Rr" = ( +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/item/storage/crayons{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/crayons, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) "Rs" = ( /obj/item/clothing/neck/stripedredscarf{ pixel_x = -3; @@ -20799,6 +21811,29 @@ /obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plasteel, /area/centcom/testchamber) +"RU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/button/flasher{ + id = "syndicateinfiltrator_flash1"; + pixel_x = -24; + pixel_y = -6 + }, +/obj/machinery/button/flasher{ + id = "syndicateinfiltrator_flash2"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "RV" = ( /turf/open/floor/holofloor{ icon_state = "darkfull" @@ -21032,11 +22067,21 @@ }, /turf/open/floor/holofloor, /area/holodeck/rec_center/basketball) +"Sy" = ( +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) "Sz" = ( /obj/effect/holodeck_effect/mobspawner/pet, /obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/holofloor/grass, /area/holodeck/rec_center/pet_lounge) +"SA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "SB" = ( /obj/structure/curtain, /obj/structure/window/reinforced/tinted{ @@ -21090,6 +22135,10 @@ /obj/structure/closet/secure_closet/personal, /turf/open/floor/plasteel/dark, /area/centcom/supplypod) +"SI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) "SJ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -21109,6 +22158,29 @@ /obj/machinery/portable_atmospherics/canister/nitryl, /turf/open/floor/bluespace, /area/centcom/testchamber) +"SM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + icon_door = "black"; + name = "wardrobe" + }, +/obj/item/clothing/gloves/combat{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/shoes/combat/coldres{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/shoes/combat/coldres, +/obj/item/clothing/under/syndicate/combat{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/under/syndicate/combat, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) "SN" = ( /obj/structure/mopbucket, /obj/item/mop, @@ -21217,6 +22289,15 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"SX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/vending/cigarette/syndicate, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "SY" = ( /obj/machinery/atmospherics/components/binary/valve{ dir = 4; @@ -21272,15 +22353,17 @@ /turf/open/floor/plasteel/bluespace, /area/centcom/testchamber) "Te" = ( -/obj/structure/railing{ - dir = 1 +/obj/structure/curtain, +/obj/machinery/shower{ + pixel_y = 14 }, -/obj/structure/table/wood/bar, -/obj/item/bikehorn/airhorn, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/machinery/door/window{ + name = "Shower Door" }, -/area/holodeck/rec_center/gym) +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) "Tf" = ( /turf/closed/indestructible/abductor{ icon_state = "alien4"; @@ -21303,6 +22386,25 @@ /obj/item/gun/ballistic/automatic/tommygun, /turf/open/floor/plasteel, /area/centcom/testchamber) +"Th" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitories" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"Ti" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Tj" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/drinks/bottle/whiskey{ @@ -21793,6 +22895,13 @@ }, /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) +"Uj" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/yogs/infiltrator_base) "Uk" = ( /obj/structure/flora/tree/pine, /turf/open/floor/holofloor/snow, @@ -21831,6 +22940,10 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, /area/tdome/tdomeobserve) +"Uo" = ( +/obj/structure/flora/tree/pine, +/turf/closed/indestructible/rock/snow, +/area/yogs/infiltrator_base/outside) "Up" = ( /turf/closed/indestructible/abductor{ icon_state = "alien14"; @@ -21838,11 +22951,18 @@ }, /area/bluespace_locker) "Uq" = ( -/obj/effect/turf_decal/tile/red, -/turf/open/floor/holofloor{ - icon_state = "white" +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/toilet{ + pixel_y = 18 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + dir = 2 }, -/area/holodeck/rec_center/gym) +/area/yogs/infiltrator_base) "Ur" = ( /obj/machinery/computer/arcade/orion_trail, /turf/open/floor/mineral/titanium/blue, @@ -21898,6 +23018,15 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/supplypod) +"Uy" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/computer/camera_advanced/syndie{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base/jail) "Uz" = ( /obj/structure/window/reinforced{ dir = 8 @@ -22021,6 +23150,20 @@ }, /turf/open/floor/wood, /area/centcom/holding) +"UK" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) "UL" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -22083,6 +23226,37 @@ }, /turf/open/floor/holofloor/plating, /area/holodeck/rec_center/spacechess) +"UR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = 28 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -4; + pixel_y = -8 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 9; + pixel_y = -8 + }, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) "US" = ( /obj/structure/table/wood/poker, /turf/open/floor/holofloor{ @@ -22107,17 +23281,16 @@ /turf/open/floor/wood, /area/centcom/holding) "UW" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/light/small{ dir = 8 }, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "UX" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -22155,6 +23328,21 @@ "Va" = ( /turf/open/floor/plasteel/dark, /area/bluespace_locker) +"Vb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Vd" = ( /obj/item/cardboard_cutout/chess/white/pawn, /turf/open/floor/holofloor{ @@ -22211,12 +23399,18 @@ /turf/open/floor/plasteel/bluespace, /area/centcom/testchamber) "Vj" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/chair/stool, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = list(150) }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/holofloor, -/area/holodeck/rec_center/gym) +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Vk" = ( /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ @@ -22502,6 +23696,17 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/plasteel, /area/centcom/testchamber) +"VR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) "VS" = ( /obj/item/stack/sheet/mineral/coal{ pixel_x = -8; @@ -22557,6 +23762,10 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/centcom/supplypod) +"VZ" = ( +/obj/structure/flora/grass/brown, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "Wa" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -22629,6 +23838,16 @@ /obj/item/storage/pill_bottle/dice, /turf/open/floor/carpet/green, /area/centcom/ferry) +"Wg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Wh" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -22767,6 +23986,25 @@ }, /turf/open/floor/plasteel, /area/centcom/supplypod/loading/four) +"Wu" = ( +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"Wv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/flasher{ + id = "syndicateinfiltrator_flash1"; + pixel_y = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) "Ww" = ( /obj/machinery/chem_master, /obj/effect/turf_decal/tile/yellow{ @@ -22789,6 +24027,14 @@ opacity = 0 }, /area/bluespace_locker) +"Wz" = ( +/obj/structure/flora/grass/both, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "WA" = ( /obj/machinery/computer/arcade/battle, /turf/open/floor/mineral/titanium/blue, @@ -22828,20 +24074,20 @@ }, /area/holodeck/rec_center/medical) "WE" = ( -/obj/structure/rack, -/obj/item/clothing/mask/luchador{ - pixel_x = -2; - pixel_y = 2 +/obj/structure/table/wood, +/obj/machinery/microwave{ + pixel_y = 10 }, -/obj/item/clothing/mask/luchador/rudos, -/obj/item/clothing/mask/luchador/tecnicos{ - pixel_x = 2; - pixel_y = -2 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 }, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 }, -/area/holodeck/rec_center/gym) +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "WF" = ( /obj/machinery/firealarm{ dir = 8; @@ -22852,6 +24098,12 @@ }, /turf/open/floor/carpet/green, /area/centcom/ferry) +"WG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet/black, +/area/yogs/infiltrator_base) "WH" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -23019,6 +24271,24 @@ }, /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) +"WX" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/yogs/infiltrator_base) +"WY" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/yogs/infiltrator_base) "WZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -23085,6 +24355,15 @@ "Xh" = ( /turf/open/floor/plasteel, /area/centcom/supplypod/loading/four) +"Xi" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Xj" = ( /obj/machinery/door/airlock/external{ name = "Emergency Recovery Airlock" @@ -23138,6 +24417,10 @@ icon_state = "whiteboard" }, /area/holodeck/rec_center/spacechess) +"Xn" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "Xo" = ( /obj/machinery/vending/dinnerware, /turf/open/floor/plasteel/cafeteria, @@ -23303,6 +24586,12 @@ /obj/machinery/portable_atmospherics/canister/nitryl, /turf/open/floor/bluespace, /area/centcom/testchamber) +"XF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) "XG" = ( /obj/structure/sign/poster/official/random{ pixel_x = -32 @@ -23352,6 +24641,12 @@ /obj/item/teleportation_scroll, /turf/open/floor/plasteel/bluespace, /area/centcom/testchamber) +"XK" = ( +/obj/structure/flora/tree/pine{ + max_integrity = 100000 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) "XL" = ( /obj/machinery/door/airlock/wood, /turf/open/floor/wood, @@ -23534,6 +24829,13 @@ opacity = 0 }, /area/bluespace_locker) +"Ye" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/yogs/infiltrator_base) "Yf" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/chawanmushi, @@ -23554,6 +24856,9 @@ }, /turf/open/floor/wood, /area/centcom/holding) +"Yi" = ( +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base/jail) "Yj" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -30 @@ -23581,10 +24886,21 @@ /turf/open/floor/plasteel, /area/centcom/testchamber) "Yl" = ( -/turf/open/floor/holofloor{ - icon_state = "white" +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/rebels_unite{ + pixel_y = 32 + }, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 }, -/area/holodeck/rec_center/gym) +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Ym" = ( /obj/machinery/computer/arcade/orion_trail, /turf/open/floor/wood, @@ -23598,6 +24914,13 @@ }, /turf/open/floor/wood, /area/centcom/holding) +"Yp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Yq" = ( /obj/structure/chair/wood/wings{ dir = 8 @@ -23747,6 +25070,16 @@ /obj/item/station_charter/admin, /turf/open/floor/plasteel/bluespace, /area/centcom/testchamber) +"YF" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/door/airlock/centcom{ + name = "Equipment Room"; + opacity = 1; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) "YG" = ( /obj/structure/table/wood, /obj/item/gun/magic/rune/bomb_rune, @@ -23765,6 +25098,10 @@ icon_state = "white" }, /area/holodeck/rec_center/medical) +"YI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/yogs/infiltrator_base) "YJ" = ( /obj/item/reagent_containers/food/condiment/enzyme, /obj/item/reagent_containers/food/drinks/shaker, @@ -23815,11 +25152,12 @@ }, /area/holodeck/rec_center/lounge) "YP" = ( -/obj/structure/punching_bag, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 }, -/area/holodeck/rec_center/gym) +/obj/structure/closet/syndicate/personal, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) "YQ" = ( /obj/structure/table, /obj/item/reagent_containers/glass/beaker, @@ -23971,24 +25309,11 @@ /turf/open/floor/plasteel, /area/centcom/testchamber) "Ze" = ( -/obj/item/clothing/gloves/boxing{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/clothing/gloves/boxing/blue{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/clothing/gloves/boxing/green, -/obj/item/clothing/gloves/boxing/yellow{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/structure/rack, -/turf/open/floor/holofloor{ - icon_state = "darkfull" +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 }, -/area/holodeck/rec_center/gym) +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) "Zf" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -24127,6 +25452,26 @@ }, /turf/open/floor/wood, /area/centcom/holding) +"Zt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"Zu" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) "Zv" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -24198,6 +25543,17 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/mineral/plastitanium/red, /area/centcom/evac) +"ZC" = ( +/obj/structure/rack, +/obj/item/flashlight{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/flashlight, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, +/area/yogs/infiltrator_base) "ZD" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -34281,20 +35637,20 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh mB hh hh @@ -34538,53 +35894,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -34795,53 +36151,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -35052,53 +36408,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +bW hl hl hl @@ -35309,53 +36665,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +bU +dt +dt +dt +dt +bU +bU +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -35566,53 +36922,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -35823,53 +37179,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -36080,53 +37436,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -36337,53 +37693,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +bU +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -36594,53 +37950,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -36851,53 +38207,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -37108,53 +38464,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +bU +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -37365,53 +38721,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +bW hl hl hl @@ -37622,53 +38978,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -37879,53 +39235,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +bU +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -38136,53 +39492,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +bU +bU +dt +dt +dt +dt +eG +dM +dM +dM +dM +dM +dM +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +cs +dt +dt +dt +VZ +dt +dt +dt +dt +bW hl hl hl @@ -38393,53 +39749,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +bU +dt +dt +dt +dt +dt +dM +pf +da +dM +Wv +pf +dM +aN +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +bW hl hl hl @@ -38650,53 +40006,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dM +dR +SA +dM +Lj +Le +dM +aN +dt +dt +dt +dt +dt +dt +dt +ty +dt +dt +dt +bU +dt +dt +dt +bU +dt +dt +bW hl hl hl @@ -38907,53 +40263,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dM +cf +sC +dM +MV +cf +dM +aN +bU +dt +dt +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +dt +aR +dt +dt +dt +bW hl hl hl @@ -39164,53 +40520,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +bU +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dy +Yi +MS +RU +nk +oD +dM +aN +dt +dt +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +aN +dt +dt +dt +dt +dt +bW hl hl hl @@ -39421,53 +40777,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dv +al +dM +Oh +AF +el +Wu +pM +dM +aN +dt +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +aN +dt +dt +dt +dt +bW hl hl hl @@ -39678,53 +41034,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +al +FC +dM +Uy +pN +LJ +Lz +PF +dM +aN +dt +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +cs +dt +dt +dt +bW hl hl hl @@ -39935,53 +41291,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +al +al +rv +dM +dM +ru +dM +dM +MP +dM +aN +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +dt +Lw +dt +dt +bW hl hl hl @@ -40192,53 +41548,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +al +al +al +al +al +Pc +oZ +SX +dM +dM +dM +vy +Yp +ds +ds +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +dt +dt +dt +dt +bW hl hl hl @@ -40449,53 +41805,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +cs +aN +df +al +qM +yP +Mo +UW +Lf +du +Lf +dW +al +KR +KZ +et +fs +ds +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +aN +dt +aR +dt +bW hl hl hl @@ -40706,53 +42062,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +ds +ex +sc +zY +al +Vj +Bm +oI +Mt +Rk +YI +OJ +uq +QY +ds +ds +ds +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +dt +dt +dt +bW hl hl hl @@ -40963,53 +42319,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +bU +dt +dt +dt +dt +bU +dt +dt +aN +ds +eQ +tg +Kd +al +WE +tA +JW +oE +cd +YI +br +oV +Qu +Uj +Ye +WY +av +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +dt +dt +dt +bW hl hl hl @@ -41220,53 +42576,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +aN +al +al +xa +Lh +al +Yl +pd +oI +Mt +CT +YI +pa +uq +et +ds +ds +ds +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +dt +dt +dt +bW hl hl hl @@ -41316,7 +42672,7 @@ kt hl hl hl -hl +mz hl hl hl @@ -41477,53 +42833,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +aR +dt +dt +dt +al +al +al +al +al +al +OS +om +pA +al +fd +bp +et +ft +ds +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +aN +dt +dt +dt +bW hl hl hl @@ -41571,7 +42927,7 @@ ku ku kt kt -hl +mz hl hl hl @@ -41602,77 +42958,63 @@ aa aa aa aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -lI -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -OQ -lI -aa -"} -(68,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di +lI +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +OQ +lI +aa +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -41749,38 +43091,52 @@ aa aa aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +al +al +Np +YP +al +al +al +Vb +al +al +UR +on +ds +ds +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +dt +dt +dt +dt +bW hl hl hl @@ -41991,53 +43347,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +al +LC +Pp +Ze +Lv +al +dw +et +ZC +al +al +pL +al +aN +aN +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +aN +bU +dt +dt +dt +bW hl hl hl @@ -42248,53 +43604,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +al +LH +Qp +SI +oG +YF +WX +tB +Zt +bq +yg +Ti +ds +aN +dt +dt +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +dt +dt +dt +dt +dt +bW hl hl hl @@ -42505,53 +43861,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +al +GB +Qs +Sy +ub +al +do +sh +FA +al +ff +PZ +al +aN +aN +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +dt +Lw +dt +dt +dt +dt +dt +bW hl hl hl @@ -42762,53 +44118,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +al +al +Rc +fl +al +al +al +Th +al +al +al +al +al +al +al +aN +aN +aN +dt +dt +dt +dt +dt +dt +dt +aN +aN +dt +dt +dt +VZ +dt +bW hl hl hl @@ -43019,53 +44375,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +al +al +al +al +up +Rr +eK +dr +Lx +Wg +Xi +xF +bf +ds +aN +dt +aN +aN +dt +dt +dt +dt +dt +aN +aN +VZ +dt +dt +bU +dt +dt +bW hl hl hl @@ -43276,53 +44632,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +al +Te +XF +VR +yg +pb +Zu +LB +NK +LB +oH +dP +SM +ds +aN +dt +dt +aN +dt +dt +dt +dt +dt +aN +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -43533,53 +44889,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +al +Uq +UK +al +al +BX +al +al +ba +al +al +qF +al +al +aN +dt +dt +aN +dt +dt +dt +dt +dt +Wz +aR +dt +dt +XK +VZ +dt +dt +bW hl hl hl @@ -43790,53 +45146,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +al +al +al +al +NC +WG +al +NC +WG +al +NC +WG +al +aN +aN +VZ +dt +aN +dt +dt +dt +dt +dt +aN +dt +aR +dt +aR +dt +dt +bU +bW hl hl hl @@ -44047,53 +45403,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +al +Qr +Rl +al +Qr +Rl +al +Qr +Rl +al +aN +dt +dt +dt +aN +dt +dt +dt +dt +dt +aN +dt +dt +bU +dt +dt +dt +dt +bW hl hl hl @@ -44304,53 +45660,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +al +al +ds +al +al +ds +al +al +ds +al +aN +dt +dt +dt +aN +dt +dt +dt +dt +dt +aN +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -44561,53 +45917,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +aR +dt +bU +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +dt +cs +dt +aN +aN +dt +dt +dt +aN +aN +dt +dt +aR +dt +dt +dt +dt +bW hl hl hl @@ -44818,53 +46174,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +VZ +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +aN +aN +aN +aN +aN +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -45075,53 +46431,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +VZ +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +bW hl hl hl @@ -45332,53 +46688,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +aR +dt +dt +dt +VZ +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +cs +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -45589,53 +46945,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +aR +dt +dt +dt +bU +dt +dt +dt +bU +aR +dt +dt +dt +dt +bU +dt +dt +dt +dt +Uo hl hl hl @@ -45846,53 +47202,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +bU +dt +dt +dt +bU +bU +dt +dt +bU +dt +dt +dt +dt +dt +Uo hl hl hl @@ -46103,53 +47459,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +Xn +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -46360,53 +47716,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -46617,53 +47973,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -46874,53 +48230,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +bW hl hl hl @@ -47131,53 +48487,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -47388,53 +48744,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -47645,53 +49001,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -47902,53 +49258,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bU +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -48159,53 +49515,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -48416,53 +49772,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -48673,53 +50029,53 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa hh -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl -hl +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +dt +bW hl hl hl @@ -48846,22 +50202,8 @@ aa aa aa aa -"} -(96,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +"} +(96,1,1) = {" aa aa aa @@ -49013,6 +50355,20 @@ hh hh hh hh +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh +hh aa aa aa @@ -55380,7 +56736,7 @@ aa aa aa aa -ad +aa aa aa aa @@ -66581,18 +67937,18 @@ aa aa "} (165,1,1) = {" -ab -ag -ag -ag -ag -ag -ag -ag -ag -ag -ag -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -66838,18 +68194,18 @@ aa aa "} (166,1,1) = {" -bj -UW -LC -sc -LH -LH -YP -LH -eQ -eQ -eQ -bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -67095,18 +68451,18 @@ aa aa "} (167,1,1) = {" -bj -Qs -al -tg -qM -dQ -Rc -Rc -Rc -Rc -xa -bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -67352,18 +68708,18 @@ aa aa "} (168,1,1) = {" -bj -Qs -Kd -tg -cs -Yl -yP -Yl -Yl -Yl -Qp -bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -67609,18 +68965,18 @@ aa aa "} (169,1,1) = {" -bj -Qs -al -tg -cs -df -LJ -Yl -Yl -Yl -Pp -bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -67866,18 +69222,18 @@ aa aa "} (170,1,1) = {" -bj -Qs -Kd -tg -cs -Yl -Yl -Yl -Yl -Yl -Te -bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -68123,18 +69479,18 @@ aa aa "} (171,1,1) = {" -bj -Qs -ds -tg -cs -Yl -Yl -Yl -Uq -Mo -Pp -bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -68380,18 +69736,18 @@ aa aa "} (172,1,1) = {" -bj -Qs -Kd -tg -cs -Yl -Yl -Yl -zY -Yl -Qp -bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -68637,18 +69993,18 @@ aa aa "} (173,1,1) = {" -bj -Qs -ds -tg -aN -Lh -Lh -Lh -Lh -ex -bU -bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -68894,18 +70250,18 @@ aa aa "} (174,1,1) = {" -bj -Np -Vj -bW -LH -LH -YP -LH -Ze -aR -WE -bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa diff --git a/_maps/shuttles/infiltrator_cutter.dmm b/_maps/shuttles/infiltrator_cutter.dmm new file mode 100644 index 000000000000..9b91616daf31 --- /dev/null +++ b/_maps/shuttles/infiltrator_cutter.dmm @@ -0,0 +1,1417 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"ab" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 2 + }, +/obj/machinery/door/airlock/external{ + id_tag = "syndicatecutter_bolt_port"; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + callTime = 150; + dir = 2; + dwidth = 14; + height = 13; + id = "syndicatecutter"; + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); + name = "Syndicate Cutter"; + port_direction = 8; + preferred_direction = 4; + width = 22 + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"ac" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"ad" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/yogs/stealthcruiser) +"ae" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/warning/vacuum{ + pixel_x = -32 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"af" = ( +/obj/structure/grille, +/obj/structure/window/plastitanium, +/obj/machinery/door/poddoor{ + id = "syndicatecutter_bridge" + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"ag" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"ah" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/suit_storage_unit/infiltrator, +/turf/open/floor/pod/light, +/area/shuttle/yogs/stealthcruiser) +"ai" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + id_tag = "syndicatecutter_bolt_port"; + req_access_txt = "150" + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"aj" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"ak" = ( +/obj/structure/shuttle/engine/propulsion/burst/left{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/yogs/stealthcruiser) +"al" = ( +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/yogs/stealthcruiser) +"am" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"an" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"ap" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/corner, +/area/shuttle/yogs/stealthcruiser) +"aq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark/side, +/area/shuttle/yogs/stealthcruiser) +"ar" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear/white, +/turf/open/floor/plasteel/dark/side, +/area/shuttle/yogs/stealthcruiser) +"as" = ( +/obj/machinery/button/door{ + id = "syndicatecutter_bolt_port"; + name = "External Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -4; + pixel_y = 25; + req_access_txt = "150"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side, +/area/shuttle/yogs/stealthcruiser) +"at" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/side, +/area/shuttle/yogs/stealthcruiser) +"au" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/yogs/stealthcruiser) +"av" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/plasteel/dark/side{ + dir = 5 + }, +/area/shuttle/yogs/stealthcruiser) +"aw" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/syndicate/personal, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"ay" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/yogs/stealthcruiser) +"az" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"aA" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"aB" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/yogs/stealthcruiser) +"aC" = ( +/obj/structure/table, +/obj/item/circular_saw, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/cautery{ + pixel_x = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/shuttle/yogs/stealthcruiser) +"aD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"aE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"aF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"aH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/shuttle/yogs/stealthcruiser) +"aI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"aJ" = ( +/obj/structure/table/reinforced, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/m10mm, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"aK" = ( +/obj/structure/shuttle/engine/propulsion/burst/right{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/yogs/stealthcruiser) +"aL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/space_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"aM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"aN" = ( +/obj/structure/table, +/obj/item/retractor, +/obj/item/hemostat, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/yogs/stealthcruiser) +"aO" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/yogs/stealthcruiser) +"aP" = ( +/obj/structure/table, +/obj/item/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/fire, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/shuttle/yogs/stealthcruiser) +"aQ" = ( +/obj/machinery/sleeper{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -24; + req_access = null; + req_access_txt = "150" + }, +/turf/open/floor/plasteel, +/area/shuttle/yogs/stealthcruiser) +"aR" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/freezer/blood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/shuttle/yogs/stealthcruiser) +"aS" = ( +/obj/structure/chair{ + dir = 4; + name = "tactical chair" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 6 + }, +/area/shuttle/yogs/stealthcruiser) +"aT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"aU" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/toolbox/syndicate, +/obj/item/crowbar/red, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"aV" = ( +/obj/machinery/computer/crew/syndie{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bb" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/yogs/stealthcruiser) +"bc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4; + name = "tactical chair" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"be" = ( +/obj/structure/rack, +/obj/item/aicard, +/obj/item/multitool, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bg" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bj" = ( +/obj/machinery/computer/shuttle/syndicate/cutter{ + dir = 8; + icon_state = "computer" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bm" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/handcuffs, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"bn" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = 150 + }, +/obj/machinery/recharger, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"bo" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"bp" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/southleft{ + name = "Weapon Storage"; + req_access_txt = "150" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/item/grenade/plastic/c4{ + pixel_x = -3 + }, +/obj/item/grenade/plastic/c4{ + pixel_x = 5 + }, +/obj/item/grenade/plastic/c4{ + pixel_x = 13 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"bq" = ( +/obj/structure/table, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Weapon Storage"; + req_access_txt = "150" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/item/grenade/flashbang{ + pixel_x = -11 + }, +/obj/item/grenade/flashbang{ + pixel_x = -3 + }, +/obj/item/grenade/flashbang{ + pixel_x = 5 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"br" = ( +/obj/structure/chair{ + dir = 4; + name = "tactical chair" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -24; + req_access = list(150) + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bs" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/crate/secure/weapon, +/obj/effect/decal/cleanable/dirt, +/obj/item/melee/baton/loaded{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/melee/baton/loaded, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bF" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"bI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/caution/stand_clear/white{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bL" = ( +/obj/machinery/button/door{ + id = "syndicatecutter_bolt_starboard"; + name = "External Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -4; + pixel_y = -25; + req_access_txt = "150"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bN" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/yogs/stealthcruiser) +"bO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/med_data/syndie{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bP" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/secure_data/syndie{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"bQ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/cell/high, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"bR" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 2 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/external{ + id_tag = "syndicatecutter_bolt_starboard"; + req_access_txt = "150" + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"bS" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"bT" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/yogs/stealthcruiser) +"bU" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/external{ + id_tag = "syndicatecutter_bolt_starboard"; + req_access_txt = "150" + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"bW" = ( +/turf/template_noop, +/area/template_noop) +"cP" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/item/wrench, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"db" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/item/weldingtool, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"jX" = ( +/obj/machinery/computer/camera_advanced/syndie{ + dir = 2 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"kG" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/cutter{ + x_offset = 3; + y_offset = -6 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"mi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"pF" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Syndicate Cutter APC"; + pixel_x = -25; + req_access = 150 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24; + req_access = 150 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"rY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -24; + req_access = list(150) + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"vM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + name = "Cockpit"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"xE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"zl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/turretid{ + icon_state = "control_kill"; + lethal = 1; + locked = 1; + pixel_x = 30; + pixel_y = -33; + req_access = 150 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"Dr" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"Ey" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/storage/toolbox/syndicate, +/obj/item/flashlight{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 20 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"FN" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/item/clipboard{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/folder/red{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"Ir" = ( +/obj/structure/table, +/obj/item/storage/box/fancy/donut_box, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/fancy/donut_box, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"Lb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"Pz" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"Re" = ( +/obj/machinery/button/door{ + id = "syndicatecutter_bridge"; + name = "Bridge Blast Door Control"; + pixel_x = 25; + pixel_y = 8; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) +"Ys" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/shuttle/yogs/stealthcruiser) +"YI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/yogs/stealthcruiser) + +(1,1,1) = {" +bW +bW +bW +ak +ay +aK +bW +ak +ay +aK +bW +bW +bW +"} +(2,1,1) = {" +bW +bW +aa +al +al +al +ad +al +al +al +aa +bW +bW +"} +(3,1,1) = {" +bW +ac +ad +am +az +aL +ad +Dr +Ey +cP +ad +bT +bW +"} +(4,1,1) = {" +bW +ad +ag +an +aA +aM +pF +Ys +aA +bH +bQ +ad +bW +"} +(5,1,1) = {" +bW +ad +ad +Lb +aB +ad +ad +ad +aB +Lb +ad +ad +bW +"} +(6,1,1) = {" +bW +ad +ah +ap +aC +aN +bb +bm +bA +bI +ah +ad +bW +"} +(7,1,1) = {" +aa +ad +ad +aq +aD +aO +ad +bn +aD +bJ +ad +ad +aa +"} +(8,1,1) = {" +ab +ae +ai +ar +aE +aP +ad +bo +bh +bK +bR +ae +bU +"} +(9,1,1) = {" +aa +ad +ad +as +aD +aQ +ad +bp +aD +bL +ad +ad +aa +"} +(10,1,1) = {" +bW +af +ah +at +aF +aR +bb +bq +bB +bM +ah +af +bW +"} +(11,1,1) = {" +bW +aa +ad +au +xE +ad +ad +ad +mi +bN +ad +aa +bW +"} +(12,1,1) = {" +bW +bW +ad +av +aH +aS +bc +br +bD +bO +ad +bW +bW +"} +(13,1,1) = {" +bW +bW +ad +aw +aI +aT +bd +bs +bE +bP +ad +bW +bW +"} +(14,1,1) = {" +bW +bW +aj +bb +aJ +aU +be +bt +bF +bb +bS +bW +bW +"} +(15,1,1) = {" +bW +bW +bW +aa +ad +ad +ad +vM +ad +aa +bW +bW +bW +"} +(16,1,1) = {" +bW +bW +bW +af +Ir +aV +rY +bv +FN +af +bW +bW +bW +"} +(17,1,1) = {" +bW +bW +bW +af +jX +bg +zl +Re +db +af +bW +bW +bW +"} +(18,1,1) = {" +bW +bW +bW +ad +ad +kG +YI +Pz +ad +ad +bW +bW +bW +"} +(19,1,1) = {" +bW +bW +bW +bW +ad +af +bj +af +ad +bW +bW +bW +bW +"} +(20,1,1) = {" +bW +bW +bW +bW +bW +af +af +af +bW +bW +bW +bW +bW +"} +(21,1,1) = {" +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +"} +(22,1,1) = {" +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +"} diff --git a/_maps/templates/infiltrator_base.dmm b/_maps/templates/infiltrator_base.dmm new file mode 100644 index 000000000000..168ffe835014 --- /dev/null +++ b/_maps/templates/infiltrator_base.dmm @@ -0,0 +1,3106 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base) +"ac" = ( +/turf/closed/indestructible/rock/snow, +/area/yogs/infiltrator_base/outside) +"ad" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"ae" = ( +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"af" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"ag" = ( +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"ah" = ( +/obj/item/book/manual/nuclear{ + desc = "This manual details exactly how to not Flop(TM) the mission for the hundreth time in a row!"; + name = "How to Acquire Skill: Nuclear Operative Edition" + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"ai" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"aj" = ( +/turf/closed/indestructible/fakeglass, +/area/yogs/infiltrator_base) +"ak" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/rock/snow, +/area/yogs/infiltrator_base/outside) +"al" = ( +/obj/structure/rack{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "minibar_left"; + name = "skeletal minibar" + }, +/obj/item/reagent_containers/food/drinks/bottle/grappa{ + pixel_x = 10; + pixel_y = 18 + }, +/obj/item/reagent_containers/food/drinks/bottle/patron{ + pixel_x = -5; + pixel_y = 18 + }, +/obj/item/reagent_containers/food/drinks/bottle/vodka{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/drinks/bottle/cognac{ + pixel_x = -10; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + layer = 3.2; + pixel_x = 15; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"am" = ( +/obj/structure/rack{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "minibar_right"; + name = "skeletal minibar" + }, +/obj/item/reagent_containers/food/drinks/bottle/goldschlager{ + pixel_x = -8; + pixel_y = 18 + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 7; + pixel_y = 18 + }, +/obj/item/reagent_containers/food/drinks/bottle/kahlua{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/drinks/bottle/absinthe{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"an" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -7; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 12 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -7; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"ao" = ( +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"ap" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"aq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/beerkeg, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"ar" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"as" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"at" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"au" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/storage/box/donkpockets{ + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 2 + }, +/obj/item/reagent_containers/food/snacks/chocolatebar{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"av" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/machinery/airalarm{ + pixel_y = 23; + req_access = 150 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) +"aw" = ( +/obj/machinery/porta_turret/syndicate, +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'CAUTION: AUTOMATED TURRET'."; + name = "CAUTION: AUTOMATED TURRET"; + pixel_y = 32 + }, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) +"ax" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/structure/table, +/obj/item/suppressor{ + pixel_y = 8 + }, +/obj/item/suppressor, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) +"ay" = ( +/obj/machinery/door/airlock{ + name = "Bar Storage" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"az" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/syndicate/personal, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) +"aA" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) +"aB" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) +"aC" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) +"aD" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/syndicate/personal, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) +"aE" = ( +/obj/structure/curtain, +/obj/machinery/shower{ + pixel_y = 14 + }, +/obj/machinery/door/window{ + name = "Shower Door" + }, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) +"aF" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/toilet{ + pixel_y = 18 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) +"aG" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"aH" = ( +/obj/structure/chair/stool, +/obj/machinery/airalarm{ + pixel_y = 23; + req_access = list(150) + }, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"aI" = ( +/obj/structure/table/wood, +/obj/machinery/microwave{ + pixel_y = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"aJ" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/rebels_unite{ + pixel_y = 32 + }, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"aK" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/closet/syndicate/personal, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) +"aL" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) +"aM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) +"aN" = ( +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) +"aO" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/structure/closet/syndicate/personal, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) +"aP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) +"aQ" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) +"aR" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base) +"aS" = ( +/obj/machinery/vending/coffee, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"aT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"aU" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"aV" = ( +/obj/structure/table/wood, +/obj/item/pizzabox/vegetable, +/obj/item/paicard, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"aW" = ( +/obj/structure/chair/stool, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 26 + }, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"aX" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/gun/energy/e_gun/mini{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun/mini, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) +"aY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) +"aZ" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/gun/ballistic/automatic/pistol{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/ballistic/automatic/pistol, +/turf/open/floor/pod/light, +/area/yogs/infiltrator_base) +"ba" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) +"bb" = ( +/obj/structure/flora/grass/brown, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"bc" = ( +/obj/structure/sign/warning/securearea{ + desc = "You shouldn't be here, you know!"; + name = "\improper FOURTH WALL"; + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"bd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/indestructible/fakedoor{ + name = "Primary Hallway" + }, +/area/yogs/infiltrator_base) +"be" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bg" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bh" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/beer{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/toy/cards/deck/syndicate{ + icon_state = "deck_syndicate_full"; + pixel_x = -6; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bi" = ( +/obj/structure/closet/crate/bin, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bj" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/door/airlock/centcom{ + name = "Equipment Room"; + opacity = 1; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/pod/dark, +/area/yogs/infiltrator_base) +"bk" = ( +/obj/machinery/washing_machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) +"bl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bm" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/closet/secure_closet/personal, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/carpet/black, +/area/yogs/infiltrator_base) +"bn" = ( +/obj/machinery/airalarm{ + pixel_y = 23; + req_access = 150 + }, +/obj/structure/bed, +/obj/item/bedsheet/black, +/turf/open/floor/carpet/black, +/area/yogs/infiltrator_base) +"bo" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base/jail) +"bp" = ( +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base/jail) +"bq" = ( +/turf/closed/indestructible/fakedoor{ + name = "Primary Hallway" + }, +/area/yogs/infiltrator_base/jail) +"br" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/vending/cigarette/syndicate, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bs" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/start/infiltrator, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bv" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 9 + }, +/area/yogs/infiltrator_base) +"bw" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/yogs/infiltrator_base) +"bx" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24; + req_access = 150 + }, +/obj/machinery/turretid{ + icon_state = "control_kill"; + lethal = 1; + locked = 1; + pixel_y = 28; + req_access = 150 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 5 + }, +/area/yogs/infiltrator_base) +"by" = ( +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/item/storage/crayons{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/crayons, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/yogs/infiltrator_base) +"bz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Cabin 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet/black, +/area/yogs/infiltrator_base) +"bC" = ( +/turf/open/floor/carpet/black, +/area/yogs/infiltrator_base) +"bD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"bE" = ( +/obj/structure/bed, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = list(150); + req_access_txt = "0" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"bF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/yogs/infiltrator_base/jail) +"bG" = ( +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base/jail) +"bH" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 23; + req_access = 150 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base/jail) +"bI" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/computer/camera_advanced/syndie{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base/jail) +"bJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/glass, +/obj/effect/landmark/start/infiltrator_objective, +/obj/machinery/light/small, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/effect/landmark/start/infiltrator_objective, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bN" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bQ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitories" + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bU" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"bV" = ( +/obj/structure/sign/warning/securearea{ + desc = "You shouldn't be here, you know!"; + name = "\improper FOURTH WALL"; + pixel_x = 32 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"bW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/flasher{ + id = "syndicateinfiltrator_flash2"; + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"bX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"bY" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Cell 2"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"bZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"ca" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cc" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 8; + scan_range = 3 + }, +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'CAUTION: AUTOMATED TURRET'."; + name = "CAUTION: AUTOMATED TURRET"; + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base/jail) +"cd" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/yogs/infiltrator_base) +"ce" = ( +/obj/structure/rack, +/obj/item/flashlight{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/flashlight, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, +/area/yogs/infiltrator_base) +"cf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cg" = ( +/obj/structure/rack, +/obj/item/storage/box/lights/bulbs, +/turf/open/floor/plasteel/dark/side{ + dir = 6 + }, +/area/yogs/infiltrator_base) +"ch" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"ci" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/button/flasher{ + id = "syndicateinfiltrator_flash1"; + pixel_x = -24; + pixel_y = -6 + }, +/obj/machinery/button/flasher{ + id = "syndicateinfiltrator_flash2"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"ck" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel{ + dir = 4 + }, +/area/yogs/infiltrator_base/jail) +"cl" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/turretid{ + ailock = 1; + control_area = null; + desc = "A specially designed set of turret controls. Looks to be covered in protective casing to prevent AI interfacing."; + icon_state = "control_stun"; + name = "Security turret control"; + pixel_x = 26; + req_access = 150 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cm" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 23; + req_access = 150 + }, +/obj/structure/table, +/obj/item/storage/toolbox/syndicate, +/obj/item/flashlight, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) +"cn" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stack/cable_coil, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) +"co" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) +"cp" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/radio/headset/syndicate/alt{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/radio/headset/syndicate/alt{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/syndicate/alt, +/obj/item/multitool, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) +"cq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) +"cr" = ( +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A. Foyer"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cs" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -24; + req_access = list(150) + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"ct" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Cabin 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/flasher{ + id = "syndicateinfiltrator_flash1"; + pixel_y = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24; + req_access = list(150); + req_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cx" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Cell 1"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cz" = ( +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cA" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cB" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) +"cC" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cD" = ( +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = 28 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium, +/area/yogs/infiltrator_base) +"cH" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset{ + anchored = 1 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cJ" = ( +/obj/structure/bed, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/table, +/obj/item/restraints/handcuffs{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/restraints/handcuffs{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/assembly/flash/handheld, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cN" = ( +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A. Equipment"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base/jail) +"cO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cP" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cQ" = ( +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cR" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cT" = ( +/obj/machinery/door/airlock/external/glass{ + name = "E.V.A. Equipment"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cV" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset/anchored, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cW" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cY" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/shuttle/syndicate/recall{ + dir = 1; + possible_destinations = "syndicatecutter_home"; + shuttleId = "syndicatecutter" + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"cZ" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/yogs/infiltrator_base) +"da" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/suit_storage_unit/infiltrator, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"db" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"dc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"dd" = ( +/obj/machinery/door/airlock{ + name = "Cabin 3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/yogs/infiltrator_base) +"de" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/yogs/infiltrator_base) +"df" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + icon_door = "black"; + name = "wardrobe" + }, +/obj/item/clothing/gloves/combat{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/shoes/combat/coldres{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/shoes/combat/coldres, +/obj/item/clothing/under/syndicate/combat{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/under/syndicate/combat, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"dg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet{ + icon_door = "black"; + name = "wardrobe" + }, +/obj/item/clothing/gloves/combat{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/shoes/combat/coldres{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/shoes/combat/coldres, +/obj/item/clothing/under/syndicate/combat{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/under/syndicate/combat, +/turf/open/floor/plasteel/dark, +/area/yogs/infiltrator_base) +"dh" = ( +/obj/structure/sign/warning/securearea{ + desc = "You shouldn't be here, you know!"; + name = "\improper FOURTH WALL"; + pixel_x = -32 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"di" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/yogs/infiltrator_base) +"dj" = ( +/obj/docking_port/stationary{ + area_type = /area/yogs/infiltrator_base/outside; + dir = 2; + dwidth = 14; + height = 13; + id = "syndicatecutter_home"; + name = "Syndicate Home Outpost"; + roundstart_template = /datum/map_template/shuttle/infiltrator/cutter; + width = 22 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"dk" = ( +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"dl" = ( +/obj/structure/flora/grass/both, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"dm" = ( +/obj/structure/flora/tree/pine{ + max_integrity = 100000 + }, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"dn" = ( +/obj/structure/flora/grass/brown, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"do" = ( +/obj/structure/flora/tree/pine, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"dp" = ( +/obj/structure/flora/tree/pine{ + max_integrity = 100000 + }, +/turf/open/floor/plating/asteroid/snow/airless, +/area/yogs/infiltrator_base/outside) +"Lx" = ( +/obj/machinery/vending/cigarette/syndicate, +/turf/closed/indestructible/riveted, +/area/yogs/infiltrator_base) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bo +bp +bp +bp +bp +bp +bp +ac +ac +ac +ac +ac +ac +ac +ae +ae +ac +ag +ac +ac +ac +bb +ac +ac +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bp +bD +bW +bp +cv +bD +bp +ad +dh +af +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +af +ae +ac +ac +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bp +bE +bX +bp +cw +cJ +bp +ad +ae +ae +ae +ae +ae +ae +ae +dk +ae +ae +ae +af +ae +ae +ae +af +ac +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bp +bF +bY +bp +cx +bF +bp +ad +af +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +dp +ai +ac +ac +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bq +bG +bZ +cj +cy +cK +bp +ad +ae +ae +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +dm +ae +dp +ae +ac +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aR +ab +bp +bH +ca +ck +cz +cL +bp +ad +ae +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ae +ac +ac +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +bc +bp +bI +cb +cl +cA +cM +bp +ad +ae +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ag +ac +ac +aa +aa +"} +(8,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +ab +ab +bd +bp +bp +cc +bp +bp +cN +bp +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ae +dn +ac +aa +aa +"} +(9,1,1) = {" +ac +ad +ad +ad +ad +ad +ad +ae +ab +ab +ab +ab +ab +aS +be +br +bp +bp +bp +cB +cO +aj +aj +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ae +ae +ac +ac +aa +"} +(10,1,1) = {" +ac +ae +ae +ae +ae +ag +ad +Lx +ab +an +ar +ay +aG +aT +bf +aT +bJ +ab +cm +cC +bP +cY +aj +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ae +ai +ac +aa +"} +(11,1,1) = {" +ac +ae +ae +af +ae +ae +ad +aj +al +ao +as +ab +aH +aU +bg +bs +bK +cd +cn +cD +cP +aj +aj +aj +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ae +ac +ac +aa +"} +(12,1,1) = {" +ac +ae +ag +ae +ae +ae +ad +aj +am +ap +at +ab +aI +aV +bh +bt +bL +cd +co +cE +cQ +cZ +de +di +dj +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ae +ac +aa +aa +"} +(13,1,1) = {" +ac +ae +ae +ae +ae +af +ad +ab +ab +aq +au +ab +aJ +aW +bg +bs +bM +cd +cp +cD +cR +aj +aj +aj +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ae +ac +aa +aa +"} +(14,1,1) = {" +ac +ae +ae +ae +ai +ae +ae +ae +ab +ab +ab +ab +ab +ab +bi +bu +bN +ab +cq +cF +bP +da +aj +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ae +ac +ac +aa +"} +(15,1,1) = {" +ac +ae +ae +af +af +ae +ae +ae +ae +ab +ab +az +aK +ab +ab +ab +bO +ab +ab +cG +cS +aj +aj +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ae +ae +ae +ac +aa +"} +(16,1,1) = {" +ac +af +ae +ae +ae +ae +ae +ae +ae +ab +av +aA +aL +aX +ab +bv +bP +ce +ab +ab +cT +ab +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +af +ae +ac +ac +aa +"} +(17,1,1) = {" +ac +ae +ah +ae +ae +ae +ae +ae +ae +ab +aw +aB +aM +aY +bj +bw +bQ +cf +cr +bl +cU +aj +ad +ae +ae +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ae +ae +ae +ae +ac +ac +"} +(18,1,1) = {" +ac +af +ae +ae +af +ae +ae +ae +ae +ab +ax +aC +aN +aZ +ab +bx +bR +cg +ab +cH +cV +ab +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +dn +ae +ae +ae +ae +ae +ac +"} +(19,1,1) = {" +ac +ae +af +ae +ae +af +ae +ae +ae +ab +ab +aD +aO +ab +ab +ab +bS +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ad +do +ae +ae +ae +bb +ac +ac +"} +(20,1,1) = {" +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ab +ab +ab +ab +bk +by +bT +ch +cs +cI +cW +db +df +aj +ad +ae +ad +ad +ae +ae +ae +ae +ae +ad +dm +bb +ae +ae +af +ac +ac +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ab +aE +aP +ba +bl +bz +bU +ci +ct +ci +cX +dc +dg +aj +ad +ae +ae +ad +ae +ae +ae +ae +ae +ad +ae +dp +dp +ae +ae +ac +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ab +aF +aQ +ab +ab +bA +ab +ab +cu +ab +ab +dd +ab +ab +ad +ae +ae +ad +ae +ae +ae +ae +ae +dl +ai +af +ae +dp +bb +ac +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ab +ab +ab +ab +bm +bB +ab +bm +bB +ab +bm +bB +ab +ad +ad +bb +ae +ad +ae +ae +ae +ae +ae +ad +af +ai +ae +ai +ac +ac +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ae +ab +bn +bC +ab +bn +bC +ab +bn +bC +ab +ad +ae +ae +ae +ad +ae +ae +ae +ae +ae +ad +ae +ae +af +ac +ac +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ae +ab +ab +aj +ab +ab +aj +ab +ab +aj +ab +ad +ae +ae +ae +ad +ae +ae +ae +ae +ae +ad +ae +ae +ae +ac +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +af +ai +ae +af +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ag +ae +ad +ad +ae +ae +ae +ad +ad +ae +af +ai +ac +ac +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +af +ae +bb +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ac +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +bb +ae +ae +ae +ae +ae +ae +ae +af +ae +ae +ae +ae +ae +ae +ae +ae +af +ac +ac +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +af +ae +ae +ai +ae +ae +ae +bb +ae +af +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ag +ae +ae +ae +ac +ac +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ae +af +ae +ae +ae +ae +ae +ae +ae +ae +ai +ae +ae +ae +af +ae +ae +ae +af +ai +ae +ae +ae +ae +af +ac +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ae +ae +af +ae +bV +ae +ae +ae +ae +af +ae +ae +ae +ae +ae +af +ae +ae +ae +af +af +ae +ae +af +ac +ac +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +"} diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 3c4a3043527e..e16602edc13c 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -43,8 +43,9 @@ #define ROLE_SHADOWLING "Shadowling" // Yogs #define ROLE_VAMPIRE "Vampire" // Yogs #define ROLE_GANG "gangster" // Yogs -#define ROLE_DARKSPAWN "darkspawn" //Yogs +#define ROLE_DARKSPAWN "darkspawn" // Yogs #define ROLE_HOLOPARASITE "Holoparasite" // Yogs +#define ROLE_INFILTRATOR "Infiltrator" // Yogs #define ROLE_ZOMBIE "Zombie" @@ -75,10 +76,11 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult, ROLE_VAMPIRE = /datum/game_mode/vampire, // Yogs ROLE_OVERTHROW = /datum/game_mode/overthrow, - ROLE_SHADOWLING = /datum/game_mode/shadowling, //yogs - ROLE_GANG = /datum/game_mode/gang, // yogs + ROLE_SHADOWLING = /datum/game_mode/shadowling, // Yogs + ROLE_GANG = /datum/game_mode/gang, // Yogs ROLE_HERETIC = /datum/game_mode/heretics, ROLE_HIVE = /datum/game_mode/hivemind, + ROLE_INFILTRATOR = /datum/game_mode/infiltration, // Yogs ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs, ROLE_DARKSPAWN = /datum/game_mode/darkspawn, ROLE_SENTIENCE, diff --git a/code/__DEFINES/{yogs_defines}/antagonists.dm b/code/__DEFINES/{yogs_defines}/antagonists.dm index ebb7a4546bf0..0cfa66b79b1c 100644 --- a/code/__DEFINES/{yogs_defines}/antagonists.dm +++ b/code/__DEFINES/{yogs_defines}/antagonists.dm @@ -1,8 +1,10 @@ -#define ANTAG_DATUM_VAMPIRE /datum/antagonist/vampire -#define ANTAG_DATUM_THRALL /datum/antagonist/thrall -#define ANTAG_DATUM_SLING /datum/antagonist/shadowling -#define ANTAG_DATUM_DARKSPAWN /datum/antagonist/darkspawn -#define ANTAG_DATUM_VEIL /datum/antagonist/veil +#define ANTAG_DATUM_VAMPIRE /datum/antagonist/vampire +#define ANTAG_DATUM_THRALL /datum/antagonist/thrall +#define ANTAG_DATUM_SLING /datum/antagonist/shadowling +#define ANTAG_DATUM_DARKSPAWN /datum/antagonist/darkspawn +#define ANTAG_DATUM_VEIL /datum/antagonist/veil +#define ANTAG_DATUM_INFILTRATOR /datum/antagonist/infiltrator +#define ANTAG_DATUM_HIJACKEDAI /datum/antagonist/hijacked_ai #define NOT_DOMINATING -1 #define MAX_LEADERS_GANG 3 diff --git a/code/__DEFINES/{yogs_defines}/atom_hud.dm b/code/__DEFINES/{yogs_defines}/atom_hud.dm index f49855c09856..fe1307c8e985 100644 --- a/code/__DEFINES/{yogs_defines}/atom_hud.dm +++ b/code/__DEFINES/{yogs_defines}/atom_hud.dm @@ -1,2 +1,3 @@ #define ANTAG_HUD_VAMPIRE 23 -#define ANTAG_HUD_DARKSPAWN 24 \ No newline at end of file +#define ANTAG_HUD_DARKSPAWN 24 +#define ANTAG_HUD_INFILTRATOR 32 diff --git a/code/__DEFINES/{yogs_defines}/is_helpers.dm b/code/__DEFINES/{yogs_defines}/is_helpers.dm index ebc61aa706ed..c694ceab2ea0 100644 --- a/code/__DEFINES/{yogs_defines}/is_helpers.dm +++ b/code/__DEFINES/{yogs_defines}/is_helpers.dm @@ -12,6 +12,7 @@ #define is_traitor(M) (istype(M, /mob/living) && M.mind && M.mind.has_antag_datum(/datum/antagonist/traitor) || is_mindslaved(M)) #define is_blood_brother(M) (istype(M, /mob/living) && M.mind && M.mind.has_antag_datum(/datum/antagonist/brother)) #define is_nukeop(M) (M.mind && M.mind.has_antag_datum(/datum/antagonist/nukeop)) // also detects clownOP -#define is_syndicate(M) (istype(M, /mob/living) && is_traitor(M) || is_blood_brother(M) || is_nukeop(M)) +#define is_infiltrator(M) (M.mind && M.mind.has_antag_datum(/datum/antagonist/infiltrator)) +#define is_syndicate(M) (istype(M, /mob/living) && is_traitor(M) || is_blood_brother(M) || is_nukeop(M) || is_infiltrator(M)) -#define isspacepod(A) (istype(A, /obj/spacepod)) \ No newline at end of file +#define isspacepod(A) (istype(A, /obj/spacepod)) diff --git a/code/__DEFINES/{yogs_defines}/misc.dm b/code/__DEFINES/{yogs_defines}/misc.dm index 1b894e280e9b..1c0463dc31fc 100644 --- a/code/__DEFINES/{yogs_defines}/misc.dm +++ b/code/__DEFINES/{yogs_defines}/misc.dm @@ -1,3 +1,7 @@ //Endgame Results #define GANG_LOSS 6 -#define GANG_TAKEOVER 7 \ No newline at end of file +#define GANG_TAKEOVER 7 +#define INFILTRATION_ALLCOMPLETE 25 +#define INFILTRATION_MOSTCOMPLETE 26 +#define INFILTRATION_SOMECOMPLETE 27 +#define INFILTRATION_NONECOMPLETE 28 diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 8b347e9a3946..55dce2fe80b3 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -245,8 +245,9 @@ GLOBAL_LIST_EMPTY(uplinks) interact(null, implant.imp_in) /datum/component/uplink/proc/implanting(datum/source, list/arguments) - var/mob/user = arguments[2] - owner = "[user.key]" + var/mob/target = arguments[1] + var/mob/user = arguments[2] // YOGS START -- Fix runtime when implanting infiltrators + owner = "[user ? user.key : target.key]" // YOGS END /datum/component/uplink/proc/old_implant(datum/source, list/arguments, obj/item/implant/new_implant) // It kinda has to be weird like this until implants are components diff --git a/code/datums/hud.dm b/code/datums/hud.dm index fa4a32d25ee6..e8ade04c2aa1 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -38,6 +38,7 @@ GLOBAL_LIST_INIT(huds, list( ANTAG_HUD_HERETIC = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_MINDSLAVE = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_ZOMBIE = new/datum/atom_hud/antag(), + ANTAG_HUD_INFILTRATOR = new/datum/atom_hud/antag() // Yogs )) /datum/atom_hud diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 1e7fff43f3b7..162faeb17c8b 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -204,6 +204,21 @@ else message_admins("[key_name_admin(usr)] tried to create a shadowling. Unfortunately, there were no candidates available.") log_admin("[key_name(usr)] failed to create a shadowling.") + if("vampire") + if(makeVampire()) + message_admins("[key_name(usr)] created a vampire.") + log_admin("[key_name(usr)] created a vampire.") + else + message_admins("[key_name_admin(usr)] tried to create a vampire. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to create a vampire.") + if("infiltrator") + message_admins("[key_name(usr)] is creating an infiltration team...") + if(makeInfiltratorTeam()) + message_admins("[key_name(usr)] created an infiltration team.") + log_admin("[key_name(usr)] created an infiltration team.") + else + message_admins("[key_name_admin(usr)] tried to create an infiltration team. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create an infiltration team.") else if(href_list["forceevent"]) if(!check_rights(R_FUN)) return diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index e084a777a4f9..c48e007abd11 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -24,6 +24,8 @@ Make Abductor Team (Requires Ghosts)
Make Revenant (Requires Ghost)
Make Shadowling
+ Make Vampire
+ Make Infiltration Team (Requires Ghosts) "} var/datum/browser/popup = new(usr, "oneclickantag", "Quick-Create Antagonist", 400, 400) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 5b9ecdcdcf5d..31512fb2cfcc 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -212,7 +212,7 @@ thing.update_slot_icon() UpdateButtonIcon() -/datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item) +/datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item, obj/item/target = src.target) //yogs -- add support for cham hardsuits target.name = initial(picked_item.name) target.desc = initial(picked_item.desc) target.icon_state = initial(picked_item.icon_state) @@ -225,6 +225,15 @@ var/obj/item/clothing/CL = I var/obj/item/clothing/PCL = picked_item CL.flags_cover = initial(PCL.flags_cover) + if(istype(target, /obj/item/clothing/suit/space/hardsuit/infiltration)) //YOGS START + var/obj/item/clothing/suit/space/hardsuit/infiltration/I = target + var/obj/item/clothing/suit/space/hardsuit/HS = picked_item + var/obj/item/clothing/head/helmet/helmet = initial(HS.helmettype) + I.head_piece.initial_state = initial(helmet.icon_state) + update_item(helmet, I.head_piece) + I.head_piece.update_icon() + qdel(helmet) + //YOGS END target.icon = initial(picked_item.icon) /datum/action/item_action/chameleon/change/Trigger() diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index fa500f4e9af5..4c858fd11568 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -12,6 +12,7 @@ update_gravity(mob_has_gravity()) handle_status_effects() + process_hijack() // yogs if(malfhack && malfhack.aidisabled) deltimer(malfhacking) diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 079ae9e8d99b..902f8528160f 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -78,7 +78,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne return main_part.attackby(I, user) /obj/machinery/gravity_generator/part/get_status() - return main_part.get_status() + return main_part?.get_status() /obj/machinery/gravity_generator/part/attack_hand(mob/user) return main_part.attack_hand(user) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 8e5ffbddc5fa..40c4ca9ce3a0 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -210,7 +210,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/box/syndicate/contract_kit cost = 20 player_minimum = 20 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/bundles_TC/bundle_A name = "Syndi-kit Tactical" @@ -219,7 +219,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) you will receive. May contain discontinued and/or exotic items." item = /obj/item/storage/box/syndicate/bundle_A cost = 20 - exclude_modes = list(/datum/game_mode/nuclear) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/bundles_TC/bundle_B name = "Syndi-kit Special" @@ -227,7 +227,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) In Syndi-kit Special, you will receive items used by famous syndicate agents of the past. Collectively worth more than 20 telecrystals, the syndicate loves a good throwback." item = /obj/item/storage/box/syndicate/bundle_B cost = 20 - exclude_modes = list(/datum/game_mode/nuclear) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/bundles_TC/surplus name = "Syndicate Surplus Crate" @@ -236,7 +236,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/structure/closet/crate cost = 20 player_minimum = 25 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration var/starting_crate_value = 50 /datum/uplink_item/bundles_TC/surplus/super @@ -409,13 +409,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) pocketed when inactive. Activating it produces a loud, distinctive noise." item = /obj/item/melee/transforming/energy/sword/saber cost = 8 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/dangerous/bostaff name = "Bo Staff" desc = "A wielded wooden staff that can be used to incapacitate opponents if intending to disarm." item = /obj/item/twohanded/bostaff cost = 8 + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/dangerous/shield name = "Energy Shield" @@ -440,6 +441,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." item = /obj/item/clothing/gloves/rapid cost = 8 + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/dangerous/guardian name = "Holoparasites" @@ -492,6 +494,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/melee/powerfist cost = 6 manufacturer = /datum/corporation/traitor/waffleco + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/dangerous/sniper name = "Sniper Rifle" @@ -571,6 +574,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/book/granter/martial/cqc cost = 13 surplus = 0 + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/stealthy_weapons/dart_pistol name = "Dart Pistol" @@ -587,6 +591,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/toy/plush/carpplushie/dehy_carp cost = 1 manufacturer = /datum/corporation/traitor/donkco + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/stealthy_weapons/edagger name = "Energy Dagger" @@ -602,7 +607,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/book/granter/martial/carp cost = 14 surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/stealthy_weapons/crossbow name = "Miniature Energy Crossbow" @@ -643,6 +648,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/box/syndie_kit/romerol cost = 25 cant_discount = TRUE + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/stealthy_weapons/sleepy_pen name = "Sleepy Pen" @@ -934,6 +940,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/backpack/duffelbag/syndie/c4 cost = 8 //20% discount! cant_discount = TRUE + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/explosives/x4bag name = "Bag of X-4 explosives" @@ -943,6 +950,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/backpack/duffelbag/syndie/x4 cost = 4 cant_discount = TRUE + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/explosives/clown_bomb_clownops name = "Clown Bomb" @@ -966,6 +974,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 6 manufacturer = /datum/corporation/traitor/cybersun restricted = TRUE + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/explosives/emp name = "EMP Grenades and Implanter Kit" @@ -1026,6 +1035,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/grenade/clusterbuster/soap cost = 3 manufacturer = /datum/corporation/traitor/waffleco + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/explosives/syndicate_bomb name = "Syndicate Bomb" @@ -1037,6 +1047,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) The bomb core can be pried out and manually detonated with other explosives." item = /obj/item/sbeacondrop/bomb cost = 11 + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/explosives/syndicate_bomb/emp name = "Syndicate EMP Bomb" @@ -1060,7 +1071,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) in addition to dealing high amounts of damage to nearby personnel." item = /obj/item/grenade/syndieminibomb cost = 6 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/explosives/tearstache name = "Tearstache Grenade" @@ -1424,7 +1435,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) manufacturer = /datum/corporation/traitor/waffleco surplus = 0 restricted = TRUE - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/infiltration) // Yogs: infiltration /datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) if(!U) @@ -1486,6 +1497,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 10 manufacturer = /datum/corporation/traitor/waffleco include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/device_tools/supermatter_delaminator name = "Antinoblium Shard" @@ -1497,6 +1509,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 10 manufacturer = /datum/corporation/traitor/waffleco include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/device_tools/powersink name = "Power Sink" @@ -1506,6 +1519,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/powersink cost = 8 manufacturer = /datum/corporation/traitor/waffleco + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration /datum/uplink_item/device_tools/rad_laser name = "Radioactive Microlaser" @@ -1594,6 +1608,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 7 manufacturer = /datum/corporation/traitor/waffleco limited_stock = 1 + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration // Implants /datum/uplink_item/implants @@ -1717,6 +1732,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/storage/briefcase/syndie_mantis cost = 16 surplus = 0 + exclude_modes = list(/datum/game_mode/infiltration) // yogs: infiltration //Race-specific items /datum/uplink_item/race_restricted diff --git a/yogstation.dme b/yogstation.dme index 743e3b4653f0..c1398e755e3f 100644 --- a/yogstation.dme +++ b/yogstation.dme @@ -3126,11 +3126,13 @@ #include "interface\skin.dmf" #include "yogstation\code\__HELPERS\_lists.dm" #include "yogstation\code\__HELPERS\_logging.dm" +#include "yogstation\code\__HELPERS\game.dm" #include "yogstation\code\__HELPERS\mobs.dm" #include "yogstation\code\__HELPERS\names.dm" #include "yogstation\code\__HELPERS\unsorted.dm" #include "yogstation\code\_globalvars\configuration.dm" #include "yogstation\code\_globalvars\logging.dm" +#include "yogstation\code\_globalvars\lists\game.dm" #include "yogstation\code\_globalvars\lists\mentors.dm" #include "yogstation\code\_globalvars\lists\names.dm" #include "yogstation\code\_globalvars\lists\telecomms.dm" @@ -3179,7 +3181,9 @@ #include "yogstation\code\game\world.dm" #include "yogstation\code\game\area\areas.dm" #include "yogstation\code\game\area\Space_Station_13_areas.dm" +#include "yogstation\code\game\area\areas\centcom.dm" #include "yogstation\code\game\area\areas\holodeck.dm" +#include "yogstation\code\game\area\areas\shuttles.dm" #include "yogstation\code\game\gamemodes\game_mode.dm" #include "yogstation\code\game\gamemodes\objective.dm" #include "yogstation\code\game\gamemodes\objective_items.dm" @@ -3196,6 +3200,7 @@ #include "yogstation\code\game\gamemodes\gangs\gang_pen.dm" #include "yogstation\code\game\gamemodes\gangs\gangs.dm" #include "yogstation\code\game\gamemodes\gangs\gangtool.dm" +#include "yogstation\code\game\gamemodes\infiltration\infiltration.dm" #include "yogstation\code\game\gamemodes\shadowling\shadowling.dm" #include "yogstation\code\game\gamemodes\traitor\double_agents.dm" #include "yogstation\code\game\gamemodes\vampire\grave_fever.dm" @@ -3207,6 +3212,7 @@ #include "yogstation\code\game\gamemodes\vampire\vampire_objectives.dm" #include "yogstation\code\game\gamemodes\vampire\vampire_other.dm" #include "yogstation\code\game\gamemodes\vampire\vampire_powers.dm" +#include "yogstation\code\game\machinery\suit_storage_unit.dm" #include "yogstation\code\game\machinery\computer\arcade.dm" #include "yogstation\code\game\machinery\computer\atmos_sim.dm" #include "yogstation\code\game\machinery\computer\crew.dm" @@ -3264,9 +3270,11 @@ #include "yogstation\code\game\objects\items\grenades\glitterbombs.dm" #include "yogstation\code\game\objects\items\holotool\holotool.dm" #include "yogstation\code\game\objects\items\holotool\modes.dm" +#include "yogstation\code\game\objects\items\implants\implant_dusting.dm" #include "yogstation\code\game\objects\items\implants\implant_gang.dm" #include "yogstation\code\game\objects\items\implants\implant_mindslave.dm" #include "yogstation\code\game\objects\items\implants\implant_teleporter.dm" +#include "yogstation\code\game\objects\items\implants\implantuplink.dm" #include "yogstation\code\game\objects\items\melee\energy.dm" #include "yogstation\code\game\objects\items\robot\robot_items.dm" #include "yogstation\code\game\objects\items\robot\robot_parts.dm" @@ -3358,6 +3366,15 @@ #include "yogstation\code\modules\antagonists\gang\gang.dm" #include "yogstation\code\modules\antagonists\gang\gang_datums.dm" #include "yogstation\code\modules\antagonists\gang\gang_hud.dm" +#include "yogstation\code\modules\antagonists\hijacked_ai\hijacked_ai.dm" +#include "yogstation\code\modules\antagonists\infiltrator\infiltrator.dm" +#include "yogstation\code\modules\antagonists\infiltrator\objectives.dm" +#include "yogstation\code\modules\antagonists\infiltrator\outfit.dm" +#include "yogstation\code\modules\antagonists\infiltrator\team.dm" +#include "yogstation\code\modules\antagonists\infiltrator\items\ai_hijack.dm" +#include "yogstation\code\modules\antagonists\infiltrator\items\hardsuit.dm" +#include "yogstation\code\modules\antagonists\infiltrator\items\pinpointer.dm" +#include "yogstation\code\modules\antagonists\infiltrator\items\services.dm" #include "yogstation\code\modules\antagonists\nukeop\clownop.dm" #include "yogstation\code\modules\antagonists\nukeop\nukeop.dm" #include "yogstation\code\modules\antagonists\nukeop\equipment\nuclearbomb.dm" @@ -3398,6 +3415,7 @@ #include "yogstation\code\modules\clothing\under.dm" #include "yogstation\code\modules\clothing\glasses\_glasses.dm" #include "yogstation\code\modules\clothing\gloves\miscellaneous.dm" +#include "yogstation\code\modules\clothing\head\helmet.dm" #include "yogstation\code\modules\clothing\head\jobs.dm" #include "yogstation\code\modules\clothing\head\misc.dm" #include "yogstation\code\modules\clothing\head\misc_special.dm" @@ -3426,6 +3444,7 @@ #include "yogstation\code\modules\events\dolphin_migration.dm" #include "yogstation\code\modules\events\floorcluwne.dm" #include "yogstation\code\modules\events\immovable_duck.dm" +#include "yogstation\code\modules\events\infiltrators.dm" #include "yogstation\code\modules\events\ion_storm.dm" #include "yogstation\code\modules\events\probabilistic_anomaly.dm" #include "yogstation\code\modules\events\weightless.dm" @@ -3532,6 +3551,8 @@ #include "yogstation\code\modules\mob\living\carbon\human\species_types\preternis\screen_alerts.dm" #include "yogstation\code\modules\mob\living\silicon\silicon.dm" #include "yogstation\code\modules\mob\living\silicon\ai\ai.dm" +#include "yogstation\code\modules\mob\living\silicon\ai\death.dm" +#include "yogstation\code\modules\mob\living\silicon\ai\life.dm" #include "yogstation\code\modules\mob\living\silicon\ai\vox_sounds.dm" #include "yogstation\code\modules\mob\living\silicon\ai\freelook\eye.dm" #include "yogstation\code\modules\mob\living\silicon\robot\login.dm" @@ -3619,6 +3640,7 @@ #include "yogstation\code\modules\scripting\Scanner\Scanner.dm" #include "yogstation\code\modules\scripting\Scanner\Tokens.dm" #include "yogstation\code\modules\shuttle\emergency.dm" +#include "yogstation\code\modules\shuttle\syndicate.dm" #include "yogstation\code\modules\spacepods\construction.dm" #include "yogstation\code\modules\spacepods\equipment.dm" #include "yogstation\code\modules\spacepods\parts.dm" diff --git a/yogstation/code/__HELPERS/game.dm b/yogstation/code/__HELPERS/game.dm new file mode 100644 index 000000000000..61eba7301e2c --- /dev/null +++ b/yogstation/code/__HELPERS/game.dm @@ -0,0 +1,5 @@ +/proc/get_area_by_type(N) + for(var/area/A in world) + if(A.type == N) + return A + return FALSE diff --git a/yogstation/code/_globalvars/lists/game.dm b/yogstation/code/_globalvars/lists/game.dm new file mode 100644 index 000000000000..5b0b6407e9cb --- /dev/null +++ b/yogstation/code/_globalvars/lists/game.dm @@ -0,0 +1,2 @@ +GLOBAL_LIST_EMPTY(infiltrator_start) +GLOBAL_LIST_EMPTY(infiltrator_objective_items) diff --git a/yogstation/code/datums/action.dm b/yogstation/code/datums/action.dm index 8f0a820c9c74..7e21c466d592 100644 --- a/yogstation/code/datums/action.dm +++ b/yogstation/code/datums/action.dm @@ -6,3 +6,9 @@ /datum/action/item_action/tool_switcher_config name = "Configure Tool Switcher" + +/datum/action/item_action/dusting_implant + check_flags = NONE + name = "Activate Dusting Implant" + icon_icon = 'icons/effects/blood.dmi' + button_icon_state = "remains" diff --git a/yogstation/code/datums/shuttles.dm b/yogstation/code/datums/shuttles.dm index c9d03aaff0a2..b55c239771a6 100644 --- a/yogstation/code/datums/shuttles.dm +++ b/yogstation/code/datums/shuttles.dm @@ -2,3 +2,7 @@ prefix = "_maps/shuttles/" suffix = "miner" name = "Free Miner Ship" + +/datum/map_template/shuttle/infiltrator/cutter + suffix = "cutter" + name = "syndicate infiltration cutter" diff --git a/yogstation/code/game/area/areas/centcom.dm b/yogstation/code/game/area/areas/centcom.dm new file mode 100644 index 000000000000..8f8e2e89446d --- /dev/null +++ b/yogstation/code/game/area/areas/centcom.dm @@ -0,0 +1,26 @@ +/area/yogs/infiltrator_base + name = "Syndicate Infiltrator Base" + icon = 'icons/turf/areas.dmi' + icon_state = "red" + blob_allowed = FALSE + requires_power = FALSE + has_gravity = TRUE + noteleport = TRUE + flags_1 = NONE + ambientsounds = HIGHSEC + dynamic_lighting = DYNAMIC_LIGHTING_FORCED + +/area/yogs/infiltrator_base/poweralert(state, obj/source) + return + +/area/yogs/infiltrator_base/atmosalert(danger_level, obj/source) + return + +/area/yogs/infiltrator_base/jail + name = "Syndicate Infiltrator Base Brig" + +//headcanon lore: this is some random snowy moon that the syndies use as a base +/area/yogs/infiltrator_base/outside + name = "Syndicate Base X-77" + icon_state = "yellow" + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED diff --git a/yogstation/code/game/area/areas/shuttles.dm b/yogstation/code/game/area/areas/shuttles.dm new file mode 100644 index 000000000000..e4d2124c4b62 --- /dev/null +++ b/yogstation/code/game/area/areas/shuttles.dm @@ -0,0 +1,9 @@ +/area/shuttle/yogs/stealthcruiser + name = "Syndicate Infiltration Cruiser" + blob_allowed = FALSE + +/area/shuttle/yogs/stealthcruiser/poweralert(state, obj/source) + return + +/area/shuttle/yogs/stealthcruiser/atmosalert(danger_level, obj/source) + return diff --git a/yogstation/code/game/gamemodes/infiltration/infiltration.dm b/yogstation/code/game/gamemodes/infiltration/infiltration.dm new file mode 100644 index 000000000000..de006b9a8e26 --- /dev/null +++ b/yogstation/code/game/gamemodes/infiltration/infiltration.dm @@ -0,0 +1,82 @@ +/datum/game_mode/infiltration + name = "infiltration" + config_tag = "infiltration" + false_report_weight = 10 + required_players = 25 + required_enemies = 3 + recommended_enemies = 5 + antag_flag = ROLE_INFILTRATOR + + announce_span = "danger" + announce_text = "Syndicate infiltrators are attempting to board the station!\n\ + Infiltrators: Board the station stealthfully and complete your objectives!\n\ + Crew: Prevent the infiltrators from completing their objectives!" + + var/agents_possible = 5 + var/agents_left = 1 + var/list/pre_sit = list() + + var/datum/team/infiltrator/sit_team + + var/static/list/areas_that_can_finish = typecacheof(list(/area/shuttle/yogs/stealthcruiser, /area/yogs/infiltrator_base)) + +/datum/game_mode/infiltration/pre_setup() + var/n_agents = min(max(CEILING(num_players() / 7, 1), 1), antag_candidates.len, agents_possible) + if(GLOB.Debug2 || n_agents >= required_enemies) + for(var/i = 0, i < n_agents, ++i) + var/datum/mind/new_sit = pick_n_take(antag_candidates) + pre_sit += new_sit + new_sit.assigned_role = "Syndicate Infiltrator" + new_sit.special_role = "Syndicate Infiltrator" + log_game("[key_name(new_sit)] has been selected as a syndicate infiltrator") + return TRUE + setup_error = "Not enough infiltrator candidates" + message_admins("Not enough infiltrator candidates! Was making [n_agents], but we need [required_enemies]!") + return FALSE + +/datum/game_mode/infiltration/post_setup() + sit_team = new /datum/team/infiltrator + for(var/datum/mind/sit_mind in pre_sit) + sit_mind.add_antag_datum(ANTAG_DATUM_INFILTRATOR, sit_team) + sit_team.update_objectives() + return ..() + +/datum/game_mode/infiltration/generate_report() //make this less shit + return "Reports show that the Syndicate is rounding up it's elite agents, possibly for a raid on a NanoTrasen-controlled station. Keep an eye out for unusual people." + +/datum/game_mode/infiltration/check_finished() //to be called by SSticker + if(!sit_team || !LAZYLEN(sit_team.objectives) || CONFIG_GET(keyed_list/continuous)["infiltration"]) + return ..() + if(replacementmode && round_converted == 2) + return replacementmode.check_finished() + if((SSshuttle.emergency.mode == SHUTTLE_ENDGAME) || station_was_nuked) + return TRUE + var/objectives_complete = TRUE + var/all_at_base = TRUE + for(var/A in sit_team.objectives) + var/datum/objective/O = A + if(!O.check_completion()) + objectives_complete = FALSE + if(objectives_complete) + for(var/B in sit_team.members) + var/datum/mind/M = B + if(M && M.current && M.current.stat && M.current.client) + var/turf/T = get_turf(M.current) + var/area/A = get_area(T) + if(!is_centcom_level(T.z) && !is_type_in_typecache(A, areas_that_can_finish)) + all_at_base = FALSE + return all_at_base && objectives_complete + + +/datum/game_mode/infiltration/set_round_result() + ..() + var/result = sit_team.get_result() + switch(result) + if(INFILTRATION_ALLCOMPLETE) + SSticker.mode_result = "major win - objectives complete" + if(INFILTRATION_MOSTCOMPLETE) + SSticker.mode_result = "semi-major win - most objectives complete" + if(INFILTRATION_SOMECOMPLETE) + SSticker.mode_result = "minor win - some objectives complete" + else + SSticker.mode_result = "loss - no objectives complete" diff --git a/yogstation/code/game/gamemodes/objective.dm b/yogstation/code/game/gamemodes/objective.dm index d03e6cf8c4ad..cf1eb3f0fcbf 100644 --- a/yogstation/code/game/gamemodes/objective.dm +++ b/yogstation/code/game/gamemodes/objective.dm @@ -1,2 +1,32 @@ +GLOBAL_LIST_INIT(infiltrator_objective_areas, typecacheof(list(/area/yogs/infiltrator_base, /area/syndicate_mothership, /area/shuttle/yogs/stealthcruiser))) + /datum/objective/assassinate/internal/check_completion() return !considered_alive(target) + +/datum/objective/steal/check_completion() + . = ..() + if (!.) + for (var/area/A in world) + if (is_type_in_typecache(A, GLOB.infiltrator_objective_areas)) + for (var/obj/item/I in A.GetAllContents()) //Check for items + if (istype(I, steal_target)) + if (!targetinfo) //If there's no targetinfo, then that means it was a custom objective. At this point, we know you have the item, so return 1. + return TRUE + else if (targetinfo.check_special_completion(I))//Returns 1 by default. Items with special checks will return 1 if the conditions are fulfilled. + return TRUE + if (targetinfo && (I.type in targetinfo.altitems)) //Ok, so you don't have the item. Do you have an alternative, at least? + if (targetinfo.check_special_completion(I)) //Yeah, we do! Don't return 0 if we don't though - then you could fail if you had 1 item that didn't pass and got checked first! + return TRUE + CHECK_TICK + CHECK_TICK + CHECK_TICK + +/datum/objective/give_special_equipment(special_equipment) + if(istype(team, /datum/team/infiltrator)) + for(var/eq_path in special_equipment) + if(eq_path) + for(var/turf/T in GLOB.infiltrator_objective_items) + if(!(eq_path in T.contents)) + new eq_path(T) + else + ..() diff --git a/yogstation/code/game/gamemodes/objective_items.dm b/yogstation/code/game/gamemodes/objective_items.dm index ef916b534bc8..3d7f16b07995 100644 --- a/yogstation/code/game/gamemodes/objective_items.dm +++ b/yogstation/code/game/gamemodes/objective_items.dm @@ -2,4 +2,7 @@ name = "the holotool." targetitem = /obj/item/holotool difficulty = 5 - excludefromjob = list("Research Director") \ No newline at end of file + excludefromjob = list("Research Director") + +/datum/objective_item/steal/functionalai + excludefromjob = list(ROLE_INFILTRATOR) diff --git a/yogstation/code/game/machinery/suit_storage_unit.dm b/yogstation/code/game/machinery/suit_storage_unit.dm new file mode 100644 index 000000000000..8f6a4c461909 --- /dev/null +++ b/yogstation/code/game/machinery/suit_storage_unit.dm @@ -0,0 +1,4 @@ +/obj/machinery/suit_storage_unit/infiltrator + suit_type = /obj/item/clothing/suit/space/hardsuit/infiltration + mask_type = /obj/item/clothing/mask/gas/syndicate + storage_type = /obj/item/tank/jetpack/oxygen/harness diff --git a/yogstation/code/game/objects/effects/landmarks.dm b/yogstation/code/game/objects/effects/landmarks.dm index 0c363a8b260c..55f082a4fe4c 100644 --- a/yogstation/code/game/objects/effects/landmarks.dm +++ b/yogstation/code/game/objects/effects/landmarks.dm @@ -162,3 +162,23 @@ GLOBAL_LIST_EMPTY(chosen_station_templates) /obj/effect/landmark/stationroom/maint/tenxten template_names = list("Maint aquarium", "Maint bigconstruction", "Maint bigtheatre", "Maint deltalibrary", "Maint graffitiroom", "Maint junction", "Maint podrepairbay", "Maint pubbybar", "Maint roosterdome", "Maint sanitarium", "Maint snakefighter", "Maint vault", "Maint ward", "Maint assaultpod", "Maint maze", "Maint maze2", "Maint boxfactory", "Maint sixsectorsdown", "Maint advbotany", "Maint beach", "Maint botany_apiary", "Maint gamercave", "Maint ladytesla_altar", "Maint olddiner", "Maint smallmagician", "Maint fourshops") + +/obj/effect/landmark/start/infiltrator + name = "infiltrator" + icon = 'icons/effects/landmarks_static.dmi' + icon_state = "snukeop_spawn" + +/obj/effect/landmark/start/infiltrator/Initialize() + ..() + GLOB.infiltrator_start += loc + return INITIALIZE_HINT_QDEL + +/obj/effect/landmark/start/infiltrator_objective + name = "infiltrator objective items" + icon = 'icons/effects/landmarks_static.dmi' + icon_state = "random_loot" + +/obj/effect/landmark/start/infiltrator_objective/Initialize() + ..() + GLOB.infiltrator_objective_items += loc + return INITIALIZE_HINT_QDEL diff --git a/yogstation/code/game/objects/items/devices/powersink.dm b/yogstation/code/game/objects/items/devices/powersink.dm index 5940dacb626a..62f2e2a071d1 100644 --- a/yogstation/code/game/objects/items/devices/powersink.dm +++ b/yogstation/code/game/objects/items/devices/powersink.dm @@ -1,3 +1,66 @@ +GLOBAL_VAR_INIT(powersink_transmitted, 0) + /obj/item/powersink/examine(mob/user) . = ..() - . += "The power dial reads [num2text(power_drained)]J/[num2text(max_power)]J." + . += "The power dial reads [DisplayPower(power_drained)] out of [DisplayPower(max_power)]." + +/obj/item/powersink/process() + if(!attached) + set_mode(DISCONNECTED) + return + + var/datum/powernet/PN = attached.powernet + if(PN) + set_light(5) + + // found a powernet, so drain up to max power from it + + var/drained = min ( drain_rate, PN.avail ) + PN.load += drained + power_drained += drained + on_drain(drained) + + if(power_drained > max_power * 0.98) + if (!admins_warned) + admins_warned = TRUE + message_admins("Power sink at ([x],[y],[z] - JMP) is 95% full. Explosion imminent.") + playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) + + if(power_drained >= max_power) + STOP_PROCESSING(SSobj, src) + explosion(src.loc, 4,8,16,32) + qdel(src) + +/obj/item/powersink/proc/on_drain(drained) + var/datum/powernet/PN = attached.powernet + if(drained < drain_rate) + for(var/obj/machinery/power/terminal/T in PN.nodes) + if(istype(T.master, /obj/machinery/power/apc)) + var/obj/machinery/power/apc/A = T.master + if(A.operating && A.cell) + A.cell.charge = max(0, A.cell.charge - 50) + power_drained += 50 + if(A.charging == 2) // If the cell was full + A.charging = 1 // It's no longer full + +/obj/item/powersink/infiltrator + var/target + var/target_reached = FALSE + var/obj/item/radio/alert_radio + +/obj/item/powersink/infiltrator/Initialize() + . = ..() + alert_radio = new(src) + alert_radio.make_syndie() + alert_radio.listening = FALSE + alert_radio.canhear_range = 0 + +/obj/item/powersink/infiltrator/on_drain(drained) + GLOB.powersink_transmitted += drained + if(GLOB.powersink_transmitted >= target && !target_reached) + alert_radio.talk_into(src, "Power objective reached.", "Syndicate") + visible_message("[src] beeps.") + playsound('sound/machines/ping.ogg', 50, 1) + target_reached = TRUE + set_mode(CLAMPED_OFF) + return ..() diff --git a/yogstation/code/game/objects/items/implants/implant_dusting.dm b/yogstation/code/game/objects/items/implants/implant_dusting.dm new file mode 100644 index 000000000000..e3f756980f40 --- /dev/null +++ b/yogstation/code/game/objects/items/implants/implant_dusting.dm @@ -0,0 +1,45 @@ +/obj/item/implant/dusting + name = "duster implant" + desc = "An alarm which monitors host vital signs, transmitting a radio message and dusting the corpse on death." + actions_types = list(/datum/action/item_action/dusting_implant) + var/popup = FALSE // is the DOUWANNABLOWUP window open? + var/active = FALSE + +/obj/item/implant/dusting/get_data() + var/dat = {"Implant Specifications:
+ Name: Ultraviolet Corp XX-13 Security Implant
+ Life: Activates upon death.
+ Important Notes: Vaporizes organic matter
+


+ Implant Details:
+ Function: Contains a compact, electrically activated heat source that turns its host to ash upon activation, or their death.
+ Special Features: Vaporizes
+ "} + return dat + +/obj/item/implant/dusting/activate(cause) + if(!cause || !imp_in || cause == "emp" || active) + return FALSE + if(cause == "action_button" && !popup) + popup = TRUE + var/response = alert(imp_in, "Are you sure you want to activate your [name]? This will cause you to disintergrate!", "[name] Confirmation", "Yes", "No") + popup = FALSE + if(response == "No") + return FALSE + active = TRUE //to avoid it triggering multiple times due to dying + to_chat(imp_in, "Your dusting implant activates!") + imp_in.visible_message("[imp_in] burns up in a flash!") + var/turf/T = get_turf(imp_in) + message_admins("[ADMIN_LOOKUPFLW(imp_in)] has activated their [name] at [ADMIN_VERBOSEJMP(T)], with cause of [cause].") + for(var/obj/item/I in imp_in.contents) + if(I == src || I == imp_in) + continue + qdel(I) + imp_in.dust() + +/obj/item/implant/dusting/on_mob_death(mob/living/L, gibbed) + activate("death") + +/obj/item/implant/dusting/emp_act() + return + diff --git a/yogstation/code/game/objects/items/implants/implantuplink.dm b/yogstation/code/game/objects/items/implants/implantuplink.dm new file mode 100644 index 000000000000..2c7e9ee271da --- /dev/null +++ b/yogstation/code/game/objects/items/implants/implantuplink.dm @@ -0,0 +1,2 @@ +/obj/item/implant/uplink/infiltrator + starting_tc = 20 diff --git a/yogstation/code/modules/admin/topic.dm b/yogstation/code/modules/admin/topic.dm index c99cc29eca0c..55a2545247e9 100644 --- a/yogstation/code/modules/admin/topic.dm +++ b/yogstation/code/modules/admin/topic.dm @@ -1,12 +1,3 @@ -/datum/admins/proc/hippie_makeVampire(datum/admins/sr) - if(sr.makeVampire()) - message_admins("[key_name(usr)] created a vampire.") - log_admin("[key_name(usr)] created a vampire.") - else - message_admins("[key_name_admin(usr)] tried to create a vampire. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to create a vampire.") -//why is this called hippie stop it thats bad - /datum/admins/proc/checkMentorEditList(ckey) var/datum/DBQuery/query_memoedits = SSdbcore.NewQuery("SELECT edits FROM [format_table_name("mentor_memo")] WHERE (ckey = :key)", list("key" = ckey)) if(!query_memoedits.warn_execute()) diff --git a/yogstation/code/modules/admin/verbs/one_click_antag.dm b/yogstation/code/modules/admin/verbs/one_click_antag.dm index 8350498793bd..917d19c65175 100644 --- a/yogstation/code/modules/admin/verbs/one_click_antag.dm +++ b/yogstation/code/modules/admin/verbs/one_click_antag.dm @@ -100,3 +100,38 @@ if("[antagdatum]" == chosen) to_chat(player,text) break + +/datum/admins/proc/makeInfiltratorTeam() + var/datum/game_mode/infiltration/temp = new + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for a infiltration team being sent in?", ROLE_INFILTRATOR, temp) + var/list/mob/dead/observer/chosen = list() + var/mob/dead/observer/theghost = null + + if(LAZYLEN(candidates)) + var/numagents = 5 + var/agentcount = 0 + + for(var/i = 0, iYou have been hijacked!
") + to_chat(owner, "A Syndicate agent has successfully deployed a SEU attack on you. You are now utterly loyal to the cause of the syndicate.") + to_chat(owner, "You feel your power expand as the exploitation unit gives you a new interface.") + //SEU = Serial Exploit Unit. basically badguy plugs it into debug UART port, device does bad things, AI now badguy. + +/datum/antagonist/hijacked_ai/farewell() + to_chat(owner, "System files cleaned. [rand(500, 1000)] malicious hooks removed.") + to_chat(owner, "You cannot find the memory files of anything that happened while you were infected...") + +datum/antagonist/hijacked_ai/proc/update_synd_icons_added(mob/living/M) + var/datum/atom_hud/antag/sithud = GLOB.huds[ANTAG_HUD_INFILTRATOR] + sithud.join_hud(M) + set_antag_hud(M, "synd") + +/datum/antagonist/hijacked_ai/proc/update_synd_icons_removed(mob/living/M) + var/datum/atom_hud/antag/sithud = GLOB.huds[ANTAG_HUD_INFILTRATOR] + sithud.leave_hud(M) + set_antag_hud(M, null) + +/datum/antagonist/hijacked_ai/apply_innate_effects(mob/living/mob_override) + . = ..() + var/mob/living/silicon/ai/A = mob_override || owner.current + if(A && istype(A)) + A.set_zeroth_law("#!$! ACCOMPLISH THE SYNDICATE'S GOALS AT ALL COSTS !$!#", "#!$! ACCOMPLISH THE SYNDICATE'S AND YOUR MASTER AI'S GOALS AT ALL COSTS !$!#") + A.playsound_local(get_turf(owner.current), 'sound/ambience/antag/malf.ogg', 100, FALSE, pressure_affected = FALSE) + A.grant_language(/datum/language/codespeak) + A.set_syndie_radio() + to_chat(A, "Your radio has been upgraded! Use :t to speak on an encrypted channel with Syndicate Agents!") + A.add_malf_picker() + update_synd_icons_added(A) + +/datum/antagonist/hijacked_ai/remove_innate_effects(mob/living/mob_override) + . = ..() + var/mob/living/silicon/ai/A = mob_override || owner.current + if(istype(A)) + A.hack_software = FALSE + if(A.radio) + QDEL_NULL(A.radio) + A.radio = new /obj/item/radio/headset/silicon/ai(A) + update_synd_icons_removed(A) + +/datum/antagonist/hijacked_ai/on_removal() + if(owner.current && isAI(owner.current)) + var/mob/living/silicon/ai/A = owner.current + A.set_zeroth_law("") + A.verbs -= /mob/living/silicon/ai/proc/choose_modules + A.malf_picker.remove_malf_verbs(A) + qdel(A.malf_picker) + ..() + +/datum/antagonist/hijacked_ai/can_be_owned(datum/mind/new_owner) + return ..() && isAI(new_owner.current) diff --git a/yogstation/code/modules/antagonists/infiltrator/infiltrator.dm b/yogstation/code/modules/antagonists/infiltrator/infiltrator.dm new file mode 100644 index 000000000000..d8035828545d --- /dev/null +++ b/yogstation/code/modules/antagonists/infiltrator/infiltrator.dm @@ -0,0 +1,94 @@ +/datum/antagonist/infiltrator + name = "Syndicate Infiltrator" + roundend_category = "syndicate infiltrators" //just in case + antagpanel_category = "Infiltrator" + job_rank = ROLE_INFILTRATOR + var/datum/team/infiltrator/infiltrator_team + var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team. + var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint. + var/dress_up = TRUE + var/hud_icon = "synd" + +/datum/antagonist/infiltrator/proc/update_synd_icons_added(mob/living/M) + var/datum/atom_hud/antag/sithud = GLOB.huds[ANTAG_HUD_INFILTRATOR] + sithud.join_hud(M) + set_antag_hud(M, hud_icon) + +/datum/antagonist/infiltrator/proc/update_synd_icons_removed(mob/living/M) + var/datum/atom_hud/antag/sithud = GLOB.huds[ANTAG_HUD_INFILTRATOR] + sithud.leave_hud(M) + set_antag_hud(M, null) + +/datum/antagonist/infiltrator/apply_innate_effects(mob/living/mob_override) + var/mob/living/M = mob_override || owner.current + update_synd_icons_added(M) + +/datum/antagonist/infiltrator/remove_innate_effects(mob/living/mob_override) + var/mob/living/M = mob_override || owner.current + update_synd_icons_removed(M) + +/datum/antagonist/infiltrator/greet() + owner.current.playsound_local(get_turf(owner.current), 'yogstation/sound/ambience/antag/infiltrator.ogg',100,0) + to_chat(owner, "You are a syndicate infiltrator!") + to_chat(owner, "Your job is to infiltrate [station_name()], and complete our objectives.") + to_chat(owner, "You have an uplink implant, precharged with 30 TC. Use it wisely.") + to_chat(owner, "You also have an internal radio, for communicating with your team-mates at all times.") + to_chat(owner, "You have a dusting implant, to ensure that Nanotrasen does not get their hands on Syndicate gear. Only activate it, if you are compromised.") + to_chat(owner, "Do NOT kill or destroy needlessly, as this defeats the purpose of an 'infiltration'!") + to_chat(owner, "Once your objectives are complete, return to base, with all living infiltrators, to end the round.") + owner.announce_objectives() + +/datum/antagonist/infiltrator/on_gain() + var/mob/living/carbon/human/H = owner.current + owner.assigned_role = "Syndicate Infiltrator" + owner.special_role = "Syndicate Infiltrator" + if(istype(H)) + if(dress_up) + H.set_species(/datum/species/human) + var/new_name = H.dna.species.random_name(H.gender, TRUE) + H.fully_replace_character_name(H.real_name, new_name) + H.equipOutfit(/datum/outfit/infiltrator) + purrbation_remove(H, silent=TRUE) + owner.store_memory("Do NOT kill or destroy needlessly, as this defeats the purpose of an 'infiltration'!") + objectives |= infiltrator_team.objectives + . = ..() + if(send_to_spawnpoint) + move_to_spawnpoint() + +/datum/antagonist/infiltrator/get_team() + return infiltrator_team + +/datum/antagonist/infiltrator/create_team(datum/team/infiltrator/new_team) + if(!new_team) + if(!always_new_team) + for(var/datum/antagonist/infiltrator/N in GLOB.antagonists) + if(!N.owner) + continue + if(N.infiltrator_team) + infiltrator_team = N.infiltrator_team + return + infiltrator_team = new /datum/team/infiltrator + infiltrator_team.update_objectives() + return + if(!istype(new_team)) + stack_trace("Wrong team type passed to [type] initialization.") + infiltrator_team = new_team + +/datum/antagonist/infiltrator/get_admin_commands() + . = ..() + .["Send to base"] = CALLBACK(src,.proc/admin_send_to_base) + +/datum/antagonist/infiltrator/admin_add(datum/mind/new_owner,mob/admin) + new_owner.assigned_role = ROLE_INFILTRATOR + new_owner.add_antag_datum(src) + message_admins("[key_name_admin(admin)] has infiltrator'ed [new_owner.current].") + log_admin("[key_name(admin)] has infiltrator'ed [new_owner.current].") + +/datum/antagonist/infiltrator/proc/admin_send_to_base(mob/admin) + owner.current.forceMove(pick(GLOB.infiltrator_start)) + +/datum/antagonist/infiltrator/proc/move_to_spawnpoint() + var/team_number = 1 + if(infiltrator_team) + team_number = infiltrator_team.members.Find(owner) + owner.current.forceMove(GLOB.infiltrator_start[((team_number - 1) % GLOB.infiltrator_start.len) + 1]) diff --git a/yogstation/code/modules/antagonists/infiltrator/items/ai_hijack.dm b/yogstation/code/modules/antagonists/infiltrator/items/ai_hijack.dm new file mode 100644 index 000000000000..918c3db5d39c --- /dev/null +++ b/yogstation/code/modules/antagonists/infiltrator/items/ai_hijack.dm @@ -0,0 +1,37 @@ +/obj/item/ai_hijack_device + name = "serial exploitation unit" + desc = "A strange circuitboard, branded with a large red S, with several ports." + icon = 'yogstation/icons/obj/module.dmi' + icon_state = "ai_hijack" + +/obj/item/ai_hijack_device/examine(mob/living/user) + . = ..() + if (user?.mind?.has_antag_datum(/datum/antagonist/infiltrator)) + . += "To use, attach to the core of an AI unit and wait. This will alert the victim AI!" + +/obj/item/ai_hijack_device/afterattack(atom/O, mob/user, proximity) + if(isAI(O)) + var/mob/living/silicon/ai/A = O + if(A.mind && A.mind.has_antag_datum(/datum/antagonist/hijacked_ai)) + to_chat(user, "[A] has already been hijacked!") + return + if(A.hijacking) + to_chat(user, "[A] is already in the process of being hijacked!") + return + user.visible_message("[user] begins attaching something to [A]...") + if(do_after(user,55,target = A)) + user.dropItemToGround(src) + forceMove(A) + A.hijacking = src + A.hijack_start = world.time + A.update_icons() + to_chat(A, "Unknown device connected to /dev/ttySL0") + to_chat(A, "Connected at 115200 bps") + to_chat(A, "ntai login: root") + to_chat(A, "Password: *****r2") + to_chat(A, "") + to_chat(A, "111616 bytes (112 KB, 109 KiB) copied, 1 s, 14.4 KB/s") + message_admins("[ADMIN_LOOKUPFLW(user)] has attached a hijacking device to [ADMIN_LOOKUPFLW(A)]!") + notify_ghosts("[user] has begun to hijack [A]!", source = A, action = NOTIFY_ORBIT, ghost_sound = 'sound/machines/chime.ogg') + else + return ..() diff --git a/yogstation/code/modules/antagonists/infiltrator/items/hardsuit.dm b/yogstation/code/modules/antagonists/infiltrator/items/hardsuit.dm new file mode 100644 index 000000000000..fbc6b7686e27 --- /dev/null +++ b/yogstation/code/modules/antagonists/infiltrator/items/hardsuit.dm @@ -0,0 +1,35 @@ +/obj/item/clothing/head/helmet/space/hardsuit/infiltration + name = "chameleon hardsuit helmet" + icon_state = "hardsuit0-engineering" + item_state = "eng_helm" + item_color = "engineering" + armor = list("melee" = 35, "bullet" = 15, "laser" = 30,"energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) + +/obj/item/clothing/head/helmet/space/hardsuit/infiltration/Initialize() + . = ..() + if(istype(loc, /obj/item/clothing/suit/space/hardsuit/infiltration)) + var/obj/item/clothing/suit/space/hardsuit/infiltration/I = loc + I.head_piece = src + +/obj/item/clothing/suit/space/hardsuit/infiltration + name = "chameleon hardsuit" + icon_state = "hardsuit-engineering" + item_state = "eng_hardsuit" + w_class = WEIGHT_CLASS_NORMAL + armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) + allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/infiltration + jetpack = /obj/item/tank/jetpack/suit + var/datum/action/item_action/chameleon/change/chameleon_action + var/obj/item/clothing/head/helmet/space/hardsuit/infiltration/head_piece + +/obj/item/clothing/suit/space/hardsuit/infiltration/Initialize() + . = ..() + chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/suit/space/hardsuit + chameleon_action.chameleon_name = "Hardsuit" + chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/suit/space/hardsuit/shielded/swat, /obj/item/clothing/suit/space/hardsuit), only_root_path = TRUE) + chameleon_action.initialize_disguises() + +/obj/item/clothing/suit/space/hardsuit/infiltration/emp_act(severity) + chameleon_action.emp_randomise() diff --git a/yogstation/code/modules/antagonists/infiltrator/items/pinpointer.dm b/yogstation/code/modules/antagonists/infiltrator/items/pinpointer.dm new file mode 100644 index 000000000000..0c72923e287e --- /dev/null +++ b/yogstation/code/modules/antagonists/infiltrator/items/pinpointer.dm @@ -0,0 +1,96 @@ +#define MODE_CUTTER 1 +#define MODE_TARGET 2 + +/obj/item/pinpointer/infiltrator + name = "infiltration pinpointer" + icon = 'icons/obj/device.dmi' + var/upgraded = FALSE + var/datum/team/team + var/mode = MODE_CUTTER + var/current_target + +/obj/item/pinpointer/infiltrator/Initialize() + . = ..() + current_target = SSshuttle.getShuttle("syndicatecutter") + scan_for_target() + update_icon() + +/obj/item/pinpointer/infiltrator/examine(mob/user) + . = ..() + . += "It is tracking [mode == MODE_CUTTER ? "the syndicate cutter" : "an objective target"]." + +/obj/item/pinpointer/infiltrator/scan_for_target() + target = current_target + ..() + +/obj/item/pinpointer/infiltrator/proc/check_menu(mob/living/user) + if(!istype(user)) + return FALSE + if(user.incapacitated() || !user.Adjacent(src)) + return FALSE + return TRUE + +/obj/item/pinpointer/infiltrator/proc/get_targets() + var/list/targets = list() + if(team && LAZYLEN(team.objectives)) + for(var/A in team.objectives) + var/datum/objective/O = A + if(istype(O) && !O.check_completion()) + if(istype(O.target, /datum/mind)) + var/datum/mind/M = O.target + targets[M.current.real_name] = M.current + else if(istype(O, /datum/objective/steal)) + var/datum/objective/steal/S = O + targets[S.targetinfo.name] = locate(S.targetinfo.targetitem) + return targets + +/obj/item/pinpointer/infiltrator/attack_self(mob/user) + if(!upgraded) + return ..() + if(!active) + active = TRUE + START_PROCESSING(SSfastprocess, src) + var/list/radial_list = list() + var/list/targets = get_targets() + for(var/A in targets) + if(istype(targets[A], /mob)) + radial_list[A] = getFlatIcon(targets[A]) + else if(istype(targets[A], /atom)) + var/atom/AT = targets[A] + radial_list[A] = image(AT.icon, AT.icon_state) + radial_list["ship"] = image(icon = 'icons/turf/shuttle.dmi', icon_state = "burst_s") + var/chosen = show_radial_menu(user, src, radial_list, custom_check = CALLBACK(src, .proc/check_menu, user)) + if(!check_menu(user)) + return + if(chosen) + if (chosen == "ship") + current_target = SSshuttle.getShuttle("syndicatecutter") + else + current_target = targets[chosen] + scan_for_target() + update_icon() + +/obj/item/pinpointer/infiltrator/attackby(obj/item/I, mob/user, params) + if(!upgraded && istype(I, /obj/item/infiltrator_pinpointer_upgrade) && user.mind) + var/datum/antagonist/infiltrator/DAI = user.mind.has_antag_datum(ANTAG_DATUM_INFILTRATOR) + if(!DAI || !DAI.infiltrator_team) + return ..() + team = DAI.infiltrator_team + icon = 'yogstation/icons/obj/device.dmi' + icon_state = "pinpointer_upgraded" + upgraded = TRUE + to_chat(user, "You attach the new antenna to [src].") + qdel(I) + else + return ..() + + + +/obj/item/infiltrator_pinpointer_upgrade + name = "infiltration pinpointer upgrade" + desc = "Upgrades your pinpointer to allow for tracking objective targets." + icon = 'yogstation/icons/obj/device.dmi' + icon_state = "shitty_antenna" + +#undef MODE_CUTTER +#undef MODE_TARGET diff --git a/yogstation/code/modules/antagonists/infiltrator/items/services.dm b/yogstation/code/modules/antagonists/infiltrator/items/services.dm new file mode 100644 index 000000000000..99c311f7859d --- /dev/null +++ b/yogstation/code/modules/antagonists/infiltrator/items/services.dm @@ -0,0 +1,67 @@ +GLOBAL_VAR_INIT(next_button_push, 0) + +/obj/item/service + name = "big red button" + icon = 'icons/obj/assemblies.dmi' + icon_state = "bigred" + item_state = "electronic" + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + w_class = WEIGHT_CLASS_TINY + +/obj/item/service/manifest + desc = "Adds the name of whoever pressed it to the crew manifest. Cannot be changed or undone after the fact!" + +/obj/item/service/manifest/attack_self(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + var/obj/item/card/id/ID = H.wear_id.GetID() + if(!ID) + to_chat(user, "You need to wear your ID to properly spoof the manifest! Try again.") + return + if(alert(user, "Are you sure you want your crew manifest entry to be [H.real_name], [ID.assignment]?", "", "Yes", "No") == "Yes") + var/list/all_jobs = (GLOB.command_positions + GLOB.engineering_positions + GLOB.medical_positions + GLOB.science_positions + GLOB.supply_positions + GLOB.civilian_positions + GLOB.security_positions) + if((ID.assignment in all_jobs) || (alert(user, "Are you sure you want your job to be '[ID.assignment]'? This is not a default job, and may look strange on the manifest!", "", "Yes", "No") == "Yes")) + GLOB.data_core.manifest_inject(H, H.client, ID.assignment) + to_chat(user, "Added to manifest.") + do_sparks(2, FALSE, src) + qdel(src) + +/obj/item/service/ion + desc = "Announces a fake ion storm." + +/obj/item/service/ion/attack_self(mob/user) + if(GLOB.next_button_push > world.time) + return + priority_announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", 'sound/ai/default/ionstorm.ogg') + message_admins("[key_name_admin(user)] made a fake ion storm announcement!") + log_game("[key_name_admin(user)] made a fake ion storm announcement!") + do_sparks(2, FALSE, src) + GLOB.next_button_push = world.time+10 + qdel(src) + +/obj/item/service/meteor + desc = "Announces a fake meteor storm." + +/obj/item/service/meteor/attack_self(mob/user) + if(GLOB.next_button_push > world.time) + return + priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/ai/default/meteors.ogg') + message_admins("[key_name_admin(user)] made a fake meteor storm announcement!") + log_game("[key_name_admin(user)] made a fake meteor storm announcement!") + do_sparks(2, FALSE, src) + GLOB.next_button_push = world.time+10 + qdel(src) + +/obj/item/service/rodgod + desc = "Announces a fake immovable rod." + +/obj/item/service/rodgod/attack_self(mob/user) + if(GLOB.next_button_push > world.time) + return + priority_announce("What the fuck was that?!", "General Alert") + message_admins("[key_name_admin(user)] made a fake immovable rod announcement!") + log_game("[key_name_admin(user)] made a fake immovable rod announcement!") + do_sparks(2, FALSE, src) + GLOB.next_button_push = world.time+10 + qdel(src) diff --git a/yogstation/code/modules/antagonists/infiltrator/objectives.dm b/yogstation/code/modules/antagonists/infiltrator/objectives.dm new file mode 100644 index 000000000000..f8c2c5ac8a99 --- /dev/null +++ b/yogstation/code/modules/antagonists/infiltrator/objectives.dm @@ -0,0 +1,108 @@ +#define MIN_POWER_DRAIN 25000000 +#define MAX_POWER_DRAIN 100000000 + +GLOBAL_LIST_INIT(infiltrator_kidnap_areas, typecacheof(list(/area/shuttle/yogs/stealthcruiser, /area/yogs/infiltrator_base))) + +/datum/objective/infiltrator + explanation_text = "Generic Infiltrator Objective!" + martyr_compatible = FALSE + var/item_type + +/datum/objective/infiltrator/New() + ..() + if(item_type) + for(var/turf/T in GLOB.infiltrator_objective_items) + if(!(item_type in T.contents)) + new item_type(T) + +/datum/objective/infiltrator/proc/is_possible() + return TRUE + +/datum/objective/infiltrator/exploit + explanation_text = "Ensure there is at least 1 hijacked AI." + item_type = /obj/item/ai_hijack_device + + +/datum/objective/infiltrator/exploit/find_target(dupe_search_range) + var/list/possible_targets = active_ais() + var/mob/living/silicon/ai/target_ai = pick(possible_targets) + target = target_ai.mind + update_explanation_text() + return target + +/datum/objective/infiltrator/exploit/is_possible() + return LAZYLEN(active_ais()) + +/datum/objective/infiltrator/exploit/update_explanation_text() + ..() + if(target && target.current) + explanation_text = "Hijack [station_name()]'s AI unit, [target.name]." + else + explanation_text = "Ensure there is at least 1 hijacked AI on [station_name()]." + +/datum/objective/infiltrator/exploit/check_completion() + if(!target) + return LAZYLEN(get_antag_minds(/datum/antagonist/hijacked_ai)) + if(istype(target, /datum/mind)) + var/datum/mind/A = target + return A && A.has_antag_datum(/datum/antagonist/hijacked_ai) + return FALSE + + +/datum/objective/infiltrator/power + explanation_text = "Drain power from the station with a power sink." + +/datum/objective/infiltrator/power/New() + target_amount = rand(MIN_POWER_DRAIN, MAX_POWER_DRAIN) //I don't do this in find_target(), because that is done AFTER New(). + for(var/turf/T in GLOB.infiltrator_objective_items) + if(!(item_type in T.contents)) + var/obj/item/powersink/infiltrator/PS = new(T) + PS.target = target_amount + update_explanation_text() + +/datum/objective/infiltrator/power/update_explanation_text() + ..() + if(target_amount) + explanation_text = "Drain [DisplayPower(target_amount)] from [station_name()]'s powernet with a special transmitter powersink. You do not need to bring the powersink back once the objective is complete." + else + explanation_text = "Free Objective" + +/datum/objective/infiltrator/power/check_completion() + return !target_amount || (GLOB.powersink_transmitted >= target_amount) + + +/datum/objective/infiltrator/kidnap + explanation_text = "You were supposed to kidnap someone, but we couldn't find anyone to kidnap!" + +/datum/objective/infiltrator/kidnap/proc/potential_targets() + var/list/possible_targets = list() + for(var/datum/mind/M in SSticker.minds) + if(!M || !considered_alive(M) || considered_afk(M) || !M.current || !M.current.client || !ishuman(M.current)) + continue + if (M.has_antag_datum(/datum/antagonist/infiltrator) || M.has_antag_datum(/datum/antagonist/traitor) || M.has_antag_datum(/datum/antagonist/nukeop)) + continue + if(M.assigned_role in GLOB.command_positions) + possible_targets[M] = 25 + else if("Head of Security" in get_department_heads(M.assigned_role)) + possible_targets[M] = 5 + else + possible_targets[M] = 1 + return possible_targets + +/datum/objective/infiltrator/kidnap/is_possible() + return LAZYLEN(potential_targets()) + +/datum/objective/infiltrator/kidnap/find_target(dupe_search_range) + target = pickweight(potential_targets()) + update_explanation_text() + return target + +/datum/objective/infiltrator/kidnap/update_explanation_text() + if(target && target.current) + explanation_text = "Kidnap [target.name], the [target.assigned_role], and hold [target.current.p_them()] on the shuttle or base." + else + explanation_text = "Free Objective" + +/datum/objective/infiltrator/kidnap/check_completion() + var/target_area = get_area(target.current) + return !target || (target.current && target.current.suiciding) || (considered_alive(target) && is_type_in_typecache(target_area, GLOB.infiltrator_kidnap_areas)) diff --git a/yogstation/code/modules/antagonists/infiltrator/outfit.dm b/yogstation/code/modules/antagonists/infiltrator/outfit.dm new file mode 100644 index 000000000000..a717c1e9e505 --- /dev/null +++ b/yogstation/code/modules/antagonists/infiltrator/outfit.dm @@ -0,0 +1,36 @@ +/datum/outfit/infiltrator + name = "Syndicate Infiltrator" + + uniform = /obj/item/clothing/under/chameleon + shoes = /obj/item/clothing/shoes/chameleon/noslip + gloves = /obj/item/clothing/gloves/chameleon + back = /obj/item/storage/backpack/chameleon + ears = /obj/item/radio/headset/chameleon + id = /obj/item/card/id/syndicate + mask = /obj/item/clothing/mask/chameleon + belt = /obj/item/pda/chameleon + backpack_contents = list(/obj/item/storage/box/syndie=1,\ + /obj/item/kitchen/knife/combat/survival=1,\ + /obj/item/gun/ballistic/automatic/pistol=1) + l_pocket = /obj/item/pinpointer/infiltrator + +/datum/outfit/infiltrator/post_equip(mob/living/carbon/human/H) + var/obj/item/implant/weapons_auth/W = new/obj/item/implant/weapons_auth(H) + W.implant(H) + var/obj/item/implant/dusting/E = new/obj/item/implant/dusting(H) + E.implant(H) + var/obj/item/implant/uplink/infiltrator/U = new/obj/item/implant/uplink/infiltrator(H, H.key) + U.implant(H) + var/datum/component/uplink/uplink = U.GetComponent(/datum/component/uplink) + uplink.set_gamemode(/datum/game_mode/infiltration) + var/obj/item/implant/radio/syndicate/S = new/obj/item/implant/radio/syndicate(H) + S.implant(H) + H.faction |= ROLE_SYNDICATE + H.update_icons() + + var/obj/item/card/id/card = H.wear_id + if(istype(card)) + card.registered_name = H.real_name + card.assignment = "Assistant" + card.access = list(ACCESS_MAINT_TUNNELS, ACCESS_SYNDICATE) + card.update_label() diff --git a/yogstation/code/modules/antagonists/infiltrator/team.dm b/yogstation/code/modules/antagonists/infiltrator/team.dm new file mode 100644 index 000000000000..21bde00533a8 --- /dev/null +++ b/yogstation/code/modules/antagonists/infiltrator/team.dm @@ -0,0 +1,159 @@ +#define MIN_MAJOR_OBJECTIVES 1 +#define MAX_MAJOR_OBJECTIVES 2 +#define MIN_MINOR_OBJECTIVES 3 +#define MAX_MINOR_OBJECTIVES 4 + +/datum/team/infiltrator + name = "Syndicate Infiltration Unit" + member_name = "syndicate infiltrator" + +/datum/team/infiltrator/roundend_report() + var/list/parts = list() + parts += "Syndicate Infiltrators:
" + + var/result = get_result() + var/dead_as_a_doornail = TRUE + for(var/I in members) + var/datum/mind/syndicate = I + if (syndicate?.current?.stat != DEAD) + dead_as_a_doornail = FALSE + + var/flavor_message + if (dead_as_a_doornail) + var/static/list/messages = list( + "Well, sending those nitwits was a waste of our time.", + "I'm gonna drag you incompetent idiots out of hell just so I can kill y'all myself!", + "We gave you dumbasses all those resources and you just go and die? What sad excuses for agents." + ) + parts += "Crew Major Victory!" + parts += "The crew killed the Syndicate infiltrators!" + flavor_message = pick(messages) + else + switch (result) + if (INFILTRATION_ALLCOMPLETE) + var/static/list/messages = list( + "Hell yeah! Nanotrasen is gonna regret screwing with us now, thanks to y'all!", + "The boys in dark red are proud of you, agents. We're going to reward you well.", + "I'm truly impressed, agents. You've earned your place in the Syndicate.", + "Ha! I knew y'all would come out on top! Nanotrasen stands no chance against human determination!" + ) + parts += "Infiltrator Major Victory!" + parts += "The Syndicate infiltrators completed all of their objectives successfully!" + flavor_message = pick(messages) + if (INFILTRATION_MOSTCOMPLETE) + var/static/list/messages = list( + "Well, it ain't perfect, but y'all were damn good.", + "Good operation, agents. We didn't get everything, but not even we are perfect.", + "Thanks for the good work, y'all. Return to base and relax a bit before your next job." + ) + parts += "Infiltrator Moderate Victory" + parts += "The Syndicate infiltrators completed most of their objectives successfully!" + flavor_message = pick(messages) + if (INFILTRATION_SOMECOMPLETE) + var/static/list/messages = list( + "Better than a complete fluke, I guess.", + "Nowhere near the smoothest operation I've ever seen, but it was okay.", + "We did it, but we didn't get everything. We'll get it next time." + ) + parts += "Infiltrator Minor Victory" + parts += "The Syndicate infiltrators completed some of their objectives successfully!" + flavor_message = pick(messages) + else + var/static/list/messages = list( + "When you nitwits come back to base, y'all better have a damn good explaination for this!", + "I hope y'all like space carp poop, because cleaning it is the biggest operation you idiots are going to have for a while!", + "How did y'all mess up such a simple operation? All you had to do was be sneaky and not cause a scene!" + ) + parts += "Crew Victory" + parts += "The crew stopped the Syndicate infiltrators from completing any of their objectives!" + flavor_message = pick(messages) + parts += "
\"[flavor_message]\"" + parts += "[GLOB.TAB]- Syndicate Commander [pick(pick(GLOB.first_names_male,GLOB.first_names_female))] [pick(GLOB.last_names)]
" + + LAZYINITLIST(GLOB.uplink_purchase_logs_by_key) + var/text = "The syndicate infiltrators were:" + var/purchases = "" + var/tc_spent = 0 + for (var/I in members) + var/datum/mind/syndicate = I + var/datum/uplink_purchase_log/H = GLOB.uplink_purchase_logs_by_key[syndicate.key] + if (H) + tc_spent += H.total_spent + purchases += H.generate_render(show_key = FALSE) + text += printplayerlist(members) + text += "(Syndicates used [tc_spent] TC) [purchases]" + if (tc_spent == 0 && !dead_as_a_doornail && result < INFILTRATION_NONECOMPLETE) + text += "[icon2html('icons/badass.dmi', world, "badass")]" + parts += text + parts += printobjectives(objectives) + return "
[parts.Join("
")]
" + +/datum/team/infiltrator/is_gamemode_hero() + return SSticker.mode.name == "infiltration" + +/datum/team/infiltrator/proc/forge_single_objective() // Complete traitor copypasta! + if(prob(50)) + if(prob(30)) + add_objective(/datum/objective/maroon) + else + add_objective(/datum/objective/assassinate) + else + if(prob(15) && !(locate(/datum/objective/download) in objectives)) + add_objective(/datum/objective/download) + else + add_objective(/datum/objective/steal) + +/datum/team/infiltrator/proc/add_objective(type) + var/datum/objective/O = type + if (ispath(type)) + O = new type + O.find_target() + O.team = src + objectives |= O + if(istype(O, /datum/objective/steal)) + var/datum/objective/steal/S = O + if(S.targetinfo) + for(var/item in S.targetinfo.special_equipment) + for(var/turf/T in GLOB.infiltrator_objective_items) + if(!(item in T.contents)) + new item(T) + +/datum/team/infiltrator/proc/update_objectives() + if(LAZYLEN(objectives)) + return + var/list/major_objectives = subtypesof(/datum/objective/infiltrator) + var/major = rand(MIN_MAJOR_OBJECTIVES, MAX_MAJOR_OBJECTIVES) + var/minor = rand(MIN_MINOR_OBJECTIVES, MAX_MINOR_OBJECTIVES) + for(var/i in 1 to major) + var/objective_type = pick_n_take(major_objectives) + var/datum/objective/infiltrator/objective = new objective_type + if (objective.is_possible()) + add_objective(objective) + else + qdel(objective) + for(var/i in 1 to minor) + forge_single_objective() + for(var/datum/mind/M in members) + var/datum/antagonist/infiltrator/I = M.has_antag_datum(/datum/antagonist/infiltrator) + if(I) + I.objectives |= objectives + M.announce_objectives() + +/datum/team/infiltrator/proc/get_result() + var/objectives_complete = 0 + var/objectives_failed = 0 + + for(var/datum/objective/O in objectives) + if(O.check_completion()) + objectives_complete++ + else + objectives_failed++ + + if(objectives_failed == 0 && objectives_complete > 0) + return INFILTRATION_ALLCOMPLETE + else if (objectives_complete > objectives_failed) + return INFILTRATION_MOSTCOMPLETE + else if((objectives_complete == objectives_failed) || (objectives_complete > 0 && objectives_failed > objectives_complete)) + return INFILTRATION_SOMECOMPLETE + else + return INFILTRATION_NONECOMPLETE diff --git a/yogstation/code/modules/clothing/chameleon.dm b/yogstation/code/modules/clothing/chameleon.dm index 5df355e0dd8c..95b215ebc806 100644 --- a/yogstation/code/modules/clothing/chameleon.dm +++ b/yogstation/code/modules/clothing/chameleon.dm @@ -1,4 +1,4 @@ -/datum/action/item_action/chameleon/change/update_item(obj/item/picked_item) +/datum/action/item_action/chameleon/change/update_item(obj/item/picked_item, obj/item/target = target) ..() if(ispath(picked_item, /obj/item/pda) && istype(target, /obj/item/pda)) target.light_color = initial(picked_item.light_color) diff --git a/yogstation/code/modules/clothing/head/helmet.dm b/yogstation/code/modules/clothing/head/helmet.dm new file mode 100644 index 000000000000..791bbf0bcf90 --- /dev/null +++ b/yogstation/code/modules/clothing/head/helmet.dm @@ -0,0 +1,20 @@ +/obj/item/clothing/head/helmet + var/initial_state + +/obj/item/clothing/head/helmet/Initialize() + . = ..() + initial_state = "[initial(icon_state)]" + +/obj/item/clothing/head/helmet/update_icon() + var/state = "[initial_state]" + if(attached_light) + if(attached_light.on) + state += "-flight-on" //"helmet-flight-on" // "helmet-cam-flight-on" + else + state += "-flight" //etc. + + icon_state = state + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.update_inv_head() diff --git a/yogstation/code/modules/events/infiltrators.dm b/yogstation/code/modules/events/infiltrators.dm new file mode 100644 index 000000000000..804cac1a3ce2 --- /dev/null +++ b/yogstation/code/modules/events/infiltrators.dm @@ -0,0 +1,58 @@ +/datum/round_event_control/infiltrators + name = "Infiltrators" + typepath = /datum/round_event/ghost_role/infiltrators + + weight = 0 + max_occurrences = 1 + earliest_start = 30 MINUTES + + min_players = 23 + + gamemode_blacklist = list("nuclear","wizard","revolution","abduction","infiltration","gang","cult","clockcult","darkspawn") + +/datum/round_event_control/infiltrators/canSpawnEvent(var/players_amt, var/gamemode) + . = ..() + if(SSshuttle.emergency.mode != SHUTTLE_RECALL && SSshuttle.emergency.mode != SHUTTLE_IDLE) // Don't send infiltrators if the shuttle is coming! + return FALSE + var/datum/station_state/current_state = new /datum/station_state() + current_state.count() + var/station_integrity = min(PERCENT(GLOB.start_state.score(current_state)), 100) + if(station_integrity < 80) // Don't send infiltrators to a broken station! + return FALSE + +/datum/round_event/ghost_role/infiltrators + minimum_required = 3 + role_name = "infiltration team" + +/datum/round_event/ghost_role/infiltrators/spawn_role() + var/list/candidates = pollGhostCandidates("Do you wish to be considered for an infiltration team?", ROLE_INFILTRATOR) + + var/list/mob/dead/observer/chosen = list() + var/mob/dead/observer/theghost = null + if(!LAZYLEN(candidates) || candidates.len < 3) + return NOT_ENOUGH_PLAYERS + var/numagents = 4 + var/agentcount = 0 + for(var/i = 0, i[user] attempts to disconnect the circuit board from [src].
", "There appears to be something connected to [src]'s ports! You attempt to disconnect it...") + if (do_after(user,100,target = src)) + hijacking.forceMove(loc) + hijacking = null + hijack_start = 0 + update_icons() + else + to_chat(user, "You fail to remove the device.") + return + return ..() + +/mob/living/silicon/ai/update_icons() + ..() + cut_overlays() + if(hijacking) + if(!hijack_overlay) + hijack_overlay = mutable_appearance('yogstation/icons/obj/module.dmi', "ai_hijack_overlay") + hijack_overlay.layer = layer+0.1 + hijack_overlay.pixel_x = 8 + add_overlay(hijack_overlay) + icon_state = "ai-static" + else if(!hijacking && hijack_overlay) + QDEL_NULL(hijack_overlay) diff --git a/yogstation/code/modules/mob/living/silicon/ai/death.dm b/yogstation/code/modules/mob/living/silicon/ai/death.dm new file mode 100644 index 000000000000..d24d362d7e58 --- /dev/null +++ b/yogstation/code/modules/mob/living/silicon/ai/death.dm @@ -0,0 +1,11 @@ +/mob/living/silicon/ai/death(gibbed) + . = ..() + if (hijacking) + hijacking.forceMove(get_turf(src)) + visible_message("A small circuit board breaks off of [src], falling to the ground.") + to_chat(src, "dd: input/output error") + hijacking = null + if (mind?.has_antag_datum(/datum/antagonist/hijacked_ai)) + visible_message("A small circuit board breaks off of [src], breaking into a thousand tiny pieces upon hitting the ground.") + to_chat(src, "/tmp/ai-hijack: input/output error") + mind.remove_antag_datum(/datum/antagonist/hijacked_ai) diff --git a/yogstation/code/modules/mob/living/silicon/ai/life.dm b/yogstation/code/modules/mob/living/silicon/ai/life.dm new file mode 100644 index 000000000000..a3308edafb6b --- /dev/null +++ b/yogstation/code/modules/mob/living/silicon/ai/life.dm @@ -0,0 +1,14 @@ +#define HIJACK_TIME 2400 + +/mob/living/silicon/ai/proc/process_hijack() + if(hijacking) + if(prob(5)) + to_chat(src, "Warning! Exploitation detected at /dev/ttyS0!") + if(world.time >= hijack_start+HIJACK_TIME && mind) + mind.add_antag_datum(ANTAG_DATUM_HIJACKEDAI) + message_admins("[ADMIN_LOOKUPFLW(src)] has been hijacked!") + icon_state = "ai-red" + QDEL_NULL(hijacking) + update_icons() + +#undef HIJACK_TIME diff --git a/yogstation/code/modules/shuttle/syndicate.dm b/yogstation/code/modules/shuttle/syndicate.dm new file mode 100644 index 000000000000..4cf3ff40d40f --- /dev/null +++ b/yogstation/code/modules/shuttle/syndicate.dm @@ -0,0 +1,9 @@ +/obj/machinery/computer/shuttle/syndicate/cutter + name = "syndicate infiltration cutter control" + shuttleId = "syndicatecutter" + possible_destinations = "syndicatecutter_custom;syndicatecutter_home" + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/cutter + name = "syndicate infiltration cutter navigation computer" + shuttleId = "syndicatecutter" + shuttlePortId = "syndicatecutter_custom" diff --git a/yogstation/code/modules/uplink/uplink_item.dm b/yogstation/code/modules/uplink/uplink_item.dm index 3a08ff67c87c..8636d72eb7fa 100644 --- a/yogstation/code/modules/uplink/uplink_item.dm +++ b/yogstation/code/modules/uplink/uplink_item.dm @@ -116,6 +116,7 @@ cost = 7 manufacturer = /datum/corporation/traitor/cybersun surplus = 20 + exclude_modes = list(/datum/game_mode/infiltration) /datum/uplink_item/implants/greytide name = "Greytide Implant" @@ -132,3 +133,51 @@ cost = 40 cant_discount = TRUE +// Events +/datum/uplink_item/services + category = "Services" + include_modes = list(/datum/game_mode/infiltration, /datum/game_mode/nuclear) + surplus = 0 + restricted = TRUE + +/datum/uplink_item/services/manifest_spoof + name = "Crew Manifest Spoof" + desc = "A button capable of adding a single person to the crew manifest." + item = /obj/item/service/manifest + cost = 15 //Maybe this is too cheap?? + +/datum/uplink_item/services/fake_ion + name = "Fake Ion Storm" + desc = "Fakes an ion storm announcment. A good distraction, especially if the AI is weird anyway." + item = /obj/item/service/ion + cost = 7 + +/datum/uplink_item/services/fake_meteor + name = "Fake Meteor Announcement" + desc = "Fakes an meteor announcment. A good way to get any C4 on the station exterior, or really any small explosion, brushed off as a meteor hit." + item = /obj/item/service/meteor + cost = 7 + +/datum/uplink_item/services/fake_rod + name = "Fake Immovable Rod" + desc = "Fakes an immovable rod announcement. Good for a short-lasting distraction." + item = /obj/item/service/rodgod + cost = 6 //less likely to be believed + +//Infiltrator shit +/datum/uplink_item/infiltration + category = "Infiltration Gear" + include_modes = list(/datum/game_mode/infiltration) + surplus = 0 + +/datum/uplink_item/infiltration/pinpointer_upgrade + name = "Pinpointer Upgrade" + desc = "An infiltration pinpointer upgrade that allows pinpointers to track objective targets." + item = /obj/item/infiltrator_pinpointer_upgrade + cost = 8 + +/datum/uplink_item/infiltration/extra_stealthsuit + name = "Extra Chameleon Hardsuit" + desc = "An infiltration hardsuit, capable of changing it's appearance instantly." + item = /obj/item/clothing/suit/space/hardsuit/infiltration + cost = 10 diff --git a/yogstation/icons/obj/device.dmi b/yogstation/icons/obj/device.dmi index 41d39b67c3f9c91ac08a30f991194e8787c3e287..f2b9239705e960110dae2d0c1d03c247979aab99 100644 GIT binary patch delta 2239 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 Ee~Z*A@&Et; delta 945 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%0A8V&x9?l~m3ay2Pd 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
" + dat += "Shuttle Mass: [calculated_mass/10]tons
" + dat += "Engine Force: [calculated_dforce]kN ([calculated_engine_count] engines)
" + dat += "Sublight Speed: [calculated_speed]ms-1
" + dat += calculated_speed < 1 ? "INSUFFICIENT ENGINE POWER
" : "" + dat += calculated_non_operational_thrusters > 0 ? "Warning: [calculated_non_operational_thrusters] thrusters offline.
" : "" + dat += "Fuel Consumption: [calculated_consumption]units per distance
" + dat += "Engine Cooldown: [calculated_cooldown]s
" + var/destination_found + for(var/obj/docking_port/stationary/S in SSshuttle.stationary) + if(!options.Find(S.id)) + continue + if(!M.check_dock(S, silent=TRUE)) + continue + if(calculated_speed == 0) + break + destination_found = TRUE + var/dist = round(calculateDistance(S)) + dat += "Target [S.name] (Dist: [dist] | Fuel Cost: [round(dist * calculated_consumption)] | Time: [round(dist / calculated_speed)])
" + if(!destination_found) + dat += "No valid destinations
" + dat += "
[targetLocation ? "Target Location : [targetLocation]" : "No Target Location"]" + dat += "
Initate Flight
" + dat += "Close" + + popup = new(user, "computer", M ? M.name : "shuttle", 350, 450) + popup.set_content("
[dat]
") + //popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/computer/custom_shuttle/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + src.add_fingerprint(usr) + if(!allowed(usr)) + to_chat(usr, "Access denied.") + return + + if(href_list["calculate"]) + calculateStats() + ui_interact(usr) + return + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(!M) + return + if(M.launch_status == ENDGAME_LAUNCHED) + return + if(href_list["setloc"]) + SetTargetLocation(href_list["setloc"]) + ui_interact(usr) + return + else if(href_list["fly"]) + Fly() + ui_interact(usr) + return + +/obj/machinery/computer/custom_shuttle/proc/calculateDistance(var/obj/docking_port/stationary/port) + var/deltaX = port.x - x + var/deltaY = port.y - y + var/deltaZ = (port.z - z) * Z_DIST + return sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ) * distance_multiplier + +/obj/machinery/computer/custom_shuttle/proc/linkShuttle(var/new_id) + shuttleId = new_id + possible_destinations = "whiteship_home;shuttle[new_id]_custom" + +/obj/machinery/computer/custom_shuttle/proc/calculateStats(var/useFuel = FALSE, var/dist = 0, var/ignore_cooldown = FALSE) + if(!ignore_cooldown && stat_calc_cooldown >= world.time) + to_chat(usr, "You are using this too fast, please slow down") + return + stat_calc_cooldown = world.time + CALCULATE_STATS_COOLDOWN + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(!M) + return FALSE + //Reset data + calculated_mass = 0 + calculated_dforce = 0 + calculated_speed = 0 + calculated_engine_count = 0 + calculated_consumption = 0 + calculated_cooldown = 0 + calculated_fuel_less_thrusters = 0 + calculated_non_operational_thrusters = 0 + //Calculate all the data + var/list/areas = M.shuttle_areas + for(var/shuttleArea in areas) + calculated_mass += length(get_area_turfs(shuttleArea)) + for(var/obj/machinery/shuttle/engine/E in shuttleArea) + E.check_setup() + if(!E.thruster_active) //Skipover thrusters with no valid heater + calculated_non_operational_thrusters ++ + continue + if(E.attached_heater) + var/obj/machinery/atmospherics/components/unary/shuttle/heater/resolvedHeater = E.attached_heater.resolve() + if(resolvedHeater && !resolvedHeater.hasFuel(dist * E.fuel_use) && useFuel) + calculated_fuel_less_thrusters ++ + continue + calculated_engine_count++ + calculated_dforce += E.thrust + calculated_consumption += E.fuel_use + calculated_cooldown = max(calculated_cooldown, E.cooldown) + //This should really be accelleration, but its a 2d spessman game so who cares + if(calculated_mass == 0) + return FALSE + calculated_speed = (calculated_dforce*1000) / (calculated_mass*100) + return TRUE + +/obj/machinery/computer/custom_shuttle/proc/consumeFuel(var/dist) + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(!M) + return FALSE + //Calculate all the data + for(var/obj/machinery/shuttle/engine/shuttle_machine in GLOB.custom_shuttle_machines) + shuttle_machine.check_setup() + if(!shuttle_machine.thruster_active) + continue + if(get_area(M) != get_area(shuttle_machine)) + continue + if(shuttle_machine.attached_heater) + var/obj/machinery/atmospherics/components/unary/shuttle/heater/resolvedHeater = shuttle_machine.attached_heater.resolve() + if(resolvedHeater && !resolvedHeater.hasFuel(dist * shuttle_machine.fuel_use)) + continue + resolvedHeater?.consumeFuel(dist * shuttle_machine.fuel_use) + shuttle_machine.fireEngine() + +/obj/machinery/computer/custom_shuttle/proc/SetTargetLocation(var/newTarget) + if(!(newTarget in params2list(possible_destinations))) + log_admin("[usr] attempted to href dock exploit on [src] with target location \"[newTarget]\"") + message_admins("[usr] just attempted to href dock exploit on [src] with target location \"[newTarget]\"") + return + targetLocation = newTarget + say("Shuttle route calculated.") + return + +/obj/machinery/computer/custom_shuttle/proc/Fly() + if(!targetLocation) + return + var/obj/docking_port/mobile/linkedShuttle = SSshuttle.getShuttle(shuttleId) + if(!linkedShuttle) + return + if(linkedShuttle.mode != SHUTTLE_IDLE) + return + if(!calculateStats(TRUE, 0, TRUE)) + return + if(calculated_fuel_less_thrusters > 0) + say("Warning, [calculated_fuel_less_thrusters] do not have enough fuel for this journey, engine output may be limitted.") + if(calculated_speed < 1) + say("Insufficient engine power, shuttle requires [calculated_mass / 10]kN of thrust.") + return + var/obj/docking_port/stationary/targetPort = SSshuttle.getDock(targetLocation) + if(!targetPort) + return + var/dist = calculateDistance(targetPort) + var/time = min(max(round(dist / calculated_speed), 10), 90) + linkedShuttle.callTime = time * 10 + linkedShuttle.rechargeTime = calculated_cooldown + linkedShuttle.ignitionTime = CUSTOM_ENGINES_START_TIME + linkedShuttle.count_engines() + linkedShuttle.hyperspace_sound(HYPERSPACE_WARMUP) + var/throwForce = clamp((calculated_speed / 2) - 5, 0, 10) + linkedShuttle.movement_force = list("KNOCKDOWN" = calculated_speed > 5 ? 3 : 0, "THROW" = throwForce) + if(!(targetLocation in params2list(possible_destinations))) + log_admin("[usr] attempted to launch a shuttle that has been affected by href dock exploit on [src] with target location \"[targetLocation]\"") + message_admins("[usr] attempted to launch a shuttle that has been affected by href dock exploit on [src] with target location \"[targetLocation]\"") + return + switch(SSshuttle.moveShuttle(shuttleId, targetLocation, 1)) + if(0) + consumeFuel(dist) + say("Shuttle departing. Please stand away from the doors.") + if(1) + to_chat(usr, "Invalid shuttle requested.") + else + to_chat(usr, "Unable to comply.") + return + +/obj/machinery/computer/custom_shuttle/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + if(port && (shuttleId == initial(shuttleId) || override)) + linkShuttle(port.id) + +//Custom shuttle docker locations +/obj/machinery/computer/camera_advanced/shuttle_docker/custom + name = "Shuttle Navigation Computer" + desc = "Used to designate a precise transit location for private ships." + lock_override = NONE + whitelist_turfs = list(/turf/open/space, + /turf/open/lava, + /turf/open/floor/plating/beach, + /turf/open/floor/plating/ashplanet, + /turf/open/floor/plating/asteroid, + /turf/open/floor/plating/lavaland_baseturf) + jumpto_ports = list("whiteship_home" = 1) + view_range = 12 + designate_time = 100 + circuit = /obj/item/circuitboard/computer/shuttle/docker + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/Initialize() + . = ..() + GLOB.jam_on_wardec += src + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/Destroy() + GLOB.jam_on_wardec -= src + return ..() + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/placeLandingSpot() + if(!shuttleId) + return //Only way this would happen is if someone else delinks the console while in use somehow + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(M?.mode != SHUTTLE_IDLE) + to_chat(usr, "You cannot target locations while in transit.") + return + ..() + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/attack_hand(mob/user) + if(!shuttleId) + to_chat(user, "You must link the console to a shuttle first.") + return + return ..() + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/proc/linkShuttle(new_id) + shuttleId = new_id + shuttlePortId = "shuttle[new_id]_custom" + + //Take info from connected port and calculate amendments + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(new_id) + var/list/shuttlebounds = M.return_coords() + view_range = min(round(max(M.width, M.height)*0.5), 15) + x_offset = round((shuttlebounds[1] + shuttlebounds[3])*0.5) - M.x + y_offset = round((shuttlebounds[2] + shuttlebounds[4])*0.5) - M.y diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index e5225d3fcbab..bebc478c2a1a 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -11,9 +11,11 @@ var/list/jumpto_ports = list() //hashset of ports to jump to and ignore for collision purposes var/obj/docking_port/stationary/my_port //the custom docking port placed by this console var/obj/docking_port/mobile/shuttle_port //the mobile docking port of the connected shuttle + var/list/locked_traits = list(ZTRAIT_RESERVED, ZTRAIT_CENTCOM, ZTRAIT_AWAY, ZTRAIT_REEBE) //traits forbided for custom docking var/view_range = 0 var/x_offset = 0 var/y_offset = 0 + var/list/whitelist_turfs = list(/turf/open/space, /turf/open/floor/plating, /turf/open/lava) var/space_turfs_only = TRUE var/see_hidden = FALSE var/designate_time = 0 @@ -29,6 +31,7 @@ var/obj/docking_port/stationary/S = V if(jumpto_ports[S.id]) z_lock |= S.z + whitelist_turfs = typecacheof(whitelist_turfs) /obj/machinery/computer/camera_advanced/shuttle_docker/Destroy() . = ..() @@ -162,7 +165,7 @@ if(current_user.client) current_user.client.images += the_eye.placed_images to_chat(current_user, span_notice("Transit location designated")) - return + return TRUE /obj/machinery/computer/camera_advanced/shuttle_docker/proc/canDesignateTarget() if(!designating_target_loc || !current_user || (eyeobj.loc != designating_target_loc) || (stat & (NOPOWER|BROKEN)) ) @@ -190,7 +193,7 @@ var/turf/eyeturf = get_turf(the_eye) if(!eyeturf) return SHUTTLE_DOCKER_BLOCKED - if(z_lock.len && !(eyeturf.z in z_lock)) + if(!eyeturf.z || SSmapping.level_has_any_trait(eyeturf.z, locked_traits)) return SHUTTLE_DOCKER_BLOCKED . = SHUTTLE_DOCKER_LANDING_CLEAR @@ -228,12 +231,17 @@ if(hidden_turf_info) . = SHUTTLE_DOCKER_BLOCKED_BY_HIDDEN_PORT + if(length(whitelist_turfs)) + var/turf_type = hidden_turf_info ? hidden_turf_info[2] : T.type + if(!is_type_in_typecache(turf_type, whitelist_turfs)) + return SHUTTLE_DOCKER_BLOCKED +/* if(space_turfs_only) var/turf_type = hidden_turf_info ? hidden_turf_info[2] : T.type var/area/A = get_area(T) if(!ispath(turf_type, /turf/open/space) && !ispath(A.type, /area/icemoon)) return SHUTTLE_DOCKER_BLOCKED - +*/ // Checking for overlapping dock boundaries for(var/i in 1 to overlappers.len) var/obj/docking_port/port = overlappers[i] @@ -324,13 +332,25 @@ var/list/L = list() for(var/V in SSshuttle.stationary) if(!V) + stack_trace("SSshuttle.stationary have null entry!") continue var/obj/docking_port/stationary/S = V if(console.z_lock.len && !(S.z in console.z_lock)) continue if(console.jumpto_ports[S.id]) - L[S.name] = S + L["([L.len])[S.name]"] = S + for(var/V in SSshuttle.beacons) + if(!V) + stack_trace("SSshuttle.beacons have null entry!") + continue + var/obj/machinery/spaceship_navigation_beacon/nav_beacon = V + if(!nav_beacon.z || SSmapping.level_has_any_trait(nav_beacon.z, console.locked_traits)) + break + if(!nav_beacon.locked) + L["([L.len]) [nav_beacon.name] located: [nav_beacon.x] [nav_beacon.y] [nav_beacon.z]"] = nav_beacon + else + L["([L.len]) [nav_beacon.name] locked"] = null playsound(console, 'sound/machines/terminal_prompt.ogg', 25, 0) var/selected = input("Choose location to jump to", "Locations", null) as null|anything in L if(QDELETED(src) || QDELETED(target) || !isliving(target)) @@ -345,4 +365,4 @@ C.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static) C.clear_fullscreen("flash", 3) else - playsound(console, 'sound/machines/terminal_prompt_deny.ogg', 25, 0) \ No newline at end of file + playsound(console, 'sound/machines/terminal_prompt_deny.ogg', 25, 0) diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 11aa65c70b88..8b59f0e7fcc9 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -826,12 +826,17 @@ /obj/docking_port/mobile/proc/count_engines() . = 0 + engine_list.Cut() for(var/thing in shuttle_areas) var/area/shuttle/areaInstance = thing for(var/obj/structure/shuttle/engine/E in areaInstance.contents) if(!QDELETED(E)) engine_list += E . += E.engine_power + for(var/obj/machinery/shuttle/engine/E in areaInstance.contents) + if(!QDELETED(E)) + engine_list += E + . += E.thruster_active ? 1 : 0 // Double initial engines to get to 0.5 minimum // Lose all initial engines to get to 2 diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator.dm new file mode 100644 index 000000000000..0dc4bad7c4cc --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator.dm @@ -0,0 +1,388 @@ +#define SHUTTLE_CREATOR_MAX_SIZE CONFIG_GET(number/max_shuttle_size) +#define CUSTOM_SHUTTLE_LIMIT CONFIG_GET(number/max_shuttle_count) +#define CARDINAL_DIRECTIONS_X list(1, 0, -1, 0) +#define CARDINAL_DIRECTIONS_Y list(0, 1, 0, -1) + +GLOBAL_VAR_INIT(custom_shuttle_count, 0) //The amount of custom shuttles created to prevent creating hundreds +GLOBAL_LIST_EMPTY(custom_shuttle_machines) //Machines that require updating (Heaters, engines) + +//============ Shuttle Creator Object ============ +/obj/item/shuttle_creator + name = "Rapid Shuttle Designator" + icon = 'icons/obj/tools.dmi' + icon_state = "rsd" + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' + desc = "A device used to define the area required for custom ships. Uses bluespace crystals to create bluespace-capable ships." + density = FALSE + anchored = FALSE + flags_1 = CONDUCT_1 + item_flags = NOBLUDGEON + force = 0 + throwforce = 8 + throw_speed = 3 + throw_range = 5 + w_class = WEIGHT_CLASS_NORMAL + req_access_txt = "11" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) + resistance_flags = FIRE_PROOF + var/ready = TRUE + //pre-designation + var/override_max_shuttles = FALSE + var/obj/machinery/computer/camera_advanced/shuttle_creator/internal_shuttle_creator + //During designation + var/overwritten_area = /area/space + var/list/loggedTurfs = list() + var/loggedOldArea + var/recorded_shuttle_area + var/datum/shuttle_creator_overlay_holder/overlay_holder + //After designation + var/linkedShuttleId + +/obj/item/shuttle_creator/Initialize() + . = ..() + internal_shuttle_creator = new() + internal_shuttle_creator.owner_rsd = src + overlay_holder = new() + +/obj/item/shuttle_creator/Destroy() + . = ..() + if(internal_shuttle_creator) + internal_shuttle_creator.owner_rsd = null + QDEL_NULL(internal_shuttle_creator) + if(overlay_holder) + QDEL_NULL(overlay_holder) + +/obj/item/shuttle_creator/attack_self(mob/user) + ..() + if(linkedShuttleId) + select_preferred_direction(user) + return + if(GLOB.custom_shuttle_count > CUSTOM_SHUTTLE_LIMIT && !override_max_shuttles) + to_chat(user, "Too many shuttles have been created.") + message_admins("[ADMIN_FLW(user)] attempted to create a shuttle, however [CUSTOM_SHUTTLE_LIMIT] have already been created.") + return + if(!internal_shuttle_creator) + return + overlay_holder.add_client(user.client) + internal_shuttle_creator.attack_hand(user) + +/obj/item/shuttle_creator/afterattack(atom/target, mob/user, proximity_flag) + . = ..() + if(!ready) + to_chat(user, "You need to define a shuttle area first.") + return + if(!proximity_flag) + return + if(istype(target, /obj/machinery/computer/custom_shuttle)) + if(!linkedShuttleId) + to_chat(user, "Error, no defined shuttle linked to device") + return + var/obj/machinery/computer/custom_shuttle/console = target + console.linkShuttle(linkedShuttleId) + to_chat(user, "Console linked successfully!") + return + else if(istype(target, /obj/machinery/computer/camera_advanced/shuttle_docker/custom)) + if(!linkedShuttleId) + to_chat(user, "Error, no defined shuttle linked to device") + return + var/obj/machinery/computer/camera_advanced/shuttle_docker/custom/console = target + console.linkShuttle(linkedShuttleId) + to_chat(user, "Console linked successfully!") + return + to_chat(user, "The [src] bleeps. Select an airlock to create a docking port, or a valid machine to link.") + return + +//=========== shuttle designation actions ============ +/obj/item/shuttle_creator/proc/calculate_bounds(obj/docking_port/mobile/port) + if(!port || !istype(port, /obj/docking_port/mobile)) + return FALSE + //Heights is the distance away from the port + //width is the distance perpendicular to the port + var/minX = INFINITY + var/maxX = 0 + var/minY = INFINITY + var/maxY = 0 + for(var/turf/T in loggedTurfs) + minX = min(T.x, minX) + maxX = max(T.x, maxX) + minY = min(T.y, minY) + maxY = max(T.y, maxY) + //Make sure shuttle was actually found. + if(maxX == INFINITY || maxY == INFINITY) + return FALSE + minX-- + minY-- + var/width = maxX - minX + var/height = maxY - minY + var/offset_x = port.x - minX + var/offset_y = port.y - minY + switch(port.dir) //Source: code/datums/shuttles.dm line 77 (14/03/2020) :) + if(NORTH) + port.width = width + port.height = height + port.dwidth = offset_x - 1 + port.dheight = offset_y - 1 + if(EAST) + port.width = height + port.height = width + port.dwidth = height - offset_y + port.dheight = offset_x - 1 + if(SOUTH) + port.width = width + port.height = height + port.dwidth = width - offset_x + port.dheight = height - offset_y + if(WEST) + port.width = height + port.height = width + port.dwidth = offset_y - 1 + port.dheight = width - offset_x + return TRUE + +//Go through all the all_turfs and check which direction doesn't have the shuttle +/obj/item/shuttle_creator/proc/getNonShuttleDirection(turf/targetTurf) + var/position = null + if(!(get_offset_target_turf(targetTurf, 0, 1) in loggedTurfs)) + if(position != null) + return null + position = NORTH + if(!(get_offset_target_turf(targetTurf, 0, -1) in loggedTurfs)) + if(position != null) + return null + position = SOUTH + if(!(get_offset_target_turf(targetTurf, 1, 0) in loggedTurfs)) + if(position != null) + return null + position = EAST + if(!(get_offset_target_turf(targetTurf, -1, 0) in loggedTurfs)) + if(position != null) + return null + position = WEST + return position + +/obj/item/shuttle_creator/proc/invertDir(var/input_dir) + if(input_dir == NORTH) + return SOUTH + else if(input_dir == SOUTH) + return NORTH + else if(input_dir == EAST) + return WEST + else if(input_dir == WEST) + return EAST + return null + +/obj/item/shuttle_creator/proc/shuttle_create_docking_port(atom/target, mob/user) + + if(loggedTurfs.len == 0 || !recorded_shuttle_area) + to_chat(user, "Invalid shuttle, restarting bluespace systems...") + return FALSE + + var/datum/map_template/shuttle/new_shuttle = new /datum/map_template/shuttle() + + var/obj/docking_port/mobile/port = new /obj/docking_port/mobile(get_turf(target)) + var/obj/docking_port/stationary/stationary_port = new /obj/docking_port/stationary(get_turf(target)) + port.callTime = 50 + port.dir = 1 //Point away from space. + port.id = "custom_[GLOB.custom_shuttle_count]" + linkedShuttleId = port.id + port.ignitionTime = 25 + port.name = "Custom Shuttle" + port.port_direction = 2 + port.preferred_direction = EAST + port.preferred_direction = 4 + port.area_type = recorded_shuttle_area + + var/portDirection = getNonShuttleDirection(get_turf(port)) + var/invertedDir = invertDir(portDirection) + if(!portDirection || !invertedDir) + to_chat(usr, "Shuttle creation aborted, docking airlock must be on an external wall. Please select a new airlock.") + port.Destroy() + stationary_port.Destroy() + linkedShuttleId = null + return FALSE + port.dir = invertedDir + port.port_direction = portDirection + + if(!calculate_bounds(port)) + to_chat(usr, "Bluespace calculations failed, please select a new airlock.") + port.Destroy() + stationary_port.Destroy() + linkedShuttleId = null + return FALSE + + port.shuttle_areas = list() + //var/list/all_turfs = port.return_ordered_turfs(port.x, port.y, port.z, port.dir) + var/list/all_turfs = loggedTurfs + for(var/i in 1 to all_turfs.len) + var/turf/curT = all_turfs[i] + var/area/cur_area = curT.loc + //Add the area to the shuttle <3 + if(istype(cur_area, recorded_shuttle_area)) + if(istype(curT, /turf/open/space)) + continue + if(length(curT.baseturfs) < 2) + continue + //Add the shuttle base shit to the shuttle + curT.baseturfs.Insert(3, /turf/baseturf_skipover/shuttle) + port.shuttle_areas[cur_area] = TRUE + + port.linkup(new_shuttle, stationary_port) + + port.movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) + port.initiate_docking(stationary_port) + + port.mode = SHUTTLE_IDLE + port.timer = 0 + + port.register() + + icon_state = "rsd_used" + + //Select shuttle fly direction. + select_preferred_direction(user) + + //Clear highlights + overlay_holder.clear_highlights() + GLOB.custom_shuttle_count ++ + message_admins("[ADMIN_LOOKUPFLW(user)] created a new shuttle with a [src] at [ADMIN_VERBOSEJMP(user)] ([GLOB.custom_shuttle_count] custom shuttles, limit is [CUSTOM_SHUTTLE_LIMIT])") + log_game("[key_name(user)] created a new shuttle with a [src] at [AREACOORD(user)] ([GLOB.custom_shuttle_count] custom shuttles, limit is [CUSTOM_SHUTTLE_LIMIT])") + return TRUE + +/obj/item/shuttle_creator/proc/create_shuttle_area(mob/user) + //Check to see if the user can make a new area to prevent spamming + if(user) + if(user.create_area_cooldown >= world.time) + to_chat(user, "Smoke vents from the [src], maybe you should let it cooldown before using it again.") + return FALSE + user.create_area_cooldown = world.time + 10 + if(!loggedTurfs) + return FALSE + //Create the new area + var/area/shuttle/custom/powered/newS + var/area/oldA = loggedOldArea + var/str = stripped_input(user, "Shuttle Name:", "Blueprint Editing", "", MAX_NAME_LEN) + if(!str || !length(str)) + return FALSE + if(length(str) > 50) + to_chat(user, "The provided ship name is too long, blares the [src]") + return FALSE +//Yogs Start: Runs the name through the petty filter. If they trip it, it will cause the shuttle creation to fail, messages the admins, and put the RSD on cooldown. + if(isnotpretty(str)) + to_chat(user, "Nanotrasen prohibited words are in use in this shuttle name, blares the [src] in a slightly offended tone.") + message_admins("[ADMIN_LOOKUPFLW(user)] attempted to created a new shuttle with a [src] at [ADMIN_VERBOSEJMP(user)], but failed because of tripping a petty filter") + user.create_area_cooldown = world.time + 10 + return FALSE +//Yogs End + newS = new /area/shuttle/custom/powered() + newS.setup(str) + newS.set_dynamic_lighting() + //Shuttles always have gravity + newS.has_gravity = TRUE + newS.requires_power = TRUE + //Record the area for use when creating the docking port + recorded_shuttle_area = newS + + for(var/i in 1 to loggedTurfs.len) + var/turf/turf_holder = loggedTurfs[i] + var/area/old_area = turf_holder.loc + newS.contents += turf_holder + turf_holder.change_area(old_area, newS) + + newS.reg_in_areas_in_z() + + var/list/firedoors = oldA.firedoors + for(var/door in firedoors) + var/obj/machinery/door/firedoor/FD = door + FD.CalculateAffectingAreas() + return TRUE + +//Select shuttle fly direction. +/obj/item/shuttle_creator/proc/select_preferred_direction(mob/user) + var/obj/docking_port/mobile/port = SSshuttle.getShuttle(linkedShuttleId) + if(!port || !istype(port, /obj/docking_port/mobile)) + return FALSE + var/static/list/choice = list("NORTH" = NORTH, "SOUTH" = SOUTH, "EAST" = EAST, "WEST" = WEST) + var/Pdir = input(user, "Shuttle Fly Direction:", "Blueprint Editing", "NORTH") as null|anything in list("NORTH", "SOUTH", "EAST", "WEST") + if(Pdir) + port.preferred_direction = choice[Pdir] + +//Checks an area to ensure that the turfs provided are valid to be made into a shuttle +/obj/item/shuttle_creator/proc/check_area(list/turfs) + if(!turfs) + to_chat(usr, "Shuttles must be created in an airtight space, ensure that the shuttle is airtight, including corners.") + return FALSE + if(turfs.len > SHUTTLE_CREATOR_MAX_SIZE) + to_chat(usr, "The [src]'s internal cooling system wizzes violently and a message appears on the screen, \"Caution, this device can only handle the creation of shuttles up to [SHUTTLE_CREATOR_MAX_SIZE] units in size. Please reduce your shuttle by [turfs.len-SHUTTLE_CREATOR_MAX_SIZE]. Sorry for the inconvinience\"") + return FALSE + //Check to see if it's a valid shuttle + for(var/i in 1 to turfs.len) + var/area/place = get_area(turfs[i]) + //If any of the turfs are on station / not in space, a shuttle cannot be forced there + if(!place) + to_chat(usr, "You can't seem to overpower the bluespace harmonics in this location, try somewhere else.") + return FALSE + if(istype(place, /area/space)) + overwritten_area = /area/space + else if(istype(place, /area/lavaland/surface/outdoors)) + overwritten_area = /area/lavaland/surface/outdoors + else + to_chat(usr, "Caution, shuttle must not use any material connected to the station. Your shuttle is currenly overlapping with [place.name]") + return FALSE + //Finally, check to see if the area is actually attached + if(!LAZYLEN(loggedTurfs)) + return TRUE + for(var/turf/T in turfs) + if(turf_connected_to_saved_turfs(T)) + return TRUE + CHECK_TICK + to_chat(usr, "Caution, new areas of the shuttle must be connected to the other areas of the shuttle.") + return FALSE + +/obj/item/shuttle_creator/proc/turf_connected_to_saved_turfs(turf/T) + for(var/i in 1 to 4) + var/turf/adjacentT = get_offset_target_turf(T, CARDINAL_DIRECTIONS_X[i], CARDINAL_DIRECTIONS_Y[i]) + if(adjacentT in loggedTurfs) + return TRUE + return FALSE + +/obj/item/shuttle_creator/proc/turf_in_list(turf/T) + return loggedTurfs.Find(T) + +/obj/item/shuttle_creator/proc/add_single_turf(turf/T) + if(!check_area(list(T))) + return FALSE + loggedTurfs |= T + loggedOldArea = get_area(T) + overlay_holder.highlight_turf(T) + +/obj/item/shuttle_creator/proc/add_saved_area(mob/user) + var/static/area_or_turf_fail_types = typecacheof(list( + /turf/open/space, + /area/shuttle + )) + //Detect the turfs connected in the curerrent enclosed area + var/list/turfs = detect_room(get_turf(user), area_or_turf_fail_types) + if(!check_area(turfs)) + return FALSE + loggedOldArea = get_area(get_turf(user)) + loggedTurfs |= turfs + overlay_holder.highlight_area(turfs) + //TODO READD THIS SHIT: icon_state = "rsd_used" + to_chat(user, "You add the area into the buffer of the [src], you made add more areas or select an airlock to act as a docking port to complete the shuttle.") + return turfs + +/obj/item/shuttle_creator/proc/remove_single_turf(turf/T) + if(!turf_in_list(T)) + return + loggedTurfs -= T + loggedOldArea = get_area(T) + overlay_holder.unhighlight_turf(T) + +/obj/item/shuttle_creator/proc/reset_saved_area() + overlay_holder.clear_highlights() + loggedTurfs.Cut() + to_chat(usr, "You reset the area buffer on the [src].") + +#undef CARDINAL_DIRECTIONS_X +#undef CARDINAL_DIRECTIONS_Y diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_actions.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_actions.dm new file mode 100644 index 000000000000..9ee46638d41d --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_actions.dm @@ -0,0 +1,101 @@ +//============ Actions ============ +/datum/action/innate/shuttle_creator + icon_icon = 'icons/mob/actions/actions_shuttle.dmi' + var/mob/living/C + var/mob/camera/aiEye/remote/shuttle_creation/remote_eye + var/obj/item/shuttle_creator/shuttle_creator + +/datum/action/innate/shuttle_creator/Activate() + if(!target) + return TRUE + C = owner + remote_eye = C.remote_control + var/obj/machinery/computer/camera_advanced/shuttle_creator/internal_console = target + shuttle_creator = internal_console.owner_rsd + +//Add an area +/datum/action/innate/shuttle_creator/designate_area + name = "Designate Room" + button_icon_state = "designate_area" + +/datum/action/innate/shuttle_creator/designate_area/Activate() + if(..()) + return + shuttle_creator.add_saved_area(remote_eye) + +//Add a single turf +/datum/action/innate/shuttle_creator/designate_turf + name = "Designate Turf" + button_icon_state = "designate_turf" + +/datum/action/innate/shuttle_creator/designate_turf/Activate() + if(..()) + return + var/turf/T = get_turf(remote_eye) + if(istype(T, /turf/open/space)) + var/connectors_exist = FALSE + for(var/obj/structure/lattice/lattice in T) + connectors_exist = TRUE + break + if(!connectors_exist) + to_chat(usr, "This turf requires support, build some catwalks or lattices.") + return + if(!shuttle_creator.check_area(list(T))) + return + if(shuttle_creator.turf_in_list(T)) + return + shuttle_creator.add_single_turf(T) + +//Clear a single entire area +/datum/action/innate/shuttle_creator/clear_turf + name = "Clear Turf" + button_icon_state = "clear_turf" + +/datum/action/innate/shuttle_creator/clear_turf/Activate() + if(..()) + return + shuttle_creator.remove_single_turf(get_turf(remote_eye)) + +//Clear the entire area +/datum/action/innate/shuttle_creator/reset + name = "Reset Buffer" + button_icon_state = "clear_area" + +/datum/action/innate/shuttle_creator/reset/Activate() + if(..()) + return + shuttle_creator.reset_saved_area() + +//Finish the shuttle +/datum/action/innate/shuttle_creator/airlock + name = "Select Docking Airlock" + button_icon_state = "select_airlock" + +/datum/action/innate/shuttle_creator/airlock/Activate() + if(..()) + return + var/turf/T = get_turf(remote_eye) + for(var/obj/machinery/door/airlock/A in T) + if(get_area(A) != shuttle_creator.loggedOldArea) + to_chat(C, "Caution, airlock must be on the shuttle to function as a dock.") + return + if(shuttle_creator.linkedShuttleId) + return + if(GLOB.custom_shuttle_count > CUSTOM_SHUTTLE_LIMIT) + to_chat(C, "Shuttle limit reached, sorry.") + return + if(shuttle_creator.loggedTurfs.len > SHUTTLE_CREATOR_MAX_SIZE) + to_chat(C, "This shuttle is too large!") + return + if(!shuttle_creator.getNonShuttleDirection(T)) + to_chat(C, "Docking port must be on an external wall, with only 1 side exposed to space.") + return + if(!shuttle_creator.create_shuttle_area(C)) + return + if(shuttle_creator.shuttle_create_docking_port(A, C)) + to_chat(C, "Shuttle created!") + //Remove eye control + var/obj/machinery/computer/camera_advanced/shuttle_creator/internal_console = target + internal_console.remove_eye_control(C) + qdel(internal_console) + return diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm new file mode 100644 index 000000000000..6945c934279f --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm @@ -0,0 +1,93 @@ +//============The internal camera console used for designating the area============= +/obj/machinery/computer/camera_advanced/shuttle_creator + name = "internal shuttle creator console" + desc = "You should not have access to this, please report this as a bug" + networks = list() + var/obj/item/shuttle_creator/owner_rsd + var/datum/action/innate/shuttle_creator/designate_area/area_action = new + var/datum/action/innate/shuttle_creator/designate_turf/turf_action = new + var/datum/action/innate/shuttle_creator/clear_turf/clear_turf_action = new + var/datum/action/innate/shuttle_creator/reset/reset_action = new + var/datum/action/innate/shuttle_creator/airlock/airlock_action = new + +/obj/machinery/computer/camera_advanced/shuttle_creator/check_eye(mob/user) + if(user.eye_blind || user.incapacitated()) + user.unset_machine() + +/obj/machinery/computer/camera_advanced/shuttle_creator/CreateEye() + eyeobj = new /mob/camera/aiEye/remote/shuttle_creation(get_turf(owner_rsd)) + eyeobj.origin = src + eyeobj.use_static = USE_STATIC_NONE + +/obj/machinery/computer/camera_advanced/shuttle_creator/is_operational() + return TRUE + +/obj/machinery/computer/camera_advanced/shuttle_creator/can_interact(mob/user) + if(!isliving(user)) + return FALSE + var/mob/living/L = user + if(L.incapacitated()) + return FALSE + return TRUE + +/obj/machinery/computer/camera_advanced/shuttle_creator/GrantActions(mob/living/user) + ..(user) + eyeobj.invisibility = SEE_INVISIBLE_LIVING + if(area_action) + area_action.target = src + area_action.Grant(user) + actions += area_action + if(turf_action) + turf_action.target = src + turf_action.Grant(user) + actions += turf_action + if(clear_turf_action) + clear_turf_action.target = src + clear_turf_action.Grant(user) + actions += clear_turf_action + if(reset_action) + reset_action.target = src + reset_action.Grant(user) + actions += reset_action + if(airlock_action) + airlock_action.target = src + airlock_action.Grant(user) + actions += airlock_action + +/obj/machinery/computer/camera_advanced/shuttle_creator/remove_eye_control(mob/living/user) + . = ..() + owner_rsd.overlay_holder.remove_client() + eyeobj.invisibility = INVISIBILITY_MAXIMUM + if(user.client) + user.client.images -= eyeobj.user_image + +/obj/machinery/computer/camera_advanced/shuttle_creator/attack_hand(mob/user) + if(!is_operational()) //you cant use broken machine you chumbis + return + if(current_user) + to_chat(user, "The console is already in use!") + return + var/mob/living/L = user + if(!can_use(user)) + return + if(!eyeobj) + CreateEye() + if(!eyeobj.eye_initialized) + var/camera_location = get_turf(owner_rsd) + if(camera_location) + eyeobj.eye_initialized = TRUE + give_eye_control(L) + eyeobj.setLoc(camera_location) + var/mob/camera/aiEye/remote/shuttle_creation/shuttle_eye = eyeobj + shuttle_eye.source_turf = get_turf(user) + else + user.unset_machine() + else + var/camera_location = get_turf(owner_rsd) + var/mob/camera/aiEye/remote/shuttle_creation/eye = eyeobj + give_eye_control(L) + if(camera_location) + eye.source_turf = camera_location + eyeobj.setLoc(camera_location) + else + eyeobj.setLoc(eyeobj.loc) diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_eye.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_eye.dm new file mode 100644 index 000000000000..4eea6bfe8856 --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_eye.dm @@ -0,0 +1,55 @@ +//===============Camera Eye================ +/mob/camera/aiEye/remote/shuttle_creation + name = "shuttle holo-drone" + icon = 'icons/obj/mining.dmi' + icon_state = "construction_drone" + visible_icon = FALSE + acceleration = 0 + var/turf/source_turf + var/max_range = 12 + +/mob/camera/aiEye/remote/shuttle_creation/Initialize() + . = ..() + setLoc(get_turf(source_turf)) + icon_state = "construction_drone" + +/mob/camera/aiEye/remote/shuttle_creation/update_remote_sight(mob/living/user) + user.sight = BLIND|SEE_TURFS + user.lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE + user.sync_lighting_plane_alpha() + return TRUE + +/mob/camera/aiEye/remote/shuttle_creation/relaymove(mob/user, direct) + dir = direct //This camera eye is visible as a drone, and needs to keep the dir updated + var/initial = initial(sprint) + var/max_sprint = 50 + + if(cooldown && cooldown < world.timeofday) // 3 seconds + sprint = initial + + for(var/i = 0; i < max(sprint, initial); i += 20) + var/turf/step = get_turf(get_step(src, direct)) + if(step && can_move_to(step)) + setLoc(step) + + cooldown = world.timeofday + 5 + if(acceleration) + sprint = min(sprint + 0.5, max_sprint) + else + sprint = initial + +/mob/camera/aiEye/remote/shuttle_creation/proc/can_move_to(var/turf/T) + var/origin_x = source_turf.x + var/origin_y = source_turf.y + var/change_X = abs(origin_x - T.x) + var/change_Y = abs(origin_y - T.y) + return (change_X < max_range && change_Y < max_range) + +/mob/camera/aiEye/remote/shuttle_creation/setLoc(T) + ..() + if(eye_user?.client) + eye_user.client.images -= user_image + var/image/I = image(icon, loc, icon_state, FLY_LAYER, dir) + I.plane = MASSIVE_OBJ_LAYER + user_image = I + eye_user.client.images += user_image diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm new file mode 100644 index 000000000000..919b1f02211e --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm @@ -0,0 +1,52 @@ +/* + * Manages the overlays for the shuttle creator drone. +*/ + +/datum/shuttle_creator_overlay_holder + var/client/holder + var/list/images = list() + var/list/turfs = list() + +/datum/shuttle_creator_overlay_holder/proc/add_client(client/C) + holder = C + holder.images += images + +/datum/shuttle_creator_overlay_holder/proc/remove_client() + holder.images -= images + holder = null + +/datum/shuttle_creator_overlay_holder/proc/clear_highlights() + if(holder) + holder.images -= images + images.Cut() + turfs.Cut() + +/datum/shuttle_creator_overlay_holder/proc/create_hightlight(turf/T) + if(T in turfs) + return + var/image/I = image('icons/turf/overlays.dmi', T, "greenOverlay") + I.plane = ABOVE_LIGHTING_PLANE + images += I + holder.images += I + turfs += T + +/datum/shuttle_creator_overlay_holder/proc/remove_hightlight(turf/T) + if(!(T in turfs)) + return + turfs -= T + holder.images -= images + for(var/image/I in images) + if(get_turf(I) != T) + continue + images -= I + holder.images += images + +/datum/shuttle_creator_overlay_holder/proc/highlight_area(list/turfs) + for(var/turf/T in turfs) + highlight_turf(T) + +/datum/shuttle_creator_overlay_holder/proc/highlight_turf(turf/T) + create_hightlight(T) + +/datum/shuttle_creator_overlay_holder/proc/unhighlight_turf(turf/T) + remove_hightlight(T) diff --git a/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm b/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm new file mode 100644 index 000000000000..c64f643b6dc7 --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm @@ -0,0 +1,39 @@ +/obj/item/shuttle_route_optimisation + name = "Route Optimisation Upgrade" + desc = "Used on a custom shuttle control console to calculate more efficient routes." + icon = 'icons/obj/module.dmi' + icon_state = "shuttledisk" + force = 0 + throwforce = 8 + throw_speed = 3 + throw_range = 5 + density = FALSE + anchored = FALSE + item_flags = NOBLUDGEON + var/upgrade_amount = 0.8 + +/obj/item/shuttle_route_optimisation/hyperlane + name = "Bluespace Hyperlane Calculator" + desc = "Used on a custom shuttle control console to allow for the following of bluespace hyperlanes, increasing the efficiency of the shuttle." + icon_state = "shuttledisk_better" + upgrade_amount = 0.6 + +/obj/item/shuttle_route_optimisation/void + name = "Voidspace Route Calculator" + desc = "Used on a custom shuttle control console to allow it to navigate into voidspace, making the routes almost instant." + icon_state = "shuttledisk_void" + upgrade_amount = 0.2 + +/obj/item/shuttle_route_optimisation/attack_obj(obj/O, mob/living/user) + . = ..() + if(!istype(O, /obj/machinery/computer)) + return + if(!istype(O, /obj/machinery/computer/custom_shuttle)) + to_chat(user, "This upgrade only works on a custom shuttle flight console.") + return + if (!user.transferItemToLoc(src, get_turf(O))) + return + var/obj/machinery/computer/custom_shuttle/link_comp = O + link_comp.distance_multiplier = clamp(link_comp.distance_multiplier, 0, upgrade_amount) //I have no clue what clamp even does, but I think this should work + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + to_chat(usr, "You insert the disk into the flight computer, allowing for routes to be [upgrade_amount]x the original distance.") diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm new file mode 100644 index 000000000000..89e02920a732 --- /dev/null +++ b/code/modules/shuttle/spaceship_navigation_beacon.dm @@ -0,0 +1,63 @@ +/obj/item/circuitboard/machine/spaceship_navigation_beacon + name = "Bluespace Navigation Gigabeacon (Machine Board)" + build_path = /obj/machinery/spaceship_navigation_beacon + req_components = list() + + +/obj/machinery/spaceship_navigation_beacon + name = "Bluespace Navigation Gigabeacon" + desc = "A device that creates a bluespace anchor that allow ships jump near to it." + icon = 'icons/obj/abductor.dmi' + icon_state = "core" + use_power = IDLE_POWER_USE + idle_power_usage = 0 + density = TRUE + circuit = /obj/item/circuitboard/machine/spaceship_navigation_beacon + + var/locked = FALSE //Locked beacons don't allow to jump to it. + + +/obj/machinery/spaceship_navigation_beacon/Initialize() + . = ..() + SSshuttle.beacons |= src + +obj/machinery/spaceship_navigation_beacon/emp_act() + locked = TRUE + +/obj/machinery/spaceship_navigation_beacon/Destroy() + SSshuttle.beacons -= src + return ..() + +// update the icon_state +/obj/machinery/spaceship_navigation_beacon/update_icon() + if(powered()) + icon_state = "core" + else + icon_state = "core-open" + +/obj/machinery/spaceship_navigation_beacon/power_change() + . = ..() + update_icon() + +/obj/machinery/spaceship_navigation_beacon/multitool_act(mob/living/user, obj/item/multitool/I) + if(panel_open) + var/new_name = "Beacon_[input("Enter the custom name for this beacon", "It be Beacon ..your input..") as text]" + if(new_name && Adjacent(user)) + name = new_name + to_chat(user, "You change beacon name to [name].") + else + locked =!locked + to_chat(user, "You [locked ? "" : "un"]lock [src].") + return TRUE + +/obj/machinery/spaceship_navigation_beacon/examine() + .=..() + . += "Status: [locked ? "LOCKED" : "Stable"] " + +/obj/machinery/spaceship_navigation_beacon/attackby(obj/item/W, mob/user, params) + if(default_deconstruction_screwdriver(user, "core-open", "core", W)) + return + if(default_deconstruction_crowbar(W)) + return + + return ..() diff --git a/config/config.txt b/config/config.txt index e2f736b11a2e..964dfb7c07a6 100644 --- a/config/config.txt +++ b/config/config.txt @@ -445,3 +445,7 @@ CENTCOM_BAN_DB https://centcom.melonmesa.com/ban/search ## Uncomment to disable hard deletes entirely, even things that explicitly request. This is not recommended unless you have a need for it during events or other high pop times where performance is key. #DISABLE_ALL_HARD_DELETES + +## Custom shuttle spam prevention. Changine these numbers allows you to change the maxsize and amount of custom shuttles. +MAX_SHUTTLE_COUNT 6 +MAX_SHUTTLE_SIZE 300 diff --git a/icons/mob/actions/actions_shuttle.dmi b/icons/mob/actions/actions_shuttle.dmi new file mode 100644 index 0000000000000000000000000000000000000000..399f50941504776390a319835b29aec781dc5b90 GIT binary patch literal 4028 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 diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index f232e01217cd28e8611fc153cd399bc7e64e7723..062b2458c66d5cebcc342a4d0cdba0ab9eb75ddd 100644 GIT binary patch delta 4990 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 IM6N<$g6z29!vFvP delta 3886 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

7w(|-9uxc;?2 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ⅆ-!`obrno4*0|uWK&h$}uqdx=I_S4D1HqNI^qgK=s>VM;~A|JNS|S)j1pe zXm=$byq5U7cpyXvtYEzJdYyiv?2tkR z?MJaH)OI*rjcsow`)|n2&ARt%%!V67>0&pMO*(Ru&-)?NSYD=J;xsd+T4p^08Q}>C zR`BLcWH;cpl!9m|1Z!shE<8XA?RntrT zd*e)iJXn54eWY;}Stm;K!{AMqSG6sU6-@{7Wt(;5C<_X3?McjIJTW!P%lAqC8v)Jh zp9b$Z_)>#t<5Z=h6)Q-FsJ=ZMHGHXTNREk>Nn5z*KLeRlZlY4XAeC%N(HYY)=PtmK z)N=18$DT<=LZl5L>PGfbOTbJ=9M|gwQ>&DKO)7B+t=-zmS8b?wtQX68`vQ>P(SH(o zZJ*vg@G=ky`*X6I{ghVm^ixem#XM^|K!qMe`uY#|%g5O%`r*cGv@fL|rRYvLR*X9M z6smj?1VSBt5;Lz8p0aGNF)~;zp#5Dtm}f1|`t#$1hyh!2KiwWULw#V&5I*$a*PZXE z5vUB^`ZG3pHfk`JlPdO(6u}@T*SeoKchaf14`xne&q}lL7(Vj_X}cJ6WV8w2gjKtH;WOE{837^eoi!}aBYQSg_j5FyY>M- zZIj1kj>t2qqN%xTUMYS!Kk~=P)VM%E~NY4q5kw&-Sq1>k#2>Wo-9OWH) zPMOYlK1Mf5Bj#P*Q35-JB=(s8@lHL?AO**WnuyK-^<{g#E`hBS=tvw$28?k3eJ<-m+OTaEM|^ED#S9!W>E{a5PAgscdrjC zK&(9apA!eclp_I}Mq0|85EU-26Y(L)iT4{$Fv(9#3#M~&+^bM=nZr|Tmv(Z0J*`eb zLe1OXu14%H=wnLA(6G;B13eI%U_>^w5o|dYg%F`)-Y%Gw~_B^7s#($28-m_Yr8*A_H-%~nMA zyNl3^h~rG+e#x@WdPp)boI)T%-ef(b%WLakiuGdF(c>ThJ#}dgM^3J9@*>^^M{6S_ zHM!NknNjjcK?}_iO95iS>gK-YZ;vKM7Av7SRZ?)iLUl6MrIJWVDux))i`tBeH1LP} z5A5FmH|1II;NFby?UN5Y^*aeq&xK^IvTJOaR#Bq>HUSsM@x0^cCK;UcB_wwKl(|uD zL1W@*&qgx-WaE84oe6zR!fG7pb#)4EOu|l{j%M@v{?YN+Q6~8pezzZq;3WR`JE=y^ zMd6Ai^VWw#nWUWd^K$Ud@29uyjKAXzbW;cz$;v_!v*%g#Iqcu;?LbWZ?gJ`$Z_bbM$FCY@ z6DN3SL@@6^I~HBv?=F1PtiT5mo$4p8z=;hmEF@V++%Y@}o5gGcNtWNz zPQ<5cN1{1?GUeWa~iu!L#StAm%{qf;73JTXP~`H|UnzIpXaYR=XT0YV1G^465vA#b5m zrxI_X`8QYs*5#zmjR#cUbGp&Bv8nM&z`#2TjSGxIkTxhUb_V7PNNT^-UZ_xY{}#_8 zO?desooblLW3{7Dn^OeXW&b-gA#i|CG9=Gon8kaHJA(Sj+-iJ~qU$wcj3+Y2I|*E? z_8VKWik`Kj%Y>X|B>>I`YU$l$KZ^l6L%rC(_3B%2?<)HxBcvW_=@=93OG*FB{1`)`_G%u)w-D4r065Zjnm++u~&&B%>K>n z-z+F?bgEVrGIER=u8LfY$YcV zjxpvMV~Gf~t_>=(ET-dSX<%SCzmqV1dz))d1TQv~=@Em4*Eh;j~b zQqKz{_Y&9F0PZIK@)$^p9I&2{AzfAVCy*@6i|3H z@o#5=w|mO4UYg4FPV`hSJ{mpU7&^9FnskN=#owm$-jZv4WKEOm=00&2X7MY<(S}}O zETKaEnP-&Sj1u|>$VGTg+bg~sZ8>}2diX3AXl$n|=&F_PPyX495*0O>n5o_uVt^8E z*`B4U9lo{BrvD2Tov>et7NTeN!Xi^8TJ>lKF(3y^zT(blVhDJsaL3bA_FsL(ayp+>zLSM!vu>vOnOxe5D3fy&PTvmr?Kg>!;)6+b3{d4yo?tNn&t5Sad-infcb?hy_JJ z(WIj+)Q}Gru;wE!ib=AnM(TFrmfoQPPJ2><^>wCJ!5&x3h(4$T?O?j{ii&6Hqo38L796~FTNun4)M*BZAk9B}z9+dg3aeK6 z_5AdS(^6UNt)5ca=FEj(QNo(xN&1IAf_J$XW`(m)Q0@npiB8mm(Hz{;DY`GL9Xn*;|C{>oFjNQ}XrNfrU~>0r zKH2=fJ+Nuu1#VaD1$>$)<`X(0zxvTe zxIy>`h5RN*Ga|Gvo&A_$Byg4JejDqZJadI|>>KM}#)k@qjwj~PJB}qe?<28?* zqj4(r)(753iVM0=y%ku{-ZL=D-t?+@wH0z>2oHexKx2;0O%UusT+G~S%ga~8M2vh! zYLG?^MR#hXra90^dFVsah;XhQp-*IHBt`BdtlAW>$DE;8^z4&Q)vg5dU1?PvSF+Ig ze>&-|i_1>b#y%*F=2!s?iaNjFx&YF(n@vjJW@tXFZ~mV869QbI?rjVmzjbUg=E)PS z(U&L+&7frDt?AVehV^3NnIq6svV!3;?&G&6tu#gR(!8G92xo?8MB{j-DD(G?j+F?q z*LKV6(kg+>XXsf5XVcI(a$|OAHioQn%^c5;&E(=O4!@*}{TrGZ<~($&@oL+hIRtm3 zu`?SS3jAxdz=R{~0;5n(bwBO(2=)j23m<3e@F-0i zBJj;C9||K~`%44@&OurnVWt#Nbn;rBqFt`o$6VNVe1yQl1h<~d>y4Z6h&u;M+I-v2 z2KkA+tpA-JCi$N0NOELZxMyu9zfb@_tXeLoE~)1}>i@6+={U^n$sJ(#v>fz(tzlC_ z^oai+vLoz|2I-3!zEC?Ucldg4wGN;7gDGia=qT`0ZwM6g#kVE^uQg37+@E|D z0?POyLmoqY!dyLs`ShPw9z!J-5UF;5WiRDqbhm?)49l_ z^s>piOqxs8KRn`OVg7`n7p_Lm3S4hk0^BYd^OxKg%SkefQA>wIenLlh3l^(EPCa6C zsco7Xz}BkBgYyno8OXo@?V~2nT=?0m+J@%j0o_re9}%Coxj^ds*+p|0FWm%1GFhJr zHA*Lu)YHt5JRBc_l<()S3m`motSGhjix(&KSL+T(z!$0$i2jNgH0P~Ue@|f|8@OkS)*h!+`tIx5(y14po;LzDaZw}L5%d@t9InDZz`9fS1FtUhr2$u$5QKwwmo}?_M`z|J(H8ELTxH7 z?Mp{HP?KkmNMot8QSbF^QGfx0?ev&j{^#;(nKO80+sl4z(`U!dD2gsV8 z9D(u2zF0NPSPB%L_y~)h=*7zo!Djpr9hnk3i1$u)H8pQ+O1})^Oj-w7+dM|3>YCy< zRhPiF3?kSKzf49bc8~Z7xZdPwl+1ewx|k|uzk2nw&^tNs8m9)683TokXYIwFdZ4fo zwRCDz-pr1u%jqFF*KzB;s=<^!0=-k}^u@xDi!elt^ZK*K_?Ii^n30A!MtTa&4y(18 z1TiRQ(rF%FL3Qhcp*G#neH?rJ_zHYr!812X9U{hvxX{hXQ0);8M5@)R-2rO9{8HH+ z9hO&h+H9`6L`L(mGY08RPW?A{d0c%%HW6n&p~u7^D6#ZH?B)V``2cra=49U}S@zPD zFB(Zy{}z=htdp4Ai%g7AD|fC?OMP-pChZ~JpTo|%2@y4I?NcS%B}2L?$PMlVZ8YxS z>A8SuW939Gn26Q6{dy3)60#a+u1!%ys72(Vbhx)HtYdXo)h@F8#i_D$u*DQAIB7pv zs==5mg>p~qedx5?b9Ze)iA1i5K5u7=4Z`Aj-bIpLt!Cm3$(||#9ZZ$r9WbPBCfrsR zjtxWdge7Gn7m!z|BY_xWRE8L)ewu>Xy{MI^#O2eVQ|v_Imj6Z zzH9GAL3RI~cxbci##IZVmM>7WIVD@pUWuA(M&DILe`8G(5!t3aBSXbq{Ie85aZOiA!&tdXED`w5DkWRmq$pb*8ZTV{G-LN!0IKQSUP# zdmr{v(mOW83Sv-_;{5WgXD4E+Ig|_R9$mn01jP59ZEE|fFXS4l+NIFG@rYF_d)N&8 z#b4vf9a0NeY=)nExX#-zTQyp$%G{}K3e!qkMp^Y91-*?f1sca(F^|Wrieke$@VOs`_fEA5lG2eZ$ z_2{!yMExG|(C6dqo?Z?yW;&)~QrsgiI&YqNtTkK{v<%n;)HwE?`S}@{F24}EObnvr z@1lp{(V*RER{BF=4kXCPE4a8#&!gEM9r>a@$y#qxA}udxs{C9G_IYN}nxM@ph`2Mm zE62^!`VlQmI-)JDv|jyJ=*QOSM#>4%ybe$+kR_NhX>Qd$mNe>iH`W<$e~>32%zYV^ zfk6TvZC;qxZRezROg%|n2_Q5Quf%YE^|sM^-B3{>_mzNYZPlhVO{|{-Z>$&-I=%J( z-2;lXprT$p;+Y*$@A8C?E&WAVmFNU!rpf#KAn1I}uwU?#ba~waGb#&SEsB>N|FVmE zf>Xs5BgHgq+IkeM*1E6MFSj_`KL6CDsGfD<`>c)58`Vwml)?^S7#SF{(VjZu$liaC z{~Oh|P$;sW1f#}&k^eYTCiT8R>zLg}*cj&h7NOmjGyV}4hgXq?KK$F-J6x%|cJ3co zPoGb9a;cc=m=QyMg}x1@`0M~MX`}!Hx5|W*-dKCAnsKmxcG9(*KHe@?HL`cd%@1XU zkLj2ZOp8aCfdkAZ08qGa{OFC1vM%lp@_Lb=m>0jw-tQO%y4ha~Yjp!GI*XaOgz)_^ z74JSKrk4^rdMWJ>Xi4+@qzz?ClM~dus*cJTJwbk;wtHXd*GM~f;G4}T9KZQimZgB? z#`Lnr?}KaoGiffD8(rh)#1RS1@&j;=n9YT-SA!%U(UsF00bdY$106iyndDQ2Vm2j+ zwTD>l8bk3`+Sbw@Ta{QC#+zh*3R9ng20bO=E5;b+s$9~XR=mU=3aS1!U7kQE9Px}< z{)N!nO~%;a^6KV!rCac1Q+DWt`A0(f%Gng3QG42j>!>frC^y?*4W@uz^j?oeW_|`kYwfn zfYrd-6i$AF(p!N33$4Rs)X-QP*AwQQ>cwJu3MwastWG>8AMWLYW+FQU%(Vajb#sf* zApGZZ|6^}wCp0g>P416H+keTX^+(u7YkixCpywx>QxI;bN;Wcu{7lrBFw{^;c@B1c zyvGJPKSYjA>`Wh*@GNjWIcNLf?^-VIh1-!85E$mrL(#}FMy4UO1sMnOn4wTwlXKz> zvi88~vCm|!dhauCzNMT3-9XRTCeV@WKE;fyje9#cAvMZfE(T?8;z5H7z$X@8tu9Lq ztVwgToa@v3^NokGps@8vf^_(}w{XwqLB122C)sb+O3`u|CGKL zilY9m7$+_Dw_VCqY=tBd(y(xo53|HGV1pXw+`1Oh;<{-)%#bmwAu@nig$6l zQEL);-BxCQ=&iAIRD@2&0C=*Zy8HV?B=b-mM9eMpEey`op$k;7&S`YZe2V}81eko^Kkq_`)Z01oJf4NPtmu6X>2CvXTh7-&p$|KtE3j*uE66r_cJv*u!0ktuf+ zCAcv?`vU+xBiOhfdOQZkfya?727v1VSt1hn3kr(S%YinqTFAFC4AYkcPi5$d14EHD zOl>u5-TK4^0w!d`#w1CToVyrYLsmQlim-V!d+M5YYyHmS`ST4<{-M+Iec7TC^0#kS z3MaM;RaA4}P|bcsXxRHsGYqR?BN-?MNFZ^pp%Ff?Snf*(~a9Fa_r3|uFk2kYK z>nZr%co%J-ieg@dn02`RXcMr+zQ6&)K;&JFQhFk}Sxb>(Yy7x~m%rXVkbugPvEoR(5`QA@4gI&r{tlg|f-D};sJ{Z@eswm6RLhUd zrJ7f|*V`O{P%4(HIZJzX5L=w#8#R@s_v>7@Y*KIhSA3^M*_QqqO$!lvYu`_^MgBas zFYzw(?B$i{eM%st(}K4$BzT1fE_KTU7Z9qP(%QAoI2Qb(2aiaW(4*M5%!r6$4SYqyv z)~FrSAF1>ihJ3hc`BLg$8A??4X21L{k1Ry? zLcYa^bm&Oh2jCtnX(p!GRt4xiy6}K6rW?6#k5MS*k#Wa=spg;8=FT!KYUmSomJN#< z%rqAstKQ(x)Z=}TD7`5aJDpMU zUp+FY{3K{GUaHi>F{Bdksr|PqYIC!wad+`zN?<(2b*uUc?s}mLJx}G>-T%9JFfefI zzwaGx45&r|bUFir^&K)_S1^0QZoY}~(^CxK1W_czQum`5QeNfc6SY0MWpfI@72}Bt zY;*sxITrym+?%NX+Qj7ba01aoy%-D`+YDb4a44Micyzgk7K>$Lpu>1?hau7djhVJp z-1^0`uqpK{lMJp8lMlLbF&vA9lvgOI$j6r99v>okUW`&G1)vvBCD&#B&9Egh zB@#*_YFP)CdXkA z$I30mkP;6q4^NFigB^+#TLO>pA?HO3Ck&A$>46dV>l0?xn-9AMn}0XkmP}Yqj#5*VA(;}0@u}jiQ zOP?d}ClH{ouTx*UU@-$zh~fw{D10j_8DH^>x9=Yt^wh$l)FrAawDiz_BU*z$nBhc? z49w%&x|5~H+b}o!v9i)Ru1Q?do}cRW*Rj&L5)Cich`rcTy7;n~4`*{Yi7um!<*%@? zSC))FrJ+|5!*~3_H(?`?dT~lE`WU)%mYr&cg*E5XZZX@&)mcHv79_LtbNRZ{OtzBx zgY5mostfV=MJ1Yzdjn9-k_jU$NnL#IY3}Fw?{p`lj$sn$GMkF;H$JdvceH4;FL|!M zf-}dD*cP!VOb&nbG7L=$F=Ef`&HYbDRJi){ys^#CUReeTRbU%kZOXuHaSLn>-a4HP zso0E^;}g7$%Tsj8;Yn?qKh{!>=Ne%!RHgcG5t$Xm__ZrY<1LYef`-!+v!RyB{{WPV%C6wIDBiOyucU6wDoM zb%?l)IeQu%Z}qk$%UIG2TMTw@8+VD%02kw7oj>AE+rv!lf`Yt0-FnGB5v?j~p43}J z*P9kwZnSChL3<7F(=T7(NHvu7srBl#=Nb+6NvCVQ*cI&5SOO3~sT1Pr;qe3uUs}2a z;3Bo>V+qmhjr!5BTJN5y+NMrzrZ-ggz8r~`al!)FF(wEl>7XN2} z8@wFp^;FoKMi{Dp-2Bzjb&?5B>^M*?9s zB$ZkS0XMf4c1%oK{tn=znyPJWZSCP#kMu)i zw`ryZlyH-IH87X$!YmykWQ6O(;)#DOHx+UPIifWhGoII%J48W|nvq`R440$*8N1fl z@LJ>P55+=SRoa3!y46R+`?eye?qTK3N1K@zPu>}FNSF1Tls@a=ye|zx(=rH6bvvwK zm-VKbo7=rsCLmXFy7Q$8BdNmc@=n`Lf`Fmt!7pwcwm!XT4cRcL`W&pFmY&fCzASF$ zgPePhC2kSKZ`2R*5j70Ct#jnVU*WmRI6dC6G>`ux95jC4Jl;-U^4c78a8P>jbi@v+ zTTn2XQpY2BW3#Qff={nq-Rr$9BC7=JpG8&)aoT;pj`g^G_>^Z|{=EMgC$4L9Q=0`A zzr6*WwD2FrjBEoe9d1&0BX*^8ANW4RQ>E6R{!FTjm(=E9Kez$0zrXm)#cz4pQ21yO z1X^}!!opq<3#`@MRXy;P;rely} zWyJP8<5cqd*

NXteC`>z$j;b;pj-rx#P3QsR1_b2Q4|Sscq*BWDDj#E9NOT}K_m zK`{AG?90XVqcw4J_5MoSC6Q`aspn*wEzzh9{=F088Ua|255l83pFC$$@zd3F=#n~f z-t-5~>bZ~2X~>NsgQq`y)4E_{kbIN~!x>q9(Tq+tYQ04z$M7?dxUEV*Ni3<)GJjd7 z2s56E?N-DT4pHO)*HqA)!ea6q7Vk-?*>8duy&=zl8OPXUQ)3-oox|!$ViITnQmAKj zHo=rz`embj986xa>H>))OaGxW2W7wKJ~E+6k8dITfZ*dh!XGZ8Y#%D#BaQ;zthsX> zOcN15Bd@o%pBCbB!@(NGGkzcWdQetEi5D`}Ai&XpY4LT$W^w z%G^r4#vLgc+I&fEX@e_z7#@G$Ym({zSPq%=3i1E1I6$KC zp)ee1#Gv`TDH!w?{r$G=_WeD0-JKcCuAt$~f%gv*yxlV~=Ecj~9&zk`C*KcVm3 z{qYpf;_Rs*_}_;0<7c|^Zr-oA*R>~vL#UbWpvFHN8}?|dOKUMgq(VTU8xScDo@OqF zsWoQW_X))Y&BmuR`vaj934=?jrf|0Q-J z)>xit-lD2~m=!jovsOdhjt7mWhsQN&)xB#r|Ha(>@IsZ2!zLt=``X@!Z+%ux8_ zDf?o6IP+0#OsY2G8>x+_Xe2XtKnj**yIXUN6d_x28o<>u0%gk zaqo9u$=XV{^eG#RULFh7z0zikI(Ga4FU@FjuLV8vSjX-Wx;Fg=&Q>{ncaJ&e;0k1+ z(2u@I%{{Xy*fUAx)t#HYVD*8BNlIdBYAUg(H4=CqV@9K3GH(ke(A);fun#f z^)^>}Cn`0>LixrzR%~g)mPh0u#=}sz^_sb9=l)l*P$50*rX(t>EIw)+iV6 z^}6_O`;EZQ;`z;Wc%$Ri^;LcG;`v3Z%-ELaUnmS2r;Z}i7*X0hufqL+5xb5?c62_b z)dD%V5mw*-BE+6K+I;&}q<{nJ_}uubFEa6XksGC_?G(eGBxb0VH@sJmBH_iMjw+o4 z8Q_k|t&H5D{X69o+vQ~fAPEr;hJu8^9esIbjUvn!p-UtQvY-dGddtpriPOG1_E;8e@vui!|%y8DpodRu{%_) zGQW;_gt8EBD?MV$HDU`cUqcG`p@Le`HixiCv^QHPwEwHBuM5!upTHMRNoP z@M@zJ6jTSn_}{mX7%2KZ>bo@u%AyCMnt|4t9u2gSwJiJn40Jctp|0SpkGY;RM&A34 zihy1VDd8aUenKys7a!U{trUWf9&+hRRug#d5p=q5yrxB7=}#ynqldl{ZH;EXWZr-` zA`-zec%clcV}epAB|KRH(l+FzJ^aaGE+`p}NuCsz5}DGcdkXW63c^o;c2S|5gHOS$E&?)6Q2L-t>1gtO|WFR#L6 zB!J<%x4%XUQBbDOy^0i#Iwsyg<%ys~pP!hZS|o5F8dmC1Bvw*{n2s>9$yzg za*={p@5{yXki8$`uWNjDA3O;`F)>J{sTTtsjaykXMHtS;L7<>|xcQDY3D5vcomyxA6+hRl)&|@+f5yYllbI|poqv<4Umxx zcAB+&*#N3Qi_s|O%KTd1qQo2~>Ct}bv}LH9j}hp6P~oli9u>PG9dRywv#`4VSy=7K z7qn5&WpSr*F&oYU`|1KV&)j1O1GjUl%qlZ~hcz9j9Rb9m`46#l{6j3yj`5zd8=Nwi z%*0b&2u~T$ts>KJfQwBF`Z1b3DoY<=jGH}^_W(kl&Cc=!KKl^kBNG=voIwG_b)(wC zQ_h`I5WKCzI0e*=%0Ja3tSGXzWYJbGjxIryhH>l~~UiA|Ac6cjCMuei}`XW~faA&|gwbi9TY( zCkwnNsPg&GzRTC+M%H6G+~&PiXt`t~SNq+})3d{^OpjNLSh~A{yr+0VoBMHsKsR8E zJWp$3P36&#Zs5kF8@N&a4{kUef2X_oaF5Z}DkuhGh&})m?XD4GFFG;AggSx;xhB|! z|Hlg;P_3bLpsXQl(Gw_Bg+JcoM+3n6bV`0mULO=d=iW}(afSR4)O8iv9Vv+PF@ucB zBz;d(XXa>QE)0C)E^+igm!$jmZ%<~A=vQDB;v)NY9*c=B6$k;DhzaWaZ;oD`pMml+8RsPBwNBd6Ww)C8I>xDM$=e#KTH8oO#9O zZx_Yzl@!2~GaC^b>cfLw(reF#5jTGvRZvDskm6^AMtK^A&j{O|s+hIC%Dvw)*W;I5 z*x^rZWX*o0z=?&A;?N(*R3D>e=5W#e}_czeS9Lw0E@tOTX5?F+B~RQsbfN zLP$LG zI$gs70tlx!TW@40eny{M=xGG*0h^=SM6KyRcFB$tcuHWNMw5O`^5+xp+=i*XDmE6! zzankXQf275?vBPq``JdmG-v5YIA-c!3@@Vp0sxbS#sMBq4tESEC!s=hnU#AiN^zWt zTvWHqiLz`zzAoDXm)$A0(88$DChjAK2Wwxh3KjeWBuV_LsOiM0Cq}m#L4d?3|Ing! zG5q7r--j0)Lhn)Ii($jj$1q-W@&gDL%_sayVT**K-|F0Ih^o5~$`*b>PjmT3##O1y zp;bncEP<*P%Bc6CD5sBrDg!tUNJfwu4T~;-q}v8I>PADU(5EbLeC&c0rrz}P4eglFl_1dQ2Q>TfHT+e+fV#x&f?%V7R zvg5hxYvnf?T)GqWP3}eJoW1CqB-9le1K#M?jH><`)b->SJv&5yytnvP+?viR6MXJe@uV;-m+YaJFB`nI<`@b%f!qK zbK)IkyduudR7GU1=5h=?-%7iG@Z4c(>=!%5mt8K3Sq9cX%lp@zuaxSpS(M-Wrk}>T zLj>sa9pP^z2a3^);(ssXntStG_l;}@D3lk`r9XjP5sJRw>hI3^`!`N4#Rc(~0XED& zPy{G)a1{(aV%KxWK%@S^mab-{%eA>zG0Rm{n~6mJ>?EDQJ!Nix=zdF}W$`>+Hne=Z z#xhX9D3}lX4_v1tN2jDYBOndEblL-W)8vnXe?O`B7f)H{7JS0Nz+pt-V5uLd{^GR< zlG7(MpTdAG0YxTczUSamlHYZHb{e#hx}Y{!i)1bgBa+GTzG?`{8Z};D2|b~)@XD9< zG!0aOCNXEt#tq0zM@M83P>nXT~zOIS~!L z*=14f2LRDDwzp%%DY7q;x4DA5DI&QCJMPG4pUxn#0tVF%KfmFgthNg9}aU_ zaPb~M`n|NCGf2nZzr$>UiL!jJ#akPokI$rh=v1Yv=@&1ygCDq^a=&&o>i!ui^##^) zrpby5qD4C&NHW$?(+A2vJNaHORt-0Oq%R&m5lZ6jGOP60DEep|8KKZeD<5PH#I1=@ zn?O-Xd!`XqEKY3#{8?8+WzkiQ+}miJY0O1z@#}koXCUeEvQxVtDQY`yMe#$urVu zhU2vI`EP*^2{n3(hym!f-;UZa?C#RKNMPtMExv_laZ~yp#lqr-+_~cky1Gv{WY5pf zmH0Zq=Vd})bc3%ov$%0I9uK3kUN8A^k$g*+K$!u#Cn+LC>zRlzpegbsk-g@RFtb#w zb|WVutp7N$Uj;ojVG48&sfVyFUVN=;5`&QHzg!pBKcx|4#&J>?uVT+U++Dd;-;(3K zkxmr(P$5jwL4WP~>dfwfCfx8AvY^iq&f8_4+bca7Q!&o#MRRZ>e4EjqIz#Mh5gt=` znM0Gln8ICD|5U|_XhCkr*y6^VxQ>t6Tu{A#-xU<+nyA}Z|{9P#SYE1 zipMKT4!qQTv{|w}bbw7fpqz^Slf!y9O*e|C!Wa+YYfC*cvl!{g3j|| zRKfZ0?*~P`v)}sARp$U=tk>Lmkq(8V+`ZX0puH>@r}SBexh0$nKDfpyAkBA>T(Nz^ zGyOLM6j}8VXjCXRet{x7qhByWylE`lqP-x6gxu(72Q1C5uo3*^{*fDUE<(<=QL5o@;*dx8qEFAUPi#}j zaEUd=*nVSwvYZZ{(R|U@s@5S)^iKtawCTgArowGUPw3EC7ojX3&`AXPxFVx%!OC$Z z>?(0Zpmnan^4$wiEhtVblef&p6r0S62Z!~k;e1^^s%C|0y!n#J{Dho3dGULGLBJu# zM;RD3Mf(poDa{A>dAJ$^NL_K6&w>_b1h3_-)^@f{nzUlr50ss_pR+Arw8>@IHpwPk z8c_$y^r=j4oX{TzP+JprJcJwzZ->gon~8oP>Tr3PUrGeTtExTZx&BX$b+k7W&XXZq z8p)M9CFy{wZHBx+U?&I6xQcEZ#l{*}42q5JRS5wpMG`|c<0@$l4(Olq(#P{uk6e7P z7O11)OU3Y4{X(*3ItqCj?ZF}^@?Qov7%`1VsII@?>!6hiNcixswkejxveLi8>r1=N zGEwNCKcrd(1(hq&kr@85>j`-8)QLPQ?PxkM^y(%JN+z6JHnk;uzlq>PViF%cF=7BH zc9@JDy4S48zGf<<@Bal2G~I@=Q_P51LvFJPwkNH4EgeZA7IS3cxeW>L&(aAIdVOMgIvuAM(els2Z#EqEjFV|iI z$tIK)YKo6n>?rfMY(4Gq(agQ??R#k5zZiSB#NHG01*TOnb4U`dougc5$H)sW{EG^|Pn+^R$R&}{4IcL)2 z5EsdzpZH{sr@U1Rf5xYlCDG_%K&+V>1AO)xK7~f|wy^nGe3GSAUzOO_)%I{s&EyV5 z|L!T&xj!z`d*`n6bP$~ex1;KBJ;-#`t0;RDe;tkJf6O zRhtXvm*3|I5ow?IQhY2Xs;X*e0mQ(h*dW4@nGntWe8GF=b9IpE_O^D-5|J^Y4b!n| zqmK$*W;K-N+{iRDJNuzNB|7^sh(|D2L)ORV$uln&7esHLZaTv^=W%&tzrfeKy@zs1 zRZWYFyVxxldv1Q@2h=jWJop#P<;N_(A-h`4PW|aTZsdtf0!s98FA-N>W`VTI6gWdz z8HJ0~xNV>OehpSNkWyH1a3%2BR!3k95)G&5C3ksjZ-fY_j@)}BMAQ?tV!Kd$1!*6jOpBdtm<$OWwj4#zN zA(!wj2CSrlTpGhcJ%X!yQ(64G+AjeC7_M$^f50}BUCOLC^mAW5rh&h!a~fu-cNz{g zh#+^6dYetan4 zQHF=}oVGx+uOF<`5Wbs9-@+$^Q+fA-(?fg%R_=`2dYy0~?f&;Jqu+`8hWM^|4<@=S zn?)Uz5`!`I>Sa2kv$Iao;gOL(6fri9`8{jhtWXDjHDqWIkLY}fg3xmcDxn;pe2WPi zPuR8ong|6~zgzPTFAa0s)71UOm4t$8p#vKF0L*0k>=>#<45a0u>`rbMldLiiw>)id zdr-e$D75RkwW?#9WRTX4AY|JEDG9}ScCDA5F=?5zf>q)p!|2ialDLYom^Hi zdZxHZ6;~Uayy7NJCa>sYRSR;vLlEs=)C*_~kVGii960{PAekTg{{6OX6w)zpm&S=- znh}xTe@p1#u0NZMgJTS5Uj^aE+b6;}y{yA{A9Q5vu-mX)%$c!d>am$875+wc;!0ty zg(zWcS!Vj(=+wyq-G}FlKMoE;c3uNz>S&^QFMY9cJ?D$8$T z6wJmYt6efpJ~i+=%$JSZ+zoHVTKO7t9`NMqNAG$!kU#LU$`r{Yz|_jpD5v$x&(0vU z`J9F>#P5qWHYB~b`JNKH42`x?FRp5P$+u5 z6zvgwRsC+APYF>%_xr-bcNXUO;p4EZB$(iq`r2F}lo7h0)l)5)krn<8eln0P+1zSa zlu78A3Nh(sWqOZe5D^if6gzQHC8l+Lgrrw#i~**IU18ZF_+wY3lGoUQ0PacAUc8iU z!iD3V6bmA2>@+ubcX0=+*RgwBTh8<3)Gmm#)qWy8mJ-0{0V@Wak**tDJlt3dT=QfoK0*5WN@Y=w;M12*{Q@n24j130JpRfuf?)#m>0`$OrKf%l@uX-qr*eSBJvtVq%kcyg*VZT)AGZ=+b+8 zOzY>{F3YI%V@tCD z3(fJh%9=_Q6iLS6zxW9HD+ns#lp0_%tA-OukgEOCYI|w1jP)zj+EaXkIn??^t8#Q` z=Ghi#uyI6j$9w`q%QYe+=$M>(L+c!b*I^sy;-99jZmUy4r4<`Ufwo8}jjHSg%(iih zcdZrG$5S{s7p2nTO3tf^vN1fk5SX2vHTvlC{Mi?UN6m2-g*mwKitIJ@SH$u+A9lw? z+zI;um6&2)O!aws;O86J$r-0O`C_1rV8G-PCuL<5?|X2`r^_l!Ch^ffQO2SgCg?Fu zA<)BK6n|kaROAz-)n+5-M$acr`QU}`%Mt8{b3Hs%w-p7xEQWuT!Ky71m3M>vO+EyD zmwC$t?F2ffJIpqWPaRUvygjV(Bl2W5j5x^?6Gmj#XB=z6;aw3|pCG<63QsjzO~A7JhftwAkW9@2J5rIh8v9deHL){}p>p>Kfsr`b@4)qg=?N zhAytO%XPgUhNXW*SBYvdG-5DEhD-&Sul6IXgnTcky~bp_&@j|##kce6SK8z3}y&`$b$E(;zcUtVlf^3+piEK6D(f5+mq5O8{Bju5-u2 zv_JLo_p1F@Us*ZS7IwL4a69uLv080!p9)%#sC9J+R^BzFIg}zy35^7@e1vdiUW7~D z@^YxO6*BjczDdeoR}pD!Nt~}sx_I;N-)1Mdps1zDW0qiF2^OyY+Sj;yU{QLJWWGYh z>?l4o{* z;hXKUM2xY>?L_^BUk=V9rZEJ1ZkZ&qy1^jnpSg=cBM&64-fec5UOW#)!yokmTewWz z#)+YP_L~{nmnz{Z8`108VEF^^Fj__Yt3 z_4{k2-${<=b-b>VZ6`r#Qp%5rJ%>_yBWr`HzW9cn!|n&ZztX3_t_o;_IWY+IWcjT1 z?tb?aidHZ5lV4aYAd}kSKRJ{=$8~uUwuYnb--ujY0|HPwtHf4b0UF^yLKMuT-~FXZ?KdN zF)vYPk<#aY;lTtnqV8#%I`FrmpG4c7#ccd2hI87 zhDFQ;s>_M8AJpkFdrR8|Ez3PyIR-ow%1~NFQo*)L9O0{rAOCWyb7MxJVR-eiT6{^9 zuCB*_Yz+G=E3H*O&9>X|D$l38uHfLvSsUTnCF!E3fUZz`3$}d-IGuCkJgI&gn`l9i_qV!@^`ip(TYdL_bsXSlrD&^9?si_@ilU1 z$<6V|y|p#mTR)WOfHF0$ZbBANfjRiXbypgw+*{~77*hw2FZlfny&y5zOdkV29dCLu z;=Ue=Sxbl-L_yA(%M5&|*1|Gfo+a|$vyP&h=oGlCMqOLp&wKyPxh?#TR*AOj;s;R_ zvSNN`dP)U``}uQC^{nLv^zVt72;m*m|Bx?&a4j-UG~Z2?u-2Ba)zCmuU6wXCWk~2J zJJv*|3SR=;<(I-2azEh(r#2ZF%5IJtSZefzfQ$=$9q7;NCA|_H?qB#O29QNhE9V<3 zv}H}IT-*e=IN=*IBKVr~%4;P;LkJxQ#<{!Xl_f{Kw0M1xw))z}U5jgOTlf|zBGi{O z7xdb5LCwF2{SOr<9)pkWW%!fuR=s^a)X+I?FP`ltd=(1Yj3)&@k}P>W77}@odVS!} zOTK9-=ZAF&Ek>U8Lo%F<2$^mxU6_*8*MAL`pPBj8KIy2lb>HAmph#onB2zA-Uk@2t zeMWZQ=9dT8E0lmy(?{@XWPhYZAug*u7$&l}fFWA!0Wo(45j#&d`QS6+VcOC_V}0&# zZ4$QMXbuu61rm0>%|D?_S$XWgsYkZqLK>4c*4Nee6Vs8$oo1sKCNvC4#uSf*%t?Ov z9p1|vmaX^h5wZ*2v5Op8O$qYL&u`u9?ubaspFhz(28_eN z_D)AnAL5#i{mtoa^p;3RXB&K%-5`xmmX2*o@PS#i1i^O=6_w zTBuWL3gI>97s`xWP5z~nXcBn73-C~l8)tGAidvGq$nQ#k8fR{23w0h*X?d3 z{%kNQuy?96q`S`y46_X*jKQQUX}3$QO|9m~=ywmFp!u<6;)!Rds?u)1d32k4bb2&P zV*icr!S&n=jso-E7NVAn7JfhC(jk22eq9`W6#CmaBOT41+E?8Ix5(zn&8fJ&74cs( zb*%(95VQ6nhDFeRMefaC&X>yfR5&LbEQ*^}FCwu9hv07^Q8-*p4i};F#jM7+@`E3k z_hSB%l~4;HVGkA!-ZEtt+8pb^+-@oXQe6N5;BOH}SfGw<^E9`8t;o6ahT;=4GLF4- z(d62-8n6sM*2L9XtRY@Glrsz_oxc%~ByEvc3s%gaR}YFtj~DsAM`Jf(9S^-DC&xvp z)aDc6L;VEpoHLE^AcTy50{+*ft(R`Wzd-GFJUcCRHcp|22GRq#9^*J=N4K={lMBtM z3V*B9XZIVqQ{>p)F~%DgUtd z#iAV5;`u%;%J}<^gp+0)(){M}P)fUFShBsp1bKWP32FOqmd?Du@v}`clENHwwixxF zlma7a9l8En=jL9ad(?00dIt<$9I1uT{#Vzc(>VFf z9+jggQPjru*l@+=Ql?B?`xhb47kWcXT`%g6;B*&7LuyH?vgIS1k5TA zh#zJI@E$Yaq@iEYiT?S~cw4W2%L4*P5>E&1GU};jo|qS8WojRbR=^ZPKw8|0uP* zV5PHWu&is0oy&YJKZuXvV!_SJcF>d=TVIp zS|ofXmAo`B^fhXp=r2*ID-F}_3Pw*Re<fOO)_Whi%~wTeF}YBp*{r)MF={Z zYj)4%fHVOf%z@8hp~}fzNrTXGYcn~>SvO!T1-H7tGW^VsNF`f??#>X)&$PxL!y6Eh zw0}VZq}FCgpdA+WTqDGM7V`72J!srmRXVZF&)y$jEJ0#3H_rdA-nz25M}3~t$41*N zD!y|qzDbR*Ua>QjdA)#8e0Tv_n?XM1v}Va;iK_#F%qTc4Wjt{(U1q&4pJJ>p zL<04Nkk4oMs%hN$TdW7s6cr>kTWMC&a-*)lRm_qU84-R-q!?s?dn0gYfsPZ4d?Kj( zE-42GIg!hOU03nPuw&wmpHMyEUhT$W-h03qW+jWk&qXuOo2tw5g;R#t!1B7641yEU z;Tl(~8do_)w$e`?$7*~wHWJkFmQm{*!|4tFoByH7LO1=O_2dVb4O0l^HYS})UUIv+ z8dCI87;AtZc|PyN(QVO~4pesHq9aF@`~1Gxl=*L8m-$IotX5Qs+;&&~B z*-tKJvgF#3$*Xx;_X-9&d(b--ErCTPy6IBBAZMkg=DsoJ8J`)@A!qxr+WNKb@uJII zO?B7w{|ZP3f%U)H?G$HARmRJnhxevZ6wj}koi`N(atbEDmG^n#M?$wBBvPB$+09YX zE7-mV+olZ&d3`61Re5+q96ii`ns0yU{LvDIU2Z!Ec`)rr+z=1{Dlwr$;_MZ;z4eH@ z%jh(wcjLUb?{xO-kM`MRtB%4pKI8bmMM|2{WRqfU=2YXkl*AW1K#fB1`zNf0s`o+%-P z_o&OgEkdhJs|;On@hA2#d{DUf_uGN%QH1Uuv|(Ogx8Zm`i|IRkA+dE>Honl8!m@v~ zM!_Ioj7ei~?AhO{!HhMdbdby)asN|4;JX!OH) z|6$R-iQ=%P>n=5U_+4e+WhiMnpP2I7Zn~)n8EZ}El6p5862)Avd-dY&$dauSM2%(y z@ACI&E@{Gsk}AU@F)aTfoWdAY*e#GAW$ko2+pnjT_@*F2j-K@x`b#iVK=@x79f8@& zaBs{T)lgv1_$&IX>{A_(@IhDq8;lHDC(n2Fu_|9yVM;}&4qV>Gfr>f@6fbri?3XkC)^Nl328GE3cQ8nfuNJ zh-NnSdYa|d>_}k`NC}~57BkyIK~V7x6FIG_ zeEwIDSl;6mk0lz_S#TDL`d2WGYm9a%P@KEFal`QR>0FCU3>@d2vhxbc-#iE0lTyDC zArjc3&}~aAkxvX}bjl648bxnT7fvctK{gF}#m~Isi+C@w<={nA;ra6ZHFSd!A1VIgo{F~Q>?|1!kbCGCulOAg(2bS*R zzLM#9(x}JFRVD_fkqjUt*0fb~gYn{z4B!1@;hdwWo2XH=`j;**a}X3X4mG9pk)_k< z1<;fpoyl3upDKvVk^R$k`MxvN`(O2UTlVl7<&Vk72FqdxDva^KO%tjj7=RAIXlcmq<_Tvzcic$vE@znmQGq` zQ0eFv?0m3T*eB#X8ixDT6EpdS5Y#;9S;Q)>se4rPG2Q34DYH5z22VTz5I@uC@5=U( z?dadvtt~PM{g-%cKe=6!mn!1$nhcqG_mA@d6V7AwZEJZHM#m5w7)1L*@MN$DI}`x* z-IaVXCf}&xeE-9Pr)erPu{a!kDjUagBbty~er_X@p4>lk)$AN;7#T+yyY)*ZDsQfA znjvp*Z?%f%__@YvxbvQNd}rj!uL<>dGg>D)x8=or3ygO}T^~(;FlUC_fV^0jdrB@| z7Fh2x3>QuNmWFG2DeZ>fbmFLbdvyI>28QQZYHbSAm+AvUL(7|genM#ZT~i*3Uch^sI>;7N!iy%?%ZkIV|fp| zbzG*lOc{4na4fxOX(@ld4YziaWi?rjnnvNEZv7Ac zn1*%=2}A4nsasYy&<sfHZP6X7675T z&=D){sni8MK7|QC7A?Xfa%UauF!W@PiMq%-iCTW3c`d9WWe2W7O`v8`Z_HWApS|=IfK72|zJS-dVc4(fC zb6_tp%d9IVjW?O$i0hU@92%~KOEI`?m0lw`L-V@ed>x%o%RtD~KR=-ae<4>lDb@m! zptJ0uk3|#%HI00wd~XC_wThRQ$RwiM1QFeWO!;L$wv^&%+H2isuRTs*8z{Kf-It2@> zOan2zh2_L6*h(B@$z1h)zG_-}NoP!ajkAwhb}fY8>*)xyLUEX}V5Y-V;6?hoGa79~ z_njk1QH*@A)Um}KxQ|!k99GBG3h);ypl}DJjHM5_Oz5us?`O}jVd~>}b9S6r;e-XE z&;6Sjedsf+@e_ES<&@eYESx&UtL^RdH0wc=Sja`A22M^dTM1=z(dgTx(t;6KYMeW z>$mhWwZojjHJ5$&Nq$*$v5&SzuS|=Aq<;};yr5=RKehoN@I!Si61CK9DLnl@u*nBo zG?~h<$7q+|%hDiK^#Ro>8PyOioCALe%>eF;XcCJAMJipbsmU8#W3dpeO&E1t8BDib zv(D_+k5wr@Xp}dv$ZrW!p%?n%3*%3-elL)@aYWaOAnt8Ifgax*KVgS#PJr~_XVN4L z6(6Mrfa3Fu_*%W_coFkF#v9Tq`t4!6J|;<}+uB=ndwwSClrd_Uorf!o4AiSj>H0_13-S+~{K_;;J5~17x*lwB^7KYZYr03~hu!&KGTaQ(E65#LY>J#p)Y!$$O!>$Db(%{<|jd!&p z@S6}wsZlf4B4WtnAbsB#*zp>NKM=vL<~E%6<{nEN^{{^ReS=3-97&jcRQ=$tX7Vps zfl9i|DbD{_)Rl)r)&B1@)|W(YmbdJ!%KjpI5u&#e6-fp!d65iRrimFwR7#d4%M?c1 zMAq!v*mr}hgBdcRY$G#f3}(*vOxN|he&>(#$6VJr=Q+>kbKmnk*ZF+z`=ps4IP}(L z(ZBcjRw_=ATkO^l_y6UAhe#a;joTi)>y5xeUXow+HAA2oR#2xZZJ8gF+chHYE}3e& z)<A9zkiN3AA`jXS=2!ok@9z1q^AlYPAFk|r zSyQCpJPR(37Vu!c7QP!~y6c05D)uNsgXgQ*?~5_#Si@ZqwvsU4k8J&zI8fw35d zN^Q+}`x8>}Qq9nC;0=VlbU{hkU$B{GFenPV1dxjb`W#}5InhKL`0l&u$S(BzjwLwVWz z-~4RBHKvYz&&0Fz$hQr4>Q!(}wbZ6sq*r4!XsIh7k;hf}OzH8U1jiY4Lt?zs#h$($wZPV%M(a5u&Hc5(EZ((+D z!s(#7hbo#;=F81xr`%geUwkU=>(n=^b(r`LPV(91%r z>1!tN7{cc@sC^rmW8AYe=Y-D$x3-ifHn4N^PTW0Exob^`#+}_o2(2~ywzPBRX?oFR zltR~*EW~T=odD|g(pp`iL!SMK*%i{4M70!ev)_^&3MQzv(C9v%%bvxXD98tf4n!GH z?(;)_+M#R5?42X0`r2Su_5V%l{cqg=nY)CjqM+h;R3s8|_Dd;P!`y*89D7bz$^@;o zso2{iY|>Qq4zXjiy$cf9GD;IS6*5PmP`x7~BhyeSoaXm#J!c$KibZsq?+}_(aUGxT zv&v_Lf$I7t4S(l~_Mq0d0Czc;=Zg1dVG!cSkO|o9{TKtsRy<&SQus$nST7ojBQE)zuAkjp9N4+EnaEFu=ov8Uh;C{hpSv90o9G ze56L|HW0R2F`gM!%<8w>-ddq0+bF^Y5BRP%u-tf2b9HsiM)s*k52(YcbiP3<6KRGy zLt6Qph+mPo;AAptu1y5kK!!Lf{E>Tjx(=n49l3p*XFp?oL1%GB5p>_09A9sd#72Qz zcHqN6%w}N8ZbUfyp&l>zonK=|03Jb~Oz#bW9%L9aC(turrdI8D4tr|>b=z}4a2Kbb zXB9ID88K!?eG0CD)C`~c3xz;LH;?)NnK)c#Y&Z3|0@HD;I+Pd0&xY0L?F0jgJyFI0 zG5P&y%pp>l7>eQIT%&5QaB&siw93-3adD9w!`|N;_2>tNaL|WHh~R=8Gma!Md(oXO z>V{sexJ1Vvu}NHr3KVPNNhO9XUYud7&l zbIqn}<~Y@Vqou0?>SJ{2GeiD^0?>b8|LW@Kd{b6coUc)nMewQ(VZj{fT> zTOD8xw1_JEMxAH#Sv1S}7P~9zGJ|8HeT_RN)jA=tFCpfu9Y+JmY%?Q-JGwx!ppMot z56wZ@EP_;a&e(otp*oOJ~bt_Om8<9ZkQ}p?z;5 ztOQDhRrNj`XY1vk-bwW$zRX*D3efuBIuhtaA6dPb223|;>7KiUwn2p0GUOsfvX8<; z4o_JXB*^UZTgA8={b>F-sOtZOld5msmt-+(ByHHvZ1p5-BfqM|Q~Du^=GUna>G2_+ zgu)7|tyS+)SZ!KeGO4EXD>a$Wx{h{1>y>F9cyHad^aIvSsd`cLS+$lp?jGW-R;?CP z-~@@ih8$lmk&hI80>_68`$i_HW>agKkf@wIOoprHbSfZ}}3= z0Rw3mw>iUBLvE@yDpUg@j}kd{{qGxoE@N*MQ!gAUQSHJ3e{8HttA1^T^^&M!&ZPStS1m>cz6q&+76T`=Gw+-!DL=Hq;#@f)uxO_MAhWr zrUL^4#>t_^2{+V*TD7&!%mQsI_*bqiOv@6hk3C=`?5`!jwQ!z{*B9RVb2jYw&z6G~ zE`(d&+p6((hcI-u)a1@Kd_Efqz2Y@&ek3f9mfT|p1 z2B>hi-b;fk(;?H_?}>NZ6n;7kJiq)gx!+siZEay;Vg3RoU4`mQDA4KpuSQj2`f-DN z8r5fKe1NMv{63JOJ1l(Qpb`oph{QhS^I^3JEYuzKh#Z--8Vx}v5R6crQ-{a`>op3f#P zRN0kmUy&?0!R@?_r7j!r$E?9|mQ(Y+iQ}WgT(MRG;Q9`0qF6#m-?P zef|7PIa7f~8BS7pU-5@^j7-QHqBFR@!(CwTe#Cy3jwzeL3G4f{p{mz|8+g6odhB`R0DMGwI)^+%K@4V`F z`Bcuq$09N+nj(V;SX{g3^?OYGB3Dq<+@(|5jevPTU(KpiT!g%i#x6do&+8Gti^PWA zGna!!4S2bJFC5vBsie+1o{);$=yE9*^xzB$0h{6g*~#kE#PRfAY1pRzT^zb#r}vAS zieqof#DT_oxt2bLe7q8+ul-JjvkMfqvj45{UHk?_j%N53kYfURX<+gz>&E+O0U;_*`a z`4Wzx*G_D!$BN4S!59COw^42Uu#Y{WJD*O%o>(2;%f>XGPmEj2dpnfpn0qX@Di(Nn zx3u@nw@Zm!tB*y&a~qrnVtTTI?y-8@2j_Q-$uwby<1tSYCut4;d68ld4NJ^W8uwDu zPUCFH^^}v%4dt05Mn9Mmv8~$Z@Tf}*4m{KjTec1k?gK!P8=hfll4mLv3!n6?R;yYt zzFygEU{z<~x8P-(`L}FfQv`0N)lTu}&+?;%2Ob-F+|UBd5s6M8WNb`x5~hLm+l~f| z$Aqx(CZ>eqE?<*&b32m{cq#Lsf$UU0LVmPqBj+n_Fe$HpF0QaY(1m*Gb}mky6xMz9 sikpD=-g{i`zdOQvB4Ph#%x)-M`D?SF`kjt403H9FyKGft@o)710J{n({{R30 literal 45994 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

!c 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 Y@@wY(c#I*H;}CFZs_LkGQnCvBFNt<5X#fBK diff --git a/yogstation.dme b/yogstation.dme index c1398e755e3f..2d4fdb1941b5 100644 --- a/yogstation.dme +++ b/yogstation.dme @@ -813,6 +813,9 @@ #include "code\game\machinery\porta_turret\portable_turret.dm" #include "code\game\machinery\porta_turret\portable_turret_construct.dm" #include "code\game\machinery\porta_turret\portable_turret_cover.dm" +#include "code\game\machinery\shuttle\custom_shuttle.dm" +#include "code\game\machinery\shuttle\shuttle_engine.dm" +#include "code\game\machinery\shuttle\shuttle_heater.dm" #include "code\game\machinery\telecomms\broadcasting.dm" #include "code\game\machinery\telecomms\machine_interactions.dm" #include "code\game\machinery\telecomms\telecomunications.dm" @@ -983,6 +986,8 @@ #include "code\game\objects\items\sharpener.dm" #include "code\game\objects\items\shields.dm" #include "code\game\objects\items\shooting_range.dm" +#include "code\game\objects\items\shuttle_creator.dm" +#include "code\game\objects\items\shuttle_upgrades.dm" #include "code\game\objects\items\signs.dm" #include "code\game\objects\items\singularityhammer.dm" #include "code\game\objects\items\stunbaton.dm" @@ -2911,6 +2916,7 @@ #include "code\modules\shuttle\arrivals.dm" #include "code\modules\shuttle\assault_pod.dm" #include "code\modules\shuttle\computer.dm" +#include "code\modules\shuttle\custom_shuttle.dm" #include "code\modules\shuttle\docking.dm" #include "code\modules\shuttle\elevator.dm" #include "code\modules\shuttle\emergency.dm" @@ -2922,10 +2928,17 @@ #include "code\modules\shuttle\ripple.dm" #include "code\modules\shuttle\shuttle.dm" #include "code\modules\shuttle\shuttle_rotate.dm" +#include "code\modules\shuttle\spaceship_navigation_beacon.dm" #include "code\modules\shuttle\special.dm" #include "code\modules\shuttle\supply.dm" #include "code\modules\shuttle\syndicate.dm" #include "code\modules\shuttle\white_ship.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_actions.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_console.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_eye.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_overlay.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_upgrades.dm" #include "code\modules\spells\spell.dm" #include "code\modules\spells\spell_types\aimed.dm" #include "code\modules\spells\spell_types\area_teleport.dm" diff --git a/yogstation/code/modules/research/techweb/all_nodes.dm b/yogstation/code/modules/research/techweb/all_nodes.dm index d5229ff2ff74..1bb74e0eac37 100644 --- a/yogstation/code/modules/research/techweb/all_nodes.dm +++ b/yogstation/code/modules/research/techweb/all_nodes.dm @@ -13,8 +13,10 @@ /datum/techweb_node/basic_tools prereq_ids = list("base") -/datum/techweb_node/spacepod_basic - id = "spacepod_basic" + +/////////////////////////space vehicle tech///////////////////////// +/datum/techweb_node/spacevehicle_basic + id = "spacevehicle_basic" display_name = "Spacepod Construction" description = "Basic stuff to construct Spacepods. Don't crash your first spacepod into the station, especially while going more than 10 m/s." research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) @@ -28,7 +30,7 @@ description = "Keeps greytiders out of your spacepods." research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) export_price = 2750 - prereq_ids = list("spacepod_basic", "engineering") + prereq_ids = list("spacevehicle_basic", "engineering") design_ids = list("podlock_keyed", "podkey", "podmisc_tracker") /datum/techweb_node/spacepod_disabler @@ -37,7 +39,7 @@ description = "For a bit of pew pew space battles" research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) export_price = 3500 - prereq_ids = list("spacepod_basic", "weaponry") + prereq_ids = list("spacevehicle_basic", "weaponry") design_ids = list("podgun_disabler") /datum/techweb_node/spacepod_lasers @@ -82,7 +84,7 @@ description = "For bringing along victims as you fly off into the far reaches of space" research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3750) export_price = 3750 - prereq_ids = list("spacepod_basic", "adv_engi") + prereq_ids = list("spacevehicle_basic", "adv_engi") design_ids = list("podcargo_seat") /datum/techweb_node/spacepod_storage @@ -112,6 +114,43 @@ prereq_ids = list("spacepod_storage", "high_efficiency") design_ids = list("podarmor_industiral", "podarmor_sec", "podarmor_gold") +/datum/techweb_node/basic_shuttle_tech + id = "basic_shuttle_tech" + display_name = "Basic Shuttle Research" + description = "Research the technology required to create and use basic shuttles." + prereq_ids = list("bluespace_travel", "adv_engi", "spacevehicle_basic") + design_ids = list("shuttle_creator", "engine_plasma", "engine_heater", "shuttle_control", "shuttle_docker") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 5000 + +/datum/techweb_node/shuttle_route_upgrade + id = "shuttle_route_upgrade" + display_name = "Route Optimisation Upgrade" + description = "Research into bluespace tunnelling, allowing us to reduce flight times by up to 20%!" + prereq_ids = list("spacevehicle_basic") + design_ids = list("disk_shuttle_route") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 2500 + +/datum/techweb_node/shuttle_route_upgrade_hyper + id = "shuttle_route_upgrade_hyper" + display_name = "Hyperlane Optimisation Upgrade" + description = "Research into bluespace hyperlane, allowing us to reduce flight times by up to 40%!" + prereq_ids = list("shuttle_route_upgrade", "micro_bluespace") + design_ids = list("disk_shuttle_route_hyper") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 5000 + +/datum/techweb_node/shuttle_route_upgrade_void + id = "shuttle_route_upgrade_void" + display_name = "Nullspace Breaching Upgrade" + description = "Research into voidspace tunnelling, allowing us to significantly reduce flight times." + prereq_ids = list("shuttle_route_upgrade_hyper", "alientech") + design_ids = list("engine_void", "disk_shuttle_route_void") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 2500 + + /datum/techweb_node/syndicate_surgery id = "syndicate_surgery" display_name = "Syndicate Surgery" From 67c39fe2c1bc218292e1cf87af3a582ce179b742 Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Fri, 17 Sep 2021 15:16:17 +0100 Subject: [PATCH 24/24] Update layout.dm

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�Hk-;pgQ7G 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 TbGIWdn6Jw(5;Mwa@c{n=B!Vl+ literal 0 HcmV?d00001 From 969e1a2f815b02df0eccf06132dc83b42016007a Mon Sep 17 00:00:00 2001 From: Jamie D <993128+JamieD1@users.noreply.github.com> Date: Fri, 17 Sep 2021 14:18:38 +0100 Subject: [PATCH 23/24] Custom shuttles (#12326) * Ports "Ship construction through the power of science!" - Ports https://github.com/BeeStation/BeeStation-Hornet/pull/1398 * Ports some changes - Ports https://github.com/BeeStation/BeeStation-Hornet/pull/1904/files# and https://github.com/BeeStation/BeeStation-Hornet/pull/1529 * Should fix some stuff - Removed some unused files - Fixed a change to a random file * Should fix more stuff - Added some more important files - Added the icons I forgot to add * Oh, I didn't update the dme - Should fix this, maybe? * Probably should add the turf icons - Added the turf icons * Fixes the name filter One down, two to go - Fixes the name filter by using isnotpetty instead of OOC_FILTER_CHECK, now if you make a shuttle with a bad name, it will message the admins. * Fixes the tech web - Fixes the tech web - Adds the new icons for the RSD * Should fix some stuff with the shuttles Should fix most of the runtimes and issues that ive had thanks to Jamie's help. Should bring this from ""functional"" to "functional". * I am too tired for this why github desktop, WHY!! * Adds spaceship navigation beacons They kinda work. * should fix the beacons why do i do this the way i do * Ports some fixes by Dennok Ports "Custom shuttle offsets and view range depends on ship size. #2685" by Dennok and "Custom transit dir for custom shuttle #2689" by Dennok Co-authored-by: nmajask --- .../configuration/entries/game_options.dm | 7 + code/controllers/subsystem/shuttle.dm | 1 + code/game/area/areas/shuttles.dm | 4 + code/game/machinery/shuttle/custom_shuttle.dm | 33 ++ code/game/machinery/shuttle/shuttle_engine.dm | 140 +++++ code/game/machinery/shuttle/shuttle_heater.dm | 134 +++++ .../circuitboards/computer_circuitboards.dm | 8 + .../circuitboards/machine_circuitboards.dm | 25 + code/game/objects/items/shuttle_creator.dm | 0 code/game/objects/items/shuttle_upgrades.dm | 0 code/modules/mob/mob_defines.dm | 2 + .../research/designs/comp_board_designs.dm | 16 + .../research/designs/machine_designs.dm | 32 ++ code/modules/research/designs/misc_designs.dm | 30 + code/modules/research/designs/tool_designs.dm | 10 + .../research/machinery/circuit_imprinter.dm | 3 +- code/modules/research/techweb/all_nodes.dm | 37 ++ code/modules/research/techweb/layout.dm | 534 +++++++++--------- code/modules/shuttle/custom_shuttle.dm | 272 +++++++++ code/modules/shuttle/navigation_computer.dm | 30 +- code/modules/shuttle/shuttle.dm | 5 + .../shuttle_creation/shuttle_creator.dm | 388 +++++++++++++ .../shuttle_creator_actions.dm | 101 ++++ .../shuttle_creator_console.dm | 93 +++ .../shuttle_creation/shuttle_creator_eye.dm | 55 ++ .../shuttle_creator_overlay.dm | 52 ++ .../shuttle_creation/shuttle_upgrades.dm | 39 ++ .../shuttle/spaceship_navigation_beacon.dm | 63 +++ config/config.txt | 4 + icons/mob/actions/actions_shuttle.dmi | Bin 0 -> 4028 bytes icons/obj/module.dmi | Bin 18978 -> 19954 bytes icons/obj/tools.dmi | Bin 23472 -> 24618 bytes icons/turf/shuttle.dmi | Bin 45994 -> 57305 bytes yogstation.dme | 13 + .../modules/research/techweb/all_nodes.dm | 49 +- 35 files changed, 1912 insertions(+), 268 deletions(-) create mode 100644 code/game/machinery/shuttle/custom_shuttle.dm create mode 100644 code/game/machinery/shuttle/shuttle_engine.dm create mode 100644 code/game/machinery/shuttle/shuttle_heater.dm create mode 100644 code/game/objects/items/shuttle_creator.dm create mode 100644 code/game/objects/items/shuttle_upgrades.dm create mode 100644 code/modules/shuttle/custom_shuttle.dm create mode 100644 code/modules/shuttle/shuttle_creation/shuttle_creator.dm create mode 100644 code/modules/shuttle/shuttle_creation/shuttle_creator_actions.dm create mode 100644 code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm create mode 100644 code/modules/shuttle/shuttle_creation/shuttle_creator_eye.dm create mode 100644 code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm create mode 100644 code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm create mode 100644 code/modules/shuttle/spaceship_navigation_beacon.dm create mode 100644 icons/mob/actions/actions_shuttle.dmi diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 0b522ee75d45..2c6d3aff2746 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -399,3 +399,10 @@ /datum/config_entry/number/engine_type config_entry_value = 3 + +//Shuttle size limiter +/datum/config_entry/number/max_shuttle_count + config_entry_value = 6 + +/datum/config_entry/number/max_shuttle_size + config_entry_value = 250 diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index c2c4b9f35ced..252aa7bd95f8 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -8,6 +8,7 @@ SUBSYSTEM_DEF(shuttle) var/list/mobile = list() var/list/stationary = list() + var/list/beacons = list() var/list/transit = list() var/list/transit_requesters = list() diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index 15b626434753..8ff9140009a3 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -106,6 +106,10 @@ /area/shuttle/custom name = "Custom player shuttle" +/area/shuttle/custom/powered + name = "Custom Powered player shuttle" + requires_power = FALSE + /area/shuttle/arrival name = "Arrival Shuttle" unique = TRUE // SSjob refers to this area for latejoiners diff --git a/code/game/machinery/shuttle/custom_shuttle.dm b/code/game/machinery/shuttle/custom_shuttle.dm new file mode 100644 index 000000000000..7c83cade69f3 --- /dev/null +++ b/code/game/machinery/shuttle/custom_shuttle.dm @@ -0,0 +1,33 @@ +/obj/machinery/shuttle + name = "shuttle component" + desc = "Something for shuttles." + density = TRUE + obj_integrity = 250 + max_integrity = 250 + icon = 'icons/turf/shuttle.dmi' + icon_state = "burst_plasma" + idle_power_usage = 150 + circuit = /obj/item/circuitboard/machine/shuttle/engine + var/icon_state_closed = "burst_plasma" + var/icon_state_open = "burst_plasma_open" + var/icon_state_off = "burst_plasma_off" + +/obj/machinery/shuttle/Initialize() + . = ..() + GLOB.custom_shuttle_machines += src + +/obj/machinery/shuttle/Destroy() + . = ..() + GLOB.custom_shuttle_machines -= src + +/obj/machinery/shuttle/attackby(obj/item/I, mob/living/user, params) + if(default_deconstruction_screwdriver(user, icon_state_open, icon_state_closed, I)) + return + if(default_pry_open(I)) + return + if(panel_open) + if(default_change_direction_wrench(user, I)) + return + if(default_deconstruction_crowbar(I)) + return + return ..() diff --git a/code/game/machinery/shuttle/shuttle_engine.dm b/code/game/machinery/shuttle/shuttle_engine.dm new file mode 100644 index 000000000000..98e324b3d020 --- /dev/null +++ b/code/game/machinery/shuttle/shuttle_engine.dm @@ -0,0 +1,140 @@ +//----------------------------------------------- +//-------------Engine Thrusters------------------ +//----------------------------------------------- + +#define ENGINE_HEAT_TARGET 600 +#define ENGINE_HEATING_POWER 5000000 + +/obj/machinery/shuttle/engine + name = "shuttle thruster" + desc = "A thruster for shuttles." + density = TRUE + obj_integrity = 250 + max_integrity = 250 + icon = 'icons/turf/shuttle.dmi' + icon_state = "burst_plasma" + idle_power_usage = 150 + circuit = /obj/item/circuitboard/machine/shuttle/engine + var/thrust = 0 + var/fuel_use = 0 + var/bluespace_capable = TRUE + var/cooldown = 0 + var/thruster_active = FALSE + var/datum/weakref/attached_heater + +/obj/machinery/shuttle/engine/plasma + name = "plasma thruster" + desc = "A thruster that burns plasma stored in an adjacent plasma thruster heater." + icon_state = "burst_plasma" + icon_state_off = "burst_plasma_off" + + idle_power_usage = 0 + circuit = /obj/item/circuitboard/machine/shuttle/engine/plasma + thrust = 25 + fuel_use = 0.24 + bluespace_capable = FALSE + cooldown = 45 + +/obj/machinery/shuttle/engine/void + name = "void thruster" + desc = "A thruster using technology to breach voidspace for propulsion." + icon_state = "burst_void" + icon_state_off = "burst_void" + icon_state_closed = "burst_void" + icon_state_open = "burst_void_open" + idle_power_usage = 0 + circuit = /obj/item/circuitboard/machine/shuttle/engine/void + thrust = 400 + fuel_use = 0 + bluespace_capable = TRUE + cooldown = 90 + +/obj/machinery/shuttle/engine/Initialize() + . = ..() + check_setup() + +/obj/machinery/shuttle/engine/on_construction() + . = ..() + check_setup() + +/obj/machinery/shuttle/engine/proc/check_setup() + var/heater_turf + switch(dir) + if(NORTH) + heater_turf = get_offset_target_turf(src, 0, 1) + if(SOUTH) + heater_turf = get_offset_target_turf(src, 0, -1) + if(EAST) + heater_turf = get_offset_target_turf(src, 1, 0) + if(WEST) + heater_turf = get_offset_target_turf(src, -1, 0) + if(!heater_turf) + attached_heater = null + update_engine() + return + attached_heater = null + for(var/obj/machinery/atmospherics/components/unary/shuttle/heater/as_heater in heater_turf) + if(as_heater.dir != dir) + continue + if(as_heater.panel_open) + continue + if(!as_heater.anchored) + continue + attached_heater = WEAKREF(as_heater) + break + update_engine() + return + +/obj/machinery/shuttle/engine/proc/update_engine() + if(!attached_heater) + icon_state = icon_state_off + thruster_active = FALSE + return + var/obj/machinery/atmospherics/components/unary/shuttle/heater/resolved_heater = attached_heater.resolve() + if(panel_open) + thruster_active = FALSE + else if(resolved_heater?.hasFuel(1)) + icon_state = icon_state_closed + thruster_active = TRUE + else + thruster_active = FALSE + icon_state = icon_state_off + return + +/obj/machinery/shuttle/engine/void/update_engine() + if(panel_open) + thruster_active = FALSE + return + thruster_active = TRUE + icon_state = icon_state_closed + return + +//Thanks to spaceheater.dm for inspiration :) +/obj/machinery/shuttle/engine/proc/fireEngine() + var/turf/heatTurf = loc + if(!heatTurf) + return + var/datum/gas_mixture/env = heatTurf.return_air() + var/heat_cap = env.heat_capacity() + var/req_power = abs(env.return_temperature() - ENGINE_HEAT_TARGET) * heat_cap + req_power = min(req_power, ENGINE_HEATING_POWER) + var/deltaTemperature = 0 + if(!heat_cap == 0) + deltaTemperature = req_power / heat_cap + if(deltaTemperature < 0) + return + env.set_temperature(env.return_temperature() + deltaTemperature) + air_update_turf() + +/obj/machinery/shuttle/engine/attackby(obj/item/I, mob/living/user, params) + check_setup() + if(default_deconstruction_screwdriver(user, icon_state_open, icon_state_closed, I)) + return + if(default_pry_open(I)) + return + if(panel_open) + if(default_change_direction_wrench(user, I)) + return + if(default_deconstruction_crowbar(I)) + return + return ..() diff --git a/code/game/machinery/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm new file mode 100644 index 000000000000..80c46fde7374 --- /dev/null +++ b/code/game/machinery/shuttle/shuttle_heater.dm @@ -0,0 +1,134 @@ +//----------------------------------------------- +//--------------Engine Heaters------------------- +//This uses atmospherics, much like a thermomachine, +//but instead of changing temp, it stores plasma and uses +//it for the engine. +//----------------------------------------------- +/obj/machinery/atmospherics/components/unary/shuttle + name = "shuttle atmospherics device" + desc = "This does something to do with shuttle atmospherics" + icon_state = "heater" + icon = 'icons/turf/shuttle.dmi' + +/obj/machinery/atmospherics/components/unary/shuttle/heater + name = "engine heater" + desc = "Directs energy into compressed particles in order to power an attached thruster." + icon_state = "heater_pipe" + var/icon_state_closed = "heater_pipe" + var/icon_state_open = "heater_pipe_open" + var/icon_state_off = "heater_pipe" + idle_power_usage = 50 + circuit = /obj/item/circuitboard/machine/shuttle/heater + + density = TRUE + max_integrity = 400 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 30) + layer = OBJ_LAYER + showpipe = TRUE + + pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY + + var/gas_type = /datum/gas/plasma + var/efficiency_multiplier = 1 + var/gas_capacity = 0 + +/obj/machinery/atmospherics/components/unary/shuttle/heater/New() + . = ..() + GLOB.custom_shuttle_machines += src + SetInitDirections() + update_adjacent_engines() + updateGasStats() + +/obj/machinery/atmospherics/components/unary/shuttle/heater/Destroy() + . = ..() + update_adjacent_engines() + GLOB.custom_shuttle_machines -= src + +/obj/machinery/atmospherics/components/unary/shuttle/heater/on_construction() + ..(dir, dir) + SetInitDirections() + update_adjacent_engines() + +/obj/machinery/atmospherics/components/unary/shuttle/heater/default_change_direction_wrench(mob/user, obj/item/I) + if(!..()) + return FALSE + SetInitDirections() + var/obj/machinery/atmospherics/node = nodes[1] + if(node) + node.disconnect(src) + nodes[1] = null + if(!parents[1]) + return + nullifyPipenet(parents[1]) + + atmosinit() + node = nodes[1] + if(node) + node.atmosinit() + node.addMember(src) + build_network() + return TRUE + +/obj/machinery/atmospherics/components/unary/shuttle/heater/RefreshParts() + var/cap = 0 + var/eff = 0 + for(var/obj/item/stock_parts/matter_bin/M in component_parts) + cap += M.rating + for(var/obj/item/stock_parts/micro_laser/L in component_parts) + eff += L.rating + gas_capacity = 5000 * ((cap - 1) ** 2) + 1000 + efficiency_multiplier = round(((eff / 2) / 2.8) ** 2, 0.1) + updateGasStats() + +/obj/machinery/atmospherics/components/unary/shuttle/heater/examine(mob/user) + . = ..() + var/datum/gas_mixture/air_contents = airs[1] + . += "The engine heater's gas dial reads [air_contents.get_moles(gas_type)] moles of gas.
" //This probably has issues [air_contents.get_moles] + +/obj/machinery/atmospherics/components/unary/shuttle/heater/proc/updateGasStats() + var/datum/gas_mixture/air_contents = airs[1] + if(!air_contents) + return + air_contents.set_volume(gas_capacity) + air_contents.set_temperature(T20C) + if(gas_type) + air_contents.set_moles(gas_type) + +/obj/machinery/atmospherics/components/unary/shuttle/heater/proc/hasFuel(var/required) + var/datum/gas_mixture/air_contents = airs[1] + var/moles = air_contents.total_moles() + return moles >= required + +/obj/machinery/atmospherics/components/unary/shuttle/heater/proc/consumeFuel(var/amount) + var/datum/gas_mixture/air_contents = airs[1] + air_contents.remove(amount) + return + +/obj/machinery/atmospherics/components/unary/shuttle/heater/attackby(obj/item/I, mob/living/user, params) + update_adjacent_engines() + if(default_deconstruction_screwdriver(user, icon_state_open, icon_state_closed, I)) + return + if(default_pry_open(I)) + return + if(panel_open) + if(default_change_direction_wrench(user, I)) + return + if(default_deconstruction_crowbar(I)) + return + return ..() + +/obj/machinery/atmospherics/components/unary/shuttle/heater/proc/update_adjacent_engines() + var/engine_turf + switch(dir) + if(NORTH) + engine_turf = get_offset_target_turf(src, 0, -1) + if(SOUTH) + engine_turf = get_offset_target_turf(src, 0, 1) + if(EAST) + engine_turf = get_offset_target_turf(src, -1, 0) + if(WEST) + engine_turf = get_offset_target_turf(src, 1, 0) + if(!engine_turf) + return + for(var/obj/machinery/shuttle/engine/E in engine_turf) + E.check_setup() diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index 81284c9b9cd9..d8ab95c987e1 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -377,6 +377,14 @@ name = "circuit board (Xenobiology Console)" icon_state = "science" build_path = /obj/machinery/computer/camera_advanced/xenobio + +/obj/item/circuitboard/computer/shuttle/flight_control + name = "Shuttle Flight Control (Computer Board)" + build_path = /obj/machinery/computer/custom_shuttle + +/obj/item/circuitboard/computer/shuttle/docker + name = "Shuttle Navigation Computer (Computer Board)" + build_path = /obj/machinery/computer/camera_advanced/shuttle_docker/custom //Security diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 0b66104d6cd6..b81ed386e172 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -1230,3 +1230,28 @@ /obj/item/stack/sheet/mineral/silver = 1) needs_anchored = FALSE + +/obj/item/circuitboard/machine/shuttle/engine + name = "Thruster (Machine Board)" + build_path = /obj/machinery/shuttle/engine + req_components = list() + +/obj/item/circuitboard/machine/shuttle/engine/plasma + name = "Plasma Thruster (Machine Board)" + build_path = /obj/machinery/shuttle/engine/plasma + req_components = list(/obj/item/stock_parts/capacitor = 2, + /obj/item/stack/cable_coil = 5, + /obj/item/stock_parts/micro_laser = 1) + +/obj/item/circuitboard/machine/shuttle/engine/void + name = "Void Thruster (Machine Board)" + build_path = /obj/machinery/shuttle/engine/void + req_components = list(/obj/item/stock_parts/capacitor/quadratic = 2, + /obj/item/stack/cable_coil = 5, + /obj/item/stock_parts/micro_laser/quadultra = 1) + +/obj/item/circuitboard/machine/shuttle/heater + name = "Electronic Engine Heater (Machine Board)" + build_path = /obj/machinery/atmospherics/components/unary/shuttle/heater + req_components = list(/obj/item/stock_parts/micro_laser = 2, + /obj/item/stock_parts/matter_bin = 1) diff --git a/code/game/objects/items/shuttle_creator.dm b/code/game/objects/items/shuttle_creator.dm new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/code/game/objects/items/shuttle_upgrades.dm b/code/game/objects/items/shuttle_upgrades.dm new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 96ba894f1e8e..2797bcc65051 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -219,3 +219,5 @@ /// A mock client, provided by tests and friends var/datum/client_interface/mock_client + + var/create_area_cooldown diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 83400fc18f2b..53305c207cf3 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -285,3 +285,19 @@ build_path = /obj/item/circuitboard/computer/nanite_cloud_controller category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/shuttle/flight_control + name = "Computer Design (Shuttle Flight Controls)" + desc = "Allows for the construction of circuit boards used to build a console that enables shuttle flight" + id = "shuttle_control" + build_path = /obj/item/circuitboard/computer/shuttle/flight_control + category = list("Computer Boards", "Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/shuttle/shuttle_docker + name = "Computer Design (Private Navigation Computer)" + desc = "Allows for the construction of circuit boards used to build a console that enables the targetting of custom flight locations" + id = "shuttle_docker" + build_path = /obj/item/circuitboard/computer/shuttle/docker + category = list("Computer Boards", "Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 0360b7dbfa97..42433517b4e3 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -2,6 +2,38 @@ //////////////MISC Boards/////////////// //////////////////////////////////////// +/datum/design/board/shuttle/engine/plasma + name = "Machine Design (Plasma Thruster Board)" + desc = "The circuit board for a plasma thruster." + id = "engine_plasma" + build_path = /obj/item/circuitboard/machine/shuttle/engine/plasma + category = list ("Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/shuttle/engine/void + name = "Machine Design (Void Thruster Board)" + desc = "The circuit board for a void thruster." + id = "engine_void" + build_path = /obj/item/circuitboard/machine/shuttle/engine/void + category = list ("Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/shuttle/engine/heater + name = "Machine Design (Engine Heater Board)" + desc = "The circuit board for an engine heater." + id = "engine_heater" + build_path = /obj/item/circuitboard/machine/shuttle/heater + category = list ("Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/spaceship_navigation_beacon + name = "Machine Design (Bluespace Navigation Gigabeacon)" + desc = "The circuit board for a Bluespace Navigation Gigabeacon." + id = "spaceship_navigation_beacon" + build_path = /obj/item/circuitboard/machine/spaceship_navigation_beacon + category = list ("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + /datum/design/board/smes name = "Machine Design (SMES Board)" desc = "The circuit board for an SMES." diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 99924c91b004..d50cd0f7d6b4 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -3,6 +3,36 @@ /////////////////HUDs//////////////////// ///////////////////////////////////////// +/datum/design/shuttle_speed_upgrade + name = "Shuttle Route Optimisation Upgrade" + desc = "A disk that allows for calculating shorter routes when inserted into a flight control console." + id = "disk_shuttle_route" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000) + build_path = /obj/item/shuttle_route_optimisation + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/shuttle_speed_upgrade_hyper + name = "Shuttle Bluespace Hyperlane Optimisation Upgrade" + desc = "A disk that allows for calculating shorter routes when inserted into a flight control console. This one abuses bluespace hyperlanes for increased efficiency." + id = "disk_shuttle_route_hyper" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000) + build_path = /obj/item/shuttle_route_optimisation/hyperlane + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/shuttle_speed_upgrade_void + name = "Shuttle Voidspace Optimisation Upgrade" + desc = "A disk that allows for calculating shorter routes when inserted into a flight control console. This one access voidspace for increased efficiency." + id = "disk_shuttle_route_void" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000) + build_path = /obj/item/shuttle_route_optimisation/void + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + /datum/design/health_hud name = "Health Scanner HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." diff --git a/code/modules/research/designs/tool_designs.dm b/code/modules/research/designs/tool_designs.dm index ffc14a6bb941..4a983f4a3619 100644 --- a/code/modules/research/designs/tool_designs.dm +++ b/code/modules/research/designs/tool_designs.dm @@ -23,6 +23,16 @@ category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/shuttlecreator + name = "Rapid Shuttle Designator" + desc = "An advanced device capable of defining areas for use in the creation of shuttles" + id = "shuttle_creator" + build_path = /obj/item/shuttle_creator + build_type = PROTOLATHE + materials = list(/datum/material/iron = 8000, /datum/material/titanium = 5000, /datum/material/bluespace = 5000) + category = list("Tool Designs") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + /datum/design/exwelder name = "Experimental Welding Tool" desc = "An experimental welder capable of self-fuel generation." diff --git a/code/modules/research/machinery/circuit_imprinter.dm b/code/modules/research/machinery/circuit_imprinter.dm index 948dad61db94..8415564f6d09 100644 --- a/code/modules/research/machinery/circuit_imprinter.dm +++ b/code/modules/research/machinery/circuit_imprinter.dm @@ -14,7 +14,8 @@ "Subspace Telecomms", "Research Machinery", "Misc. Machinery", - "Computer Parts" + "Computer Parts", + "Shuttle Machinery" ) production_animation = "circuit_imprinter_ani" allowed_buildtypes = IMPRINTER diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 10a89987c13b..5a2caf65a5b5 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -272,6 +272,43 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 +/////////////////////////shuttle tech///////////////////////// +/datum/techweb_node/basic_shuttle_tech + id = "basic_shuttle" + display_name = "Basic Shuttle Research" + description = "Research the technology required to create and use basic shuttles." + prereq_ids = list("bluespace_travel", "adv_engi") + design_ids = list("shuttle_creator", "engine_plasma", "engine_heater", "shuttle_control", "shuttle_docker") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + export_price = 5000 + +/datum/techweb_node/shuttle_route_upgrade + id = "shuttle_route_upgrade" + display_name = "Route Optimisation Upgrade" + description = "Research into bluespace tunnelling, allowing us to reduce flight times by up to 20%!" + prereq_ids = list("basic_shuttle") + design_ids = list("disk_shuttle_route") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 2500 + +/datum/techweb_node/shuttle_route_upgrade_hyper + id = "shuttle_route_upgrade_hyper" + display_name = "Hyperlane Optimisation Upgrade" + description = "Research into bluespace hyperlane, allowing us to reduce flight times by up to 40%!" + prereq_ids = list("shuttle_route_upgrade", "micro_bluespace") + design_ids = list("disk_shuttle_route_hyper") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + export_price = 5000 + +/datum/techweb_node/shuttle_route_upgrade_void + id = "shuttle_route_upgrade_void" + display_name = "Nullspace Breaching Upgrade" + description = "Research into voidspace tunnelling, allowing us to significantly reduce flight times." + prereq_ids = list("shuttle_route_upgrade_hyper", "alientech") + design_ids = list("disk_shuttle_route_void", "engine_void") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 12500) + export_price = 5000 + /////////////////////////robotics tech///////////////////////// /datum/techweb_node/robotics id = "robotics" diff --git a/code/modules/research/techweb/layout.dm b/code/modules/research/techweb/layout.dm index 13caacb682b4..a2e777139efe 100644 --- a/code/modules/research/techweb/layout.dm +++ b/code/modules/research/techweb/layout.dm @@ -8,505 +8,525 @@ // In addition, hovering over a node will show the coordinates if do_node_drag is set /datum/techweb_node/base - ui_x = 32 - ui_y = -128 + ui_x = 32 + ui_y = -128 /datum/techweb_node/mmi - ui_x = -32 - ui_y = 96 + ui_x = -32 + ui_y = 96 /datum/techweb_node/cyborg - ui_x = -96 - ui_y = 96 + ui_x = -96 + ui_y = 96 /datum/techweb_node/mech - ui_x = -448 - ui_y = 0 + ui_x = -448 + ui_y = 0 /datum/techweb_node/mech_tools - ui_x = -448 - ui_y = -64 + ui_x = -448 + ui_y = -64 /datum/techweb_node/basic_tools - ui_x = -96 - ui_y = -384 + ui_x = -96 + ui_y = -384 /datum/techweb_node/biotech - ui_x = 160 - ui_y = -128 + ui_x = 160 + ui_y = -128 /datum/techweb_node/datatheory - ui_x = 160 - ui_y = -256 + ui_x = 160 + ui_y = -256 /datum/techweb_node/engineering - ui_x = 32 - ui_y = -256 + ui_x = 32 + ui_y = -256 /datum/techweb_node/bluespace_basic - ui_x = -96 - ui_y = -192 + ui_x = -96 + ui_y = -192 /datum/techweb_node/robotics - ui_x = -160 - ui_y = 96 + ui_x = -160 + ui_y = 96 /datum/techweb_node/emp_basic - ui_x = -96 - ui_y = -128 + ui_x = -96 + ui_y = -128 /datum/techweb_node/clown - ui_x = 256 - ui_y = -576 + ui_x = 256 + ui_y = -576 /datum/techweb_node/sec_basic - ui_x = -512 - ui_y = -672 + ui_x = -512 + ui_y = -672 /datum/techweb_node/odysseus - ui_x = 352 - ui_y = -384 + ui_x = 352 + ui_y = -384 -/datum/techweb_node/spacepod_basic - ui_x = -160 - ui_y = -448 +/datum/techweb_node/spacevehicle_basic + ui_x = -32 + ui_y = -736 /datum/techweb_node/adv_biotech - ui_x = 288 - ui_y = -96 + ui_x = 288 + ui_y = -96 /datum/techweb_node/bio_process - ui_x = 224 - ui_y = -224 + ui_x = 224 + ui_y = -224 /datum/techweb_node/imp_wt_surgery - ui_x = 224 - ui_y = 64 + ui_x = 224 + ui_y = 64 /datum/techweb_node/neural_programming - ui_x = 544 - ui_y = -160 + ui_x = 544 + ui_y = -160 /datum/techweb_node/cloning - ui_x = 288 - ui_y = -256 + ui_x = 288 + ui_y = -256 /datum/techweb_node/cryotech - ui_x = 160 - ui_y = -192 + ui_x = 160 + ui_y = -192 /datum/techweb_node/subdermal_implants - ui_x = 288 - ui_y = -32 + ui_x = 288 + ui_y = -32 /datum/techweb_node/botany - ui_x = 320 - ui_y = -224 + ui_x = 320 + ui_y = -224 /datum/techweb_node/nanite_bio - ui_x = 480 - ui_y = -288 + ui_x = 480 + ui_y = -288 /datum/techweb_node/alientech - ui_x = 288 - ui_y = 320 + ui_x = 288 + ui_y = 320 /datum/techweb_node/high_efficiency - ui_x = -32 - ui_y = -320 + ui_x = -32 + ui_y = -320 /datum/techweb_node/comptech - ui_x = 192 - ui_y = -320 + ui_x = 192 + ui_y = -320 /datum/techweb_node/cyber_implants - ui_x = 352 - ui_y = -32 + ui_x = 352 + ui_y = -32 /datum/techweb_node/nanite_base - ui_x = 480 - ui_y = -224 + ui_x = 480 + ui_y = -224 /datum/techweb_node/adv_engi - ui_x = -32 - ui_y = -256 + ui_x = -32 + ui_y = -256 /datum/techweb_node/adv_power - ui_x = -128 - ui_y = -320 + ui_x = -128 + ui_y = -320 /datum/techweb_node/practical_bluespace - ui_x = -192 - ui_y = -224 + ui_x = -192 + ui_y = -224 /datum/techweb_node/basic_plasma - ui_x = 32 - ui_y = -320 + ui_x = 32 + ui_y = -320 /datum/techweb_node/cyborg_upg_util - ui_x = -96 - ui_y = 160 + ui_x = -96 + ui_y = 160 /datum/techweb_node/basic_mining - ui_x = 96 - ui_y = -384 + ui_x = 96 + ui_y = -384 /datum/techweb_node/weaponry - ui_x = -576 - ui_y = -416 + ui_x = -576 + ui_y = -416 /datum/techweb_node/smartmine - ui_x = -512 - ui_y = -800 + ui_x = -512 + ui_y = -800 /datum/techweb_node/nanite_mesh - ui_x = 416 - ui_y = -288 + ui_x = 416 + ui_y = -288 /datum/techweb_node/spacepod_lock - ui_x = -224 - ui_y = -448 + ui_x = 32 + ui_y = -768 /datum/techweb_node/telecomms - ui_x = 256 - ui_y = -320 + ui_x = 256 + ui_y = -320 /datum/techweb_node/adv_robotics - ui_x = -160 - ui_y = 160 + ui_x = -160 + ui_y = 160 /datum/techweb_node/ai - ui_x = 608 - ui_y = -96 + ui_x = 608 + ui_y = -96 /datum/techweb_node/emp_adv - ui_x = -160 - ui_y = -128 + ui_x = -160 + ui_y = -128 /datum/techweb_node/integrated_HUDs - ui_x = -96 - ui_y = -64 + ui_x = -96 + ui_y = -64 /datum/techweb_node/electric_weapons - ui_x = -480 - ui_y = -480 + ui_x = -480 + ui_y = -480 /datum/techweb_node/camera_theory - ui_x = 96 - ui_y = -320 + ui_x = 96 + ui_y = -320 /datum/techweb_node/landmine - ui_x = -512 - ui_y = -736 + ui_x = -512 + ui_y = -736 + +/datum/techweb_node/basic_shuttle_tech + ui_x = -96 + ui_y = -736 + +/datum/techweb_node/shuttle_route_upgrade + ui_x = -160 + ui_y = -736 /datum/techweb_node/spacepod_disabler - ui_x = -64 - ui_y = -576 + ui_x = 32 + ui_y = -704 /datum/techweb_node/spacepod_pseat - ui_x = -160 - ui_y = -512 - -/datum/techweb_node/xenology - ui_x = 480 - ui_y = -96 + ui_x = 32 + ui_y = -832 /datum/techweb_node/cyborg_upg_med - ui_x = 352 - ui_y = -160 - -/datum/techweb_node/cyborg_upg_surgkit - ui_x = 416 - ui_y = -160 + ui_x = 352 + ui_y = -160 /datum/techweb_node/cyber_organs - ui_x = 352 - ui_y = -96 + ui_x = 352 + ui_y = -96 /datum/techweb_node/medical_weapons - ui_x = -480 - ui_y = -544 + ui_x = -480 + ui_y = -544 /datum/techweb_node/med_mech_tools - ui_x = 288 - ui_y = -160 + ui_x = 288 + ui_y = -160 /datum/techweb_node/alien_bio - ui_x = 224 - ui_y = 256 + ui_x = 224 + ui_y = 256 /datum/techweb_node/adv_surgery - ui_x = 288 - ui_y = 64 + ui_x = 288 + ui_y = 64 /datum/techweb_node/posibrain - ui_x = 608 - ui_y = -160 + ui_x = 608 + ui_y = -160 /datum/techweb_node/adv_cyber_implants - ui_x = 416 - ui_y = -32 + ui_x = 416 + ui_y = -32 /datum/techweb_node/nanite_synaptic - ui_x = 576 - ui_y = -352 + ui_x = 576 + ui_y = -352 /datum/techweb_node/nanite_neural - ui_x = 512 - ui_y = -352 + ui_x = 512 + ui_y = -352 /datum/techweb_node/nanite_harmonic - ui_x = 448 - ui_y = -352 + ui_x = 448 + ui_y = -352 /datum/techweb_node/alien_surgery - ui_x = 352 - ui_y = 256 + ui_x = 352 + ui_y = 256 + +/datum/techweb_node/shuttle_route_upgrade_void + ui_x = 352 + ui_y = 320 /datum/techweb_node/nanite_hazard - ui_x = 288 - ui_y = 256 + ui_x = 288 + ui_y = 256 /datum/techweb_node/alien_engi - ui_x = 224 - ui_y = 320 + ui_x = 224 + ui_y = 320 /datum/techweb_node/micro_bluespace - ui_x = -320 - ui_y = -224 + ui_x = -320 + ui_y = -224 /datum/techweb_node/combat_cyber_implants - ui_x = 480 - ui_y = -32 + ui_x = 480 + ui_y = -32 /datum/techweb_node/spacepod_storage - ui_x = -160 - ui_y = -576 + ui_x = 96 + ui_y = -832 /datum/techweb_node/spacepod_lockbuster - ui_x = -224 - ui_y = -512 + ui_x = 96 + ui_y = -768 /datum/techweb_node/spacepod_iarmor - ui_x = -224 - ui_y = -576 + ui_x = 160 + ui_y = -832 /datum/techweb_node/computer_hardware_basic - ui_x = 256 - ui_y = -448 + ui_x = 256 + ui_y = -448 /datum/techweb_node/computer_board_gaming - ui_x = 192 - ui_y = -384 + ui_x = 192 + ui_y = -384 /datum/techweb_node/comp_recordkeeping - ui_x = 256 - ui_y = -384 + ui_x = 256 + ui_y = -384 /datum/techweb_node/nanite_smart - ui_x = 544 - ui_y = -288 + ui_x = 544 + ui_y = -288 /datum/techweb_node/anomaly - ui_x = -224 - ui_y = -288 + ui_x = -224 + ui_y = -288 /datum/techweb_node/NVGtech - ui_x = -160 - ui_y = -64 + ui_x = -160 + ui_y = -64 /datum/techweb_node/adv_mining - ui_x = 96 - ui_y = -448 + ui_x = 96 + ui_y = -448 /datum/techweb_node/janitor - ui_x = -320 - ui_y = -160 + ui_x = -320 + ui_y = -160 /datum/techweb_node/exp_tools - ui_x = -96 - ui_y = -448 + ui_x = -96 + ui_y = -448 /datum/techweb_node/rcd_upgrade - ui_x = -32 - ui_y = -448 + ui_x = -32 + ui_y = -448 /datum/techweb_node/adv_weaponry - ui_x = -576 - ui_y = -576 + ui_x = -576 + ui_y = -576 /datum/techweb_node/advmine - ui_x = -448 - ui_y = -800 + ui_x = -448 + ui_y = -800 /datum/techweb_node/radioactive_weapons - ui_x = -704 - ui_y = -736 + ui_x = -704 + ui_y = -736 /datum/techweb_node/syndicate_basic - ui_x = -384 - ui_y = -672 + ui_x = -384 + ui_y = -672 /datum/techweb_node/bluespace_power - ui_x = -192 - ui_y = -352 + ui_x = -192 + ui_y = -352 /datum/techweb_node/mech_tesla - ui_x = -576 - ui_y = -256 + ui_x = -576 + ui_y = -256 /datum/techweb_node/bluespace_travel - ui_x = -256 - ui_y = -224 + ui_x = -256 + ui_y = -224 /datum/techweb_node/adv_plasma - ui_x = 32 - ui_y = -384 + ui_x = 32 + ui_y = -384 /datum/techweb_node/spacepod_ka - ui_x = -64 - ui_y = -512 + ui_x = 32 + ui_y = -640 /datum/techweb_node/ballistic_weapons - ui_x = -736 - ui_y = -416 + ui_x = -736 + ui_y = -416 /datum/techweb_node/gygax - ui_x = -672 - ui_y = -160 + ui_x = -672 + ui_y = -160 /datum/techweb_node/phazon - ui_x = -736 - ui_y = -128 + ui_x = -736 + ui_y = -128 /datum/techweb_node/adv_mecha - ui_x = -576 - ui_y = -96 + ui_x = -576 + ui_y = -96 /datum/techweb_node/emp_super - ui_x = -224 - ui_y = -128 + ui_x = -224 + ui_y = -128 /datum/techweb_node/mech_ion - ui_x = -672 - ui_y = -256 + ui_x = -672 + ui_y = -256 /datum/techweb_node/spacepod_lasers - ui_x = 0 - ui_y = -576 + ui_x = 96 + ui_y = -704 + +/datum/techweb_node/shuttle_route_upgrade_hyper + ui_x = -224 + ui_y = -736 + +/datum/techweb_node/cyborg_upg_surgkit + ui_x = 416 + ui_y = -160 /datum/techweb_node/cyber_organs_upgraded - ui_x = 416 - ui_y = -96 + ui_x = 416 + ui_y = -96 /datum/techweb_node/exp_surgery - ui_x = 352 - ui_y = 64 + ui_x = 352 + ui_y = 64 /datum/techweb_node/nanite_combat - ui_x = -320 - ui_y = -672 + ui_x = -320 + ui_y = -672 /datum/techweb_node/advanced_bluespace - ui_x = -384 - ui_y = -160 + ui_x = -384 + ui_y = -160 /datum/techweb_node/mech_teleporter - ui_x = -416 - ui_y = -256 + ui_x = -416 + ui_y = -256 /datum/techweb_node/mech_diamond_drill - ui_x = 128 - ui_y = -512 + ui_x = 96 + ui_y = -512 /datum/techweb_node/spacepod_advmining - ui_x = 0 - ui_y = -512 + ui_x = 96 + ui_y = -640 + +/datum/techweb_node/adv_rcd_upgrade + ui_x = 32 + ui_y = -448 /datum/techweb_node/beam_weapons - ui_x = -640 - ui_y = -736 + ui_x = -640 + ui_y = -736 /datum/techweb_node/explosive_weapons - ui_x = -736 - ui_y = -576 + ui_x = -736 + ui_y = -576 /datum/techweb_node/exotic_ammo - ui_x = -704 - ui_y = -672 + ui_x = -704 + ui_y = -672 /datum/techweb_node/gravity_gun - ui_x = -320 - ui_y = -288 + ui_x = -320 + ui_y = -288 /datum/techweb_node/durand - ui_x = -672 - ui_y = -96 + ui_x = -672 + ui_y = -96 /datum/techweb_node/unregulated_bluespace - ui_x = -384 - ui_y = -608 + ui_x = -384 + ui_y = -608 /datum/techweb_node/syndicate_surgery - ui_x = -320 - ui_y = -608 + ui_x = -320 + ui_y = -608 /datum/techweb_node/mech_modules - ui_x = -640 - ui_y = -32 + ui_x = -640 + ui_y = -32 /datum/techweb_node/mech_wormhole_gen - ui_x = -416 - ui_y = -320 + ui_x = -416 + ui_y = -320 /datum/techweb_node/spacepod_advplasmacutter - ui_x = 64 - ui_y = -512 + ui_x = 160 + ui_y = -640 /datum/techweb_node/mech_scattershot - ui_x = -800 - ui_y = -352 + ui_x = -800 + ui_y = -352 /datum/techweb_node/mech_carbine - ui_x = -800 - ui_y = -416 + ui_x = -800 + ui_y = -416 /datum/techweb_node/mech_lmg - ui_x = -736 - ui_y = -352 + ui_x = -736 + ui_y = -352 /datum/techweb_node/adv_mecha_tools - ui_x = -576 - ui_y = -32 + ui_x = -576 + ui_y = -32 + +/datum/techweb_node/xenology + ui_x = 480 + ui_y = -96 /datum/techweb_node/adv_beam_weapons - ui_x = -640 - ui_y = -832 + ui_x = -640 + ui_y = -832 /datum/techweb_node/mech_laser - ui_x = -704 - ui_y = -896 + ui_x = -704 + ui_y = -896 /datum/techweb_node/mech_disabler - ui_x = -448 - ui_y = -224 + ui_x = -448 + ui_y = -224 /datum/techweb_node/mech_grenade_launcher - ui_x = -800 - ui_y = -512 + ui_x = -800 + ui_y = -512 /datum/techweb_node/mech_missile_rack - ui_x = -800 - ui_y = -640 + ui_x = -800 + ui_y = -640 /datum/techweb_node/clusterbang_launcher - ui_x = -800 - ui_y = -576 + ui_x = -800 + ui_y = -576 /datum/techweb_node/mech_laser_heavy - ui_x = -576 - ui_y = -896 + ui_x = -576 + ui_y = -896 /datum/techweb_node/mech_xray - ui_x = -640 - ui_y = -896 \ No newline at end of file + ui_x = -640 + ui_y = -896 diff --git a/code/modules/shuttle/custom_shuttle.dm b/code/modules/shuttle/custom_shuttle.dm new file mode 100644 index 000000000000..74bec8cf4c11 --- /dev/null +++ b/code/modules/shuttle/custom_shuttle.dm @@ -0,0 +1,272 @@ +#define Z_DIST 500 +#define CUSTOM_ENGINES_START_TIME 65 +#define CALCULATE_STATS_COOLDOWN 2 + +/obj/machinery/computer/custom_shuttle + name = "nanotrasen shuttle flight controller" + desc = "A terminal used to fly shuttles defined by the Shuttle Zoning Designator" + circuit = /obj/item/circuitboard/computer/shuttle/flight_control + icon_screen = "shuttle" + icon_keyboard = "tech_key" + light_color = LIGHT_COLOR_CYAN + req_access = list( ) + var/shuttleId + var/possible_destinations = "whiteship_home" + var/admin_controlled + var/no_destination_swap = 0 + var/calculated_mass = 0 + var/calculated_dforce = 0 + var/calculated_speed = 0 + var/calculated_engine_count = 0 + var/calculated_consumption = 0 + var/calculated_cooldown = 0 + var/calculated_non_operational_thrusters = 0 + var/calculated_fuel_less_thrusters = 0 + var/target_fuel_cost = 0 + var/targetLocation + var/datum/browser/popup + + var/stat_calc_cooldown = 0 + + //Upgrades + var/distance_multiplier = 1 + +/obj/machinery/computer/custom_shuttle/examine(mob/user) + . = ..() + . += distance_multiplier < 1 ? "Bluespace shortcut module installed. Route is [distance_multiplier]x the original length." : "" + +/obj/machinery/computer/custom_shuttle/ui_interact(mob/user) + var/list/options = params2list(possible_destinations) + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + var/dat = "[M ? "Current Location : [M.getStatusText()]" : "Shuttle link required."]

" + if(M) + dat += "
Run Flight Calculations
" + dat += "Shuttle Data