From d15abdac1ffa9a92b62708fe71ccdbc40f29b487 Mon Sep 17 00:00:00 2001 From: Batrachophreno Date: Sun, 3 Aug 2025 12:12:44 -0400 Subject: [PATCH] Grants Xenobotanists and Xenobiologists access to the Shuttles (#21065) Permission given by Matt. Have fun y'all. Did a little extra code refactoring in here while fixing things up to be a bit more consistent. Xenoarchs also had access to the pilot room for sensor readings etc, so gave the same to xenobots/xenobios. However, while in here I got annoyed by the fact that while ACCESS_INTREPID exists, the other shuttles all rely on per-job manual overrides to their mapped objects to handle access control. Therefore, I added ACCESS_SPARK, ACCESS_QUARK, and ACCESS_CANARY, and updated all the associated jobs/objects to use them instead of a mishmash of bespoke edits. _(I would have preferred to use naming conventions like ACCESS_SHUTTLE_EXPEDITION, ACCESS_SHUTTLE_MINING, ACCESS_SHUTTLE_SCIENCE, ACCESS_SHUTTLE_INTERCEPTOR, but I was good and used the in-game names in the code, as was existing convention.)_ --- code/__DEFINES/access.dm | 18 +++ code/__DEFINES/machinery.dm | 2 +- code/game/jobs/job/captain.dm | 30 ++-- code/game/jobs/job/civilian.dm | 24 +++- code/game/jobs/job/engineering.dm | 44 ++++-- code/game/jobs/job/hra.dm | 21 ++- code/game/jobs/job/medical.dm | 20 +-- code/game/jobs/job/science.dm | 20 +-- code/game/jobs/job/security.dm | 39 ++++-- code/game/machinery/alarm.dm | 66 +++++++++ code/modules/power/apc.dm | 65 ++++----- html/changelogs/batrachophreno-quark-xeno.yml | 61 ++++++++ maps/sccv_horizon/sccv_horizon.dmm | 130 +++++------------- 13 files changed, 336 insertions(+), 204 deletions(-) create mode 100644 html/changelogs/batrachophreno-quark-xeno.yml diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 126f3c685a9..4227934b6f1 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -463,6 +463,24 @@ desc = "Ship Weapons" region = ACCESS_REGION_SUPPLY +#define ACCESS_SPARK 76 +/datum/access/spark + id = ACCESS_SPARK + desc = "Spark Shuttle" + region = ACCESS_REGION_COMMAND + +#define ACCESS_QUARK 77 +/datum/access/quark + id = ACCESS_QUARK + desc = "Quark Shuttle" + region = ACCESS_REGION_COMMAND + +#define ACCESS_CANARY 78 +/datum/access/canary + id = ACCESS_CANARY + desc = "Canary Shuttle" + region = ACCESS_REGION_COMMAND + /****************** * Central Command * ******************/ diff --git a/code/__DEFINES/machinery.dm b/code/__DEFINES/machinery.dm index 99e7946e795..4a219432b00 100644 --- a/code/__DEFINES/machinery.dm +++ b/code/__DEFINES/machinery.dm @@ -81,7 +81,7 @@ #define NETWORK_THIRD_DECK "Third Deck" #define NETWORK_INTREPID "Intrepid" // horizon shuttle, expedition/transport #define NETWORK_CANARY "Canary" // horizon shuttle, scout/fighter -#define NETWORK_QUARK "Quark" // horizon shuttle, xenoarch/science +#define NETWORK_QUARK "Quark" // horizon shuttle, xenostudies #define NETWORK_NEWS "News" #define NETWORK_CRYO_OUTPOST "#187-D Outpost" diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index bc37272235d..adbf0a4a774 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -98,15 +98,19 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca outfit = /obj/outfit/job/xo - access = list(ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_CHANGE_IDS, ACCESS_EVA, ACCESS_HEADS, - ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, - ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS,ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, - ACCESS_JANITOR, ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_JOURNALIST, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_TELEPORTER) + access = list( + ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_CHANGE_IDS, ACCESS_EVA, ACCESS_HEADS, ACCESS_ALL_PERSONAL_LOCKERS, + ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_CHAPEL_OFFICE, + ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_JANITOR, ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, + ACCESS_WEAPONS, ACCESS_JOURNALIST, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_TELEPORTER + ) - minimal_access = list(ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_SHIP_WEAPONS, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_EVA, ACCESS_HEADS, - ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, - ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, - ACCESS_JANITOR, ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_JOURNALIST, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_TELEPORTER) + minimal_access = list( + ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_SHIP_WEAPONS, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_EVA, ACCESS_HEADS, ACCESS_ALL_PERSONAL_LOCKERS, + ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_CHAPEL_OFFICE, + ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_JANITOR, ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, + ACCESS_WEAPONS, ACCESS_JOURNALIST, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_TELEPORTER + ) blacklisted_species = list(SPECIES_TAJARA_MSAI, SPECIES_TAJARA_ZHAN, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_ATTENDANT, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER) @@ -157,8 +161,14 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca outfit = /obj/outfit/job/bridge_crew - access = list(ACCESS_EVA, ACCESS_HEADS, ACCESS_MAINT_TUNNELS, ACCESS_WEAPONS, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_TELEPORTER, ACCESS_EXTERNAL_AIRLOCKS) - minimal_access = list(ACCESS_HEADS, ACCESS_EVA, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_TELEPORTER, ACCESS_EXTERNAL_AIRLOCKS) + access = list( + ACCESS_EVA, ACCESS_HEADS, ACCESS_MAINT_TUNNELS, ACCESS_WEAPONS, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, + ACCESS_TELEPORTER, ACCESS_EXTERNAL_AIRLOCKS + ) + minimal_access = list( + ACCESS_HEADS, ACCESS_EVA, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, + ACCESS_TELEPORTER, ACCESS_EXTERNAL_AIRLOCKS + ) blacklisted_species = list(SPECIES_TAJARA_MSAI, SPECIES_TAJARA_ZHAN, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_ATTENDANT, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index e18be4a85b8..7e1b855643c 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -404,8 +404,12 @@ SPECIES_SKRELL_AXIORI = 50 ) - access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_SHIP_WEAPONS, ACCESS_CARGO_BOT, ACCESS_MINING, ACCESS_MINING_STATION) - minimal_access = list(ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_SHIP_WEAPONS, ACCESS_MAILSORTING) + access = list( + ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_SHIP_WEAPONS, ACCESS_CARGO_BOT, ACCESS_MINING, ACCESS_MINING_STATION + ) + minimal_access = list( + ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_SHIP_WEAPONS, ACCESS_MAILSORTING + ) outfit = /obj/outfit/job/hangar_tech blacklisted_species = list(SPECIES_VAURCA_BREEDER) @@ -446,8 +450,12 @@ SPECIES_SKRELL_AXIORI = 50 ) - access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_MINING, ACCESS_MINING_STATION) - minimal_access = list(ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING) + access = list( + ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_SPARK + ) + minimal_access = list( + ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_SPARK + ) outfit = /obj/outfit/job/mining blacklisted_species = list(SPECIES_VAURCA_BREEDER) @@ -499,8 +507,12 @@ SPECIES_SKRELL_AXIORI = 55 ) - access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MAILSORTING) - minimal_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MAILSORTING) + access = list( + ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MAILSORTING + ) + minimal_access = list( + ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MAILSORTING + ) minimal_player_age = 7 diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 6079886817b..4f71254797b 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -17,15 +17,19 @@ SPECIES_SKRELL_AXIORI = 80 ) - access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, - ACCESS_TELEPORTER, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, ACCESS_EMERGENCY_STORAGE, ACCESS_EVA, ACCESS_LEVIATHAN, ACCESS_SHIP_WEAPONS, - ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_RESEARCH, ACCESS_MEDICAL, ACCESS_MINING, ACCESS_MAILSORTING, - ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_AI_UPLOAD, ACCESS_IT, ACCESS_INTREPID, ACCESS_NETWORK) + access = list( + ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_TELEPORTER, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, + ACCESS_EMERGENCY_STORAGE, ACCESS_EVA, ACCESS_LEVIATHAN, ACCESS_SHIP_WEAPONS, ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_RESEARCH, + ACCESS_MEDICAL, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_AI_UPLOAD, ACCESS_IT, + ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_NETWORK + ) - minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, - ACCESS_TELEPORTER, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, ACCESS_EMERGENCY_STORAGE, ACCESS_EVA, ACCESS_LEVIATHAN, ACCESS_SHIP_WEAPONS, - ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_RESEARCH, ACCESS_MEDICAL, ACCESS_MINING, ACCESS_MAILSORTING, - ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_AI_UPLOAD, ACCESS_IT, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_NETWORK) + minimal_access = list( + ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_TELEPORTER, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, + ACCESS_EMERGENCY_STORAGE, ACCESS_EVA, ACCESS_LEVIATHAN, ACCESS_SHIP_WEAPONS, ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_RESEARCH, + ACCESS_MEDICAL, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_AI_UPLOAD, ACCESS_IT, + ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_NETWORK + ) minimal_player_age = 7 outfit = /obj/outfit/job/chief_engineer @@ -89,8 +93,12 @@ SPECIES_SKRELL_AXIORI = 60 ) - access = list(ACCESS_EVA, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_SHIP_WEAPONS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_LEVIATHAN) - minimal_access = list(ACCESS_EVA, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_SHIP_WEAPONS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_LEVIATHAN) + access = list( + ACCESS_EVA, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_SHIP_WEAPONS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_LEVIATHAN + ) + minimal_access = list( + ACCESS_EVA, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_SHIP_WEAPONS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_LEVIATHAN + ) outfit = /obj/outfit/job/engineer blacklisted_species = list(SPECIES_VAURCA_BREEDER) @@ -159,8 +167,12 @@ SPECIES_SKRELL_AXIORI = 60 ) - access = list(ACCESS_EVA, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_LEVIATHAN) - minimal_access = list(ACCESS_EVA, ACCESS_ENGINE, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_LEVIATHAN) + access = list( + ACCESS_EVA, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_LEVIATHAN + ) + minimal_access = list( + ACCESS_EVA, ACCESS_ENGINE, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_LEVIATHAN + ) outfit = /obj/outfit/job/atmos blacklisted_species = list(SPECIES_VAURCA_BREEDER) @@ -222,8 +234,12 @@ intro_prefix = "an" supervisors = "the Chief Engineer" selection_color = "#c67519" - access = list(ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE) - minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE) + access = list( + ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE + ) + minimal_access = list( + ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE + ) outfit = /obj/outfit/job/intern_eng blacklisted_species = list(SPECIES_VAURCA_BREEDER) diff --git a/code/game/jobs/job/hra.dm b/code/game/jobs/job/hra.dm index fed103e82fb..50251bcc6bd 100644 --- a/code/game/jobs/job/hra.dm +++ b/code/game/jobs/job/hra.dm @@ -12,14 +12,25 @@ selection_color = "#c9ad12" - access = list(ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_EVA, ACCESS_HEADS, ACCESS_MAINT_TUNNELS, - ACCESS_CONSTRUCTION, ACCESS_RESEARCH, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_CENT_CCIA) + access = list( + ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_EVA, ACCESS_HEADS, ACCESS_MAINT_TUNNELS, + ACCESS_CONSTRUCTION, ACCESS_RESEARCH, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, + ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_CENT_CCIA + ) - minimal_access = list(ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_EVA, ACCESS_HEADS, ACCESS_MAINT_TUNNELS, - ACCESS_CONSTRUCTION, ACCESS_RESEARCH, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, ACCESS_CENT_CCIA) + minimal_access = list( + ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_EVA, ACCESS_HEADS, ACCESS_MAINT_TUNNELS, + ACCESS_CONSTRUCTION, ACCESS_RESEARCH, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_BRIDGE_CREW, ACCESS_INTREPID, + ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_CENT_CCIA + ) outfit = /obj/outfit/job/hra - blacklisted_species = list(SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_MSAI, SPECIES_TAJARA_ZHAN, SPECIES_UNATHI, SPECIES_DIONA, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_ATTENDANT, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER, SPECIES_DIONA, SPECIES_DIONA_COEUS) + blacklisted_species = list( + SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_MSAI, SPECIES_TAJARA_ZHAN, SPECIES_UNATHI, + SPECIES_DIONA, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, + SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_ATTENDANT, + SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER, SPECIES_DIONA, SPECIES_DIONA_COEUS + ) /obj/outfit/job/hra diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 2eaaa321154..e8df542104b 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -17,14 +17,18 @@ SPECIES_SKRELL_AXIORI = 80 ) - access = list(ACCESS_MEDICAL, ACCESS_MEDICAL_EQUIP, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_HEADS, - ACCESS_PHARMACY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_CONSTRUCTION, - ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_PSYCHIATRIST, ACCESS_EVA, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, - ACCESS_PARAMEDIC, ACCESS_MAINT_TUNNELS, ACCESS_INTREPID, ACCESS_TELEPORTER) - minimal_access = list(ACCESS_MEDICAL, ACCESS_MEDICAL_EQUIP, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_HEADS, - ACCESS_PHARMACY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_CONSTRUCTION, - ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_PSYCHIATRIST, ACCESS_EVA, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, - ACCESS_PARAMEDIC, ACCESS_MAINT_TUNNELS, ACCESS_INTREPID, ACCESS_TELEPORTER) + access = list( + ACCESS_MEDICAL, ACCESS_MEDICAL_EQUIP, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_HEADS, + ACCESS_PHARMACY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_CONSTRUCTION, + ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_PSYCHIATRIST, ACCESS_EVA, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, + ACCESS_PARAMEDIC, ACCESS_MAINT_TUNNELS, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_TELEPORTER + ) + minimal_access = list( + ACCESS_MEDICAL, ACCESS_MEDICAL_EQUIP, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_HEADS, + ACCESS_PHARMACY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_CONSTRUCTION, + ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_PSYCHIATRIST, ACCESS_EVA, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, + ACCESS_PARAMEDIC, ACCESS_MAINT_TUNNELS, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_TELEPORTER + ) minimal_player_age = 10 outfit = /obj/outfit/job/cmo diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index a6d17d0a709..95e7a4ba55c 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -21,13 +21,13 @@ ACCESS_RD, ACCESS_HEADS, ACCESS_TOX, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_EVA, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_TOX_STORAGE, ACCESS_TELEPORTER, ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_CONSTRUCTION, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_XENOBOTANY, ACCESS_AI_UPLOAD, ACCESS_TECH_STORAGE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, - ACCESS_XENOARCH, ACCESS_NETWORK, ACCESS_MAINT_TUNNELS, ACCESS_IT, ACCESS_INTREPID + ACCESS_XENOARCH, ACCESS_NETWORK, ACCESS_MAINT_TUNNELS, ACCESS_IT, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY ) minimal_access = list( ACCESS_RD, ACCESS_HEADS, ACCESS_TOX, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_EVA, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_TOX_STORAGE, ACCESS_TELEPORTER, ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_CONSTRUCTION, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_XENOBOTANY, ACCESS_AI_UPLOAD, ACCESS_TECH_STORAGE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, - ACCESS_XENOARCH, ACCESS_NETWORK, ACCESS_MAINT_TUNNELS, ACCESS_IT, ACCESS_INTREPID + ACCESS_XENOARCH, ACCESS_NETWORK, ACCESS_MAINT_TUNNELS, ACCESS_IT, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY ) minimal_player_age = 14 outfit = /obj/outfit/job/rd @@ -77,8 +77,8 @@ SPECIES_SKRELL_AXIORI = 60 ) - access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_INTREPID) - minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_INTREPID) + access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY) + minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY) minimal_player_age = 14 outfit = /obj/outfit/job/scientist @@ -132,8 +132,8 @@ SPECIES_SKRELL_AXIORI = 60 ) - access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOARCH, ACCESS_INTREPID) - minimal_access = list(ACCESS_RESEARCH, ACCESS_XENOARCH, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_INTREPID) + access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOARCH, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY) + minimal_access = list(ACCESS_RESEARCH, ACCESS_XENOARCH, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY) minimal_player_age = 14 outfit = /obj/outfit/job/scientist/xenoarchaeologist @@ -181,8 +181,8 @@ SPECIES_SKRELL_AXIORI = 60 ) - access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY) - minimal_access = list(ACCESS_TOX, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_TOX_STORAGE) + access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY) + minimal_access = list(ACCESS_TOX, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_TOX_STORAGE, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY) minimal_player_age = 14 @@ -213,8 +213,8 @@ SPECIES_SKRELL_AXIORI = 60 ) - access = list(ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBOTANY, ACCESS_TOX) - minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBOTANY) + access = list(ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBOTANY, ACCESS_TOX, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY) + minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBOTANY, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY) minimal_player_age = 14 diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index c80d7ebc0a2..daf4503f110 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -17,18 +17,19 @@ SPECIES_SKRELL_AXIORI = 80 ) - access = list(ACCESS_SECURITY, ACCESS_EVA, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, - ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, - ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, - ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_EXTERNAL_AIRLOCKS, - ACCESS_WEAPONS, ACCESS_INTREPID, ACCESS_TELEPORTER) - - minimal_access = list(ACCESS_SECURITY, ACCESS_EVA, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, - ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, - ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, - ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_EXTERNAL_AIRLOCKS, - ACCESS_WEAPONS, ACCESS_INTREPID, ACCESS_TELEPORTER) + access = list( + ACCESS_SECURITY, ACCESS_EVA, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, + ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_MINING, + ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, + ACCESS_GATEWAY, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_WEAPONS, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_TELEPORTER + ) + minimal_access = list( + ACCESS_SECURITY, ACCESS_EVA, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, + ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_SHIP_WEAPONS, ACCESS_MINING, + ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, + ACCESS_GATEWAY, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_WEAPONS, ACCESS_INTREPID, ACCESS_SPARK, ACCESS_QUARK, ACCESS_CANARY, ACCESS_TELEPORTER + ) minimal_player_age = 14 outfit = /obj/outfit/job/hos @@ -154,8 +155,12 @@ SPECIES_SKRELL_AXIORI = 60 ) - access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_WEAPONS) - minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_WEAPONS) + access = list( + ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_WEAPONS + ) + minimal_access = list( + ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_WEAPONS + ) minimal_player_age = 3 outfit = /obj/outfit/job/forensics blacklisted_species = list(SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_XION_REMOTE, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER) @@ -208,8 +213,12 @@ SPECIES_SKRELL_AXIORI = 50 ) - access = list(ACCESS_SECURITY, ACCESS_EVA, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_WEAPONS) - minimal_access = list(ACCESS_SECURITY, ACCESS_EVA, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_WEAPONS) + access = list( + ACCESS_SECURITY, ACCESS_EVA, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_WEAPONS + ) + minimal_access = list( + ACCESS_SECURITY, ACCESS_EVA, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_WEAPONS + ) minimal_player_age = 7 outfit = /obj/outfit/job/officer diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 0f262a7b2c9..4382045aecf 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -296,6 +296,72 @@ pixel_x = 10; /obj/machinery/alarm/warm/south PRESET_SOUTH +/// Air alarm parent objs for Horizon shuttles. Handles access control without needing to manually override anything in mapping. +/obj/machinery/alarm/shuttle + desc = "A device that controls the local air regulation machinery. This one is designed for use in shuttles." + req_access = null + highpower = 1 + +/obj/machinery/alarm/shuttle/intrepid + req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_ATMOSPHERICS, ACCESS_INTREPID) + +/obj/machinery/alarm/shuttle/intrepid/north + PRESET_NORTH + +/obj/machinery/alarm/shuttle/intrepid/east + PRESET_EAST + +/obj/machinery/alarm/shuttle/intrepid/west + PRESET_WEST + +/obj/machinery/alarm/shuttle/intrepid/south + PRESET_SOUTH + +/obj/machinery/alarm/shuttle/spark + req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_ATMOSPHERICS, ACCESS_SPARK) + +/obj/machinery/alarm/shuttle/spark/north + PRESET_NORTH + +/obj/machinery/alarm/shuttle/spark/east + PRESET_EAST + +/obj/machinery/alarm/shuttle/spark/west + PRESET_WEST + +/obj/machinery/alarm/shuttle/spark/south + PRESET_SOUTH + +/obj/machinery/alarm/shuttle/quark + req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_ATMOSPHERICS, ACCESS_QUARK) + +/obj/machinery/alarm/shuttle/quark/north + PRESET_NORTH + +/obj/machinery/alarm/shuttle/quark/east + PRESET_EAST + +/obj/machinery/alarm/shuttle/quark/west + PRESET_WEST + +/obj/machinery/alarm/shuttle/quark/south + PRESET_SOUTH + +/obj/machinery/alarm/shuttle/canary + req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_ATMOSPHERICS, ACCESS_CANARY) + +/obj/machinery/alarm/shuttle/canary/north + PRESET_NORTH + +/obj/machinery/alarm/shuttle/canary/east + PRESET_EAST + +/obj/machinery/alarm/shuttle/canary/west + PRESET_WEST + +/obj/machinery/alarm/shuttle/canary/south + PRESET_SOUTH + /obj/machinery/alarm/server/Initialize() . = ..() TLV[GAS_OXYGEN] = list(-1.0, -1.0,-1.0,-1.0) // Partial pressure, kpa diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 31441791c05..51d80bce0e3 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1543,87 +1543,87 @@ ABSTRACT_TYPE(/obj/machinery/power/apc) dir = SOUTH pixel_y = -4 -/obj/machinery/power/apc/intrepid +/obj/machinery/power/apc/shuttle/intrepid cell_type = /obj/item/cell/high req_access = null - req_one_access = list(ACCESS_INTREPID,ACCESS_ENGINE_EQUIP) + req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_INTREPID) -/obj/machinery/power/apc/intrepid/north +/obj/machinery/power/apc/shuttle/intrepid/north dir = NORTH pixel_y = 22 -/obj/machinery/power/apc/intrepid/east +/obj/machinery/power/apc/shuttle/intrepid/east dir = EAST pixel_x = 12 -/obj/machinery/power/apc/intrepid/west +/obj/machinery/power/apc/shuttle/intrepid/west dir = WEST pixel_x = -12 -/obj/machinery/power/apc/intrepid/south +/obj/machinery/power/apc/shuttle/intrepid/south dir = SOUTH pixel_y = -4 -/obj/machinery/power/apc/canary +/obj/machinery/power/apc/shuttle/canary cell_type = /obj/item/cell/high req_access = null - req_one_access = list(ACCESS_INTREPID,ACCESS_ENGINE_EQUIP) + req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_CANARY) -/obj/machinery/power/apc/canary/north +/obj/machinery/power/apc/shuttle/canary/north dir = NORTH pixel_y = 22 -/obj/machinery/power/apc/canary/east +/obj/machinery/power/apc/shuttle/canary/east dir = EAST pixel_x = 12 -/obj/machinery/power/apc/canary/west +/obj/machinery/power/apc/shuttle/canary/west dir = WEST pixel_x = -12 -/obj/machinery/power/apc/canary/south +/obj/machinery/power/apc/shuttle/canary/south dir = SOUTH pixel_y = -4 -ABSTRACT_TYPE(/obj/machinery/power/apc/quark) +ABSTRACT_TYPE(/obj/machinery/power/apc/shuttle/quark) cell_type = /obj/item/cell/high req_access = null - req_one_access = list(ACCESS_XENOARCH, ACCESS_RESEARCH, ACCESS_BRIDGE_CREW) + req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_QUARK) -/obj/machinery/power/apc/quark/north +/obj/machinery/power/apc/shuttle/quark/north dir = NORTH pixel_y = 22 -/obj/machinery/power/apc/quark/east +/obj/machinery/power/apc/shuttle/quark/east dir = EAST pixel_x = 12 -/obj/machinery/power/apc/quark/west +/obj/machinery/power/apc/shuttle/quark/west dir = WEST pixel_x = -12 -/obj/machinery/power/apc/quark/south +/obj/machinery/power/apc/shuttle/quark/south dir = SOUTH pixel_y = -4 -/obj/machinery/power/apc/mining_shuttle +/obj/machinery/power/apc/shuttle/spark cell_type = /obj/item/cell/high req_access = null - req_one_access = list(ACCESS_MINING,ACCESS_ENGINE_EQUIP) + req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_SPARK) -/obj/machinery/power/apc/mining_shuttle/north +/obj/machinery/power/apc/shuttle/spark/north dir = NORTH pixel_y = 22 -/obj/machinery/power/apc/mining_shuttle/east +/obj/machinery/power/apc/shuttle/spark/east dir = EAST pixel_x = 12 -/obj/machinery/power/apc/mining_shuttle/west +/obj/machinery/power/apc/shuttle/spark/west dir = WEST pixel_x = -12 -/obj/machinery/power/apc/mining_shuttle/south +/obj/machinery/power/apc/shuttle/spark/south dir = SOUTH pixel_y = -4 @@ -1637,23 +1637,6 @@ ABSTRACT_TYPE(/obj/machinery/power/apc/quark) coverlocked = FALSE start_charge = 100 -/obj/machinery/power/apc/canary/north - dir = NORTH - pixel_y = 22 - -/obj/machinery/power/apc/canary/east - dir = EAST - pixel_x = 12 - -/obj/machinery/power/apc/canary/west - dir = WEST - pixel_x = -12 - -/obj/machinery/power/apc/canary/south - dir = SOUTH - pixel_y = -4 - - /obj/machinery/power/apc/super cell_type = /obj/item/cell/super diff --git a/html/changelogs/batrachophreno-quark-xeno.yml b/html/changelogs/batrachophreno-quark-xeno.yml new file mode 100644 index 00000000000..c089f4d1799 --- /dev/null +++ b/html/changelogs/batrachophreno-quark-xeno.yml @@ -0,0 +1,61 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: Batrachophrenoboocosmomachia + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - balance: "Added Xenobiology and Xenobotany to the job roles allowed to pilot shuttles." + - balance: "Added Xenobiology and Xenobotany to the job roles allowed to access the Pilot Room." + - refactor: "Added defined ACCESS_* roles for the Spark, Quark, and Canary to make them easier to manage in future (only need to update shuttle access rights from job access lists)." + - code_imp: "Created new prefab APCs and Air Alarms for the different shuttles to make it easier to build (no more manually overriding access_req on default objs)." diff --git a/maps/sccv_horizon/sccv_horizon.dmm b/maps/sccv_horizon/sccv_horizon.dmm index ad95086b9c3..808e0671d37 100644 --- a/maps/sccv_horizon/sccv_horizon.dmm +++ b/maps/sccv_horizon/sccv_horizon.dmm @@ -10944,9 +10944,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 10 }, -/obj/machinery/power/apc/mining_shuttle/east{ - req_one_access = list(48,11,74) - }, +/obj/machinery/power/apc/shuttle/mining/east, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/mining) "bzL" = ( @@ -15234,16 +15232,13 @@ /area/horizon/holodeck/source_dininghall) "chG" = ( /obj/effect/floor_decal/corner/lime/diagonal, -/obj/machinery/power/apc/east{ - req_access = null; - req_one_access = list(11, 24, 47, 65) - }, /obj/machinery/sleeper{ dir = 8 }, /obj/structure/cable/green{ icon_state = "0-8" }, +/obj/machinery/power/apc/shuttle/intrepid/east, /turf/simulated/floor/tiled/white, /area/horizon/shuttle/intrepid/medical) "chI" = ( @@ -18052,11 +18047,8 @@ "cAL" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/light/small, -/obj/machinery/power/apc/west{ - req_access = null; - req_one_access = list(11, 24, 47, 65) - }, /obj/structure/cable/green, +/obj/machinery/power/apc/shuttle/intrepid/west, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/junction_compartment) "cAM" = ( @@ -20849,14 +20841,11 @@ /obj/structure/bed/handrail{ dir = 8 }, -/obj/machinery/power/apc/east{ - req_access = null; - req_one_access = list(11, 24, 47, 65) - }, /obj/structure/cable/green{ d2 = 2; icon_state = "0-2" }, +/obj/machinery/power/apc/shuttle/intrepid/east, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/starboard_compartment) "cVc" = ( @@ -21103,9 +21092,6 @@ /turf/simulated/floor/tiled, /area/horizon/security/equipment) "cWK" = ( -/obj/machinery/alarm/east{ - req_one_access = list(11, 24, 47, 65) - }, /obj/machinery/light/small{ dir = 4 }, @@ -21128,6 +21114,7 @@ /obj/effect/floor_decal/spline/plain/black{ dir = 4 }, +/obj/machinery/alarm/shuttle/intrepid/east, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/intrepid/junction_compartment) "cWM" = ( @@ -40052,11 +40039,9 @@ /turf/simulated/floor/tiled/full, /area/horizon/maintenance/deck_3/aft/holodeck) "fHC" = ( -/obj/machinery/alarm/south{ - req_one_access = list(11, 24, 47, 65) - }, /obj/effect/floor_decal/corner/grey/diagonal, /obj/structure/table/stone/marble, +/obj/machinery/alarm/shuttle/intrepid/south, /turf/simulated/floor/tiled/white, /area/horizon/shuttle/intrepid/buffet) "fHQ" = ( @@ -43210,9 +43195,7 @@ /obj/structure/bed/handrail{ dir = 8 }, -/obj/machinery/power/apc/canary/east{ - req_one_access = list(73,74,11) - }, +/obj/machinery/power/apc/shuttle/canary/east, /obj/machinery/atmospherics/binary/pump/fuel{ dir = 1; name = "Fuel Tank to Thrusters" @@ -55491,7 +55474,9 @@ dir = 1 }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_research, +/obj/machinery/door/airlock/glass_research{ + req_one_access = list(77) + }, /obj/structure/cable/green{ icon_state = "1-2" }, @@ -56592,9 +56577,7 @@ /obj/structure/cable/green{ icon_state = "0-2" }, -/obj/machinery/power/apc/quark/west{ - req_one_access = list(65,47,74,74) - }, +/obj/machinery/power/apc/shuttle/quark/west, /turf/simulated/floor/plating, /area/horizon/shuttle/quark/cargo_hold) "hYI" = ( @@ -56916,16 +56899,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ dir = 10 }, -/obj/machinery/alarm/west{ - pixel_y = 14; - req_one_access = list(24,11,48,74) - }, /obj/item/storage/firstaid/regular, /obj/item/material/hatchet/machete/steel, /obj/item/material/hatchet/machete/steel, /obj/item/clothing/accessory/holster/utility/machete, /obj/item/clothing/accessory/holster/utility/machete, /obj/item/tent/mining, +/obj/machinery/alarm/shuttle/spark/west, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/mining) "iaR" = ( @@ -58620,9 +58600,7 @@ icon_state = "4-8" }, /obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/alarm/north{ - req_one_access = list(11, 24, 47, 65) - }, +/obj/machinery/alarm/shuttle/intrepid/north, /turf/simulated/floor/plating, /area/horizon/shuttle/intrepid/port_compartment) "inb" = ( @@ -66737,11 +66715,6 @@ dir = 1 }, /obj/item/storage/bag/inflatable, -/obj/machinery/alarm/east{ - dir = 2; - pixel_x = 0; - req_one_access = list(24,11,73,74) - }, /obj/item/device/gps/stationary/sccv_canary{ pixel_x = 23; pixel_y = -9 @@ -66749,6 +66722,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ dir = 5 }, +/obj/machinery/alarm/shuttle/canary/south, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/canary) "jwt" = ( @@ -67264,9 +67238,7 @@ /obj/effect/floor_decal/spline/plain/black{ dir = 1 }, -/obj/machinery/alarm/east{ - req_one_access = list(11, 24, 47, 65) - }, +/obj/machinery/alarm/shuttle/intrepid/east, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/main_compartment) "jAs" = ( @@ -73385,7 +73357,7 @@ /obj/machinery/door/airlock/glass_command{ dir = 4; name = "Pilot Room"; - req_one_access = list(73,48,65) + req_one_access = list(73,76,77,78) }, /obj/machinery/door/blast/regular/open{ id = "hangarlockdown"; @@ -85462,9 +85434,7 @@ dir = 8 }, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/alarm/east{ - req_one_access = list(11, 24, 47, 65) - }, +/obj/machinery/alarm/shuttle/intrepid/east, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/port_storage) "mcA" = ( @@ -86143,7 +86113,7 @@ "mir" = ( /obj/machinery/computer/ship/helm/terminal{ dir = 1; - req_one_access = list(65,74) + req_one_access = list(77) }, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/quark/cockpit) @@ -88322,10 +88292,7 @@ d2 = 4; icon_state = "0-4" }, -/obj/machinery/power/apc/north{ - req_access = null; - req_one_access = list(11, 73) - }, +/obj/machinery/power/apc/shuttle/intrepid/north, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/intrepid/flight_deck) "mBq" = ( @@ -97522,7 +97489,7 @@ /obj/machinery/computer/shuttle_control/explore/terminal/quark{ dir = 1; req_access = null; - req_one_access = list(65,74) + req_one_access = list(77) }, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/quark/cockpit) @@ -100904,13 +100871,13 @@ /obj/structure/bed/stool/chair/shuttle, /obj/machinery/computer/ship/helm/cockpit{ pixel_y = -24; - req_one_access = list(48,74) + req_one_access = list(76) }, /obj/machinery/computer/shuttle_control/explore/mining_shuttle{ dir = 8; pixel_x = 27; - req_access = null; - req_one_access = list(48,74) + req_one_access = list(76); + req_access = null }, /obj/effect/floor_decal/industrial/outline/grey, /obj/item/device/radio/intercom/expedition/west{ @@ -109609,9 +109576,7 @@ /obj/structure/bed/handrail{ dir = 8 }, -/obj/machinery/alarm/south{ - req_one_access = list(11, 24, 47, 65) - }, +/obj/machinery/alarm/shuttle/intrepid/south, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/intrepid/engineering) "pFx" = ( @@ -112306,7 +112271,7 @@ /obj/machinery/door/airlock/glass_command{ dir = 1; name = "Pilot Room"; - req_one_access = list(73,48,65) + req_one_access = list(73,76,77,78) }, /obj/structure/cable/green{ icon_state = "1-2" @@ -114022,9 +113987,6 @@ /obj/effect/floor_decal/industrial/warning{ dir = 8 }, -/obj/machinery/alarm/east{ - req_one_access = list(24,11,47) - }, /obj/structure/closet/crate/plastic, /obj/item/storage/bag/inflatable, /obj/item/storage/box/flares, @@ -114033,6 +113995,7 @@ /obj/random/tool, /obj/item/device/radio/sci, /obj/item/tent, +/obj/machinery/alarm/shuttle/quark/east, /turf/simulated/floor/plating, /area/horizon/shuttle/quark/cargo_hold) "qpU" = ( @@ -115584,13 +115547,10 @@ /obj/structure/bed/stool/chair/shuttle/double{ pixel_x = -8 }, -/obj/machinery/power/apc/west{ - req_access = null; - req_one_access = list(11, 24, 47, 65) - }, /obj/structure/cable/green{ icon_state = "0-4" }, +/obj/machinery/power/apc/shuttle/intrepid/west, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/main_compartment) "qBH" = ( @@ -123396,10 +123356,6 @@ /obj/item/reagent_containers/food/snacks/koisbar_clean, /obj/item/storage/box/fancy/egg_box, /obj/item/reagent_containers/food/drinks/carton/milk, -/obj/machinery/power/apc/west{ - req_access = null; - req_one_access = list(11, 24, 47, 65) - }, /obj/structure/cable/green{ icon_state = "0-4" }, @@ -123410,6 +123366,7 @@ dir = 1; c_tag = "Intrepid - Buffet" }, +/obj/machinery/power/apc/shuttle/intrepid/west, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/buffet) "rIu" = ( @@ -137880,9 +137837,7 @@ /obj/effect/floor_decal/spline/plain/black{ dir = 10 }, -/obj/machinery/alarm/north{ - req_one_access = list(11, 24, 47, 65) - }, +/obj/machinery/alarm/shuttle/intrepid/north, /turf/simulated/floor/tiled/dark/full, /area/horizon/shuttle/intrepid/starboard_compartment) "tHH" = ( @@ -137910,15 +137865,12 @@ d2 = 2; icon_state = "0-2" }, -/obj/machinery/power/apc/north{ - req_one_access = list(11, 24, 47, 65); - req_access = null - }, /obj/structure/bed/handrail, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, /obj/machinery/atmospherics/pipe/simple/hidden/fuel, +/obj/machinery/power/apc/shuttle/intrepid/north, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/intrepid/port_storage) "tHP" = ( @@ -151924,10 +151876,7 @@ /obj/structure/cable/green{ icon_state = "0-4" }, -/obj/machinery/power/apc/north{ - req_one_access = list(11, 24, 47, 65); - req_access = null - }, +/obj/machinery/power/apc/shuttle/intrepid/north, /turf/simulated/floor/plating, /area/horizon/shuttle/intrepid/port_compartment) "vFQ" = ( @@ -166621,10 +166570,7 @@ /obj/machinery/atmospherics/binary/passive_gate/on{ name = "Air Tank to Air Distribution" }, -/obj/machinery/power/apc/west{ - req_access = null; - req_one_access = list(11, 24, 47, 65) - }, +/obj/machinery/power/apc/shuttle/intrepid/west, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/intrepid/engineering) "xFT" = ( @@ -168604,7 +168550,7 @@ pixel_y = -4 }, /obj/machinery/door/window/northright{ - req_one_access = list(73,74) + req_one_access = list(77) }, /obj/item/clothing/head/helmet/pilot/scc{ pixel_x = -9; @@ -168825,9 +168771,7 @@ /obj/effect/floor_decal/industrial/warning/corner{ dir = 1 }, -/obj/machinery/alarm/north{ - req_one_access = list(11, 73) - }, +/obj/machinery/alarm/shuttle/intrepid/north, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/intrepid/flight_deck) "xYC" = ( @@ -170555,9 +170499,6 @@ req_access = null; pixel_y = 32 }, -/obj/machinery/alarm/east{ - req_one_access = list(24,11,65,74) - }, /obj/item/paper_bin{ pixel_y = 3; pixel_x = 4 @@ -170569,8 +170510,9 @@ /obj/structure/cable/green{ icon_state = "0-8" }, -/obj/machinery/power/apc/quark/south, +/obj/machinery/power/apc/shuttle/quark/south, /obj/item/storage/firstaid/regular, +/obj/machinery/alarm/shuttle/quark/east, /turf/simulated/floor/tiled/dark, /area/horizon/shuttle/quark/cockpit) "yjB" = (