mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 03:26:31 +01:00
be1f231869
## About The Pull Request This PR makes all R&D console boards that are either printed or sourced from tech storage start out locked. They can be unlocked by swiping them with an ID that has research access. R&D consoles can also be unlocked with an emag, but doing so will break their comms circuit as well, making all researched nodes broadcast over public comms. You can still emag the console itself after it's been constructed without breaking it in any way, while also silencing announcements instead. (that's definitely a noob trap, but it's out of scope for this PR) The reason why the tech storage board is locked as well is because the goal of this PR is to stop engineers from making R&D consoles, and engineers have access to tech storage. Leaving the board unlocked and moving it to secure tech storage would make engineers break in there every shift. The changelog basically has a FAQ for "Okay, so what do I do instead?", because I know people will be confused about what route they're intended to take when science closes their desk shutters for the umpteenth time this week. ## Why It's Good For The Game Engineering has a habit of making an R&D console every round to bypass having to ask science or a head of staff to research things. Locking the consoles at least makes engineers consider asking science to do science's job. Note that this doesn't solve the issue entirely, it just removes the easiest and most convenient way of bypassing science. Engineers can still break into R&D extremely easily using their wire knowledge, and do so regularly. More importantly though, this might shine some light on the fact that heads of department like the CE have remote access to the research network via their PDAs. This means engineers can ask the CE to research things for them. Asking people with access to the research network to research things is a lot better for roleplay and immersion than having engineering construct R&D consoles every shift. ## Changelog 🆑 balance: R&D console boards sourced from printing or tech storage are now locked by default. It's recommended to ask your respective head of department or the science department to complete research for you. Heads of department can remotely access the research network using their PDAs. /🆑
698 lines
25 KiB
Plaintext
698 lines
25 KiB
Plaintext
/obj/item/circuitboard/computer
|
|
name = "Generic"
|
|
abstract_type = /obj/item/circuitboard/computer
|
|
name_extension = "(Computer Board)"
|
|
|
|
/obj/item/circuitboard/computer/examine()
|
|
. = ..()
|
|
if(GetComponent(/datum/component/gps))
|
|
. += span_info("there's a small, blinking light!")
|
|
|
|
//Command
|
|
|
|
/obj/item/circuitboard/computer/aiupload
|
|
name = "AI Upload"
|
|
greyscale_colors = CIRCUIT_COLOR_COMMAND
|
|
build_path = /obj/machinery/computer/upload/ai
|
|
|
|
/obj/item/circuitboard/computer/borgupload
|
|
name = "Cyborg Upload"
|
|
greyscale_colors = CIRCUIT_COLOR_COMMAND
|
|
build_path = /obj/machinery/computer/upload/borg
|
|
|
|
/obj/item/circuitboard/computer/bsa_control
|
|
name = "Bluespace Artillery Controls"
|
|
build_path = /obj/machinery/computer/bsa_control
|
|
|
|
/obj/item/circuitboard/computer/accounting
|
|
name = "Account Lookup Console"
|
|
greyscale_colors = CIRCUIT_COLOR_COMMAND
|
|
build_path = /obj/machinery/computer/accounting
|
|
|
|
/obj/item/circuitboard/computer/bankmachine
|
|
name = "Bank Machine Console"
|
|
greyscale_colors = CIRCUIT_COLOR_COMMAND
|
|
build_path = /obj/machinery/computer/bank_machine
|
|
|
|
//Engineering
|
|
|
|
/obj/item/circuitboard/computer/apc_control
|
|
name = "\improper Power Flow Control Console"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/apc_control
|
|
|
|
/obj/item/circuitboard/computer/atmos_alert
|
|
name = "Atmospheric Alert"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/atmos_alert
|
|
var/station_only = FALSE
|
|
|
|
/obj/item/circuitboard/computer/atmos_alert/station_only
|
|
station_only = TRUE
|
|
|
|
/obj/item/circuitboard/computer/atmos_alert/examine(mob/user)
|
|
. = ..()
|
|
. += span_info("The board is configured to [station_only ? "track all station and mining alarms" : "track alarms on the same z-level"].")
|
|
. += span_notice("The board mode can be changed with a [EXAMINE_HINT("multitool")].")
|
|
|
|
/obj/item/circuitboard/computer/atmos_alert/multitool_act(mob/living/user)
|
|
station_only = !station_only
|
|
balloon_alert(user, "tracking set to [station_only ? "station" : "z-level"]")
|
|
return TRUE
|
|
|
|
/obj/item/circuitboard/computer/atmos_control
|
|
name = "Atmospheric Control"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/atmos_control
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/nocontrol
|
|
name = "Atmospheric Monitor"
|
|
build_path = /obj/machinery/computer/atmos_control/nocontrol
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/noreconnect
|
|
name = "Atmospheric Control"
|
|
build_path = /obj/machinery/computer/atmos_control/noreconnect
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/fixed
|
|
name = "Atmospheric Monitor"
|
|
build_path = /obj/machinery/computer/atmos_control/fixed
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/nocontrol/master
|
|
name = "Station Atmospheric Monitor"
|
|
build_path = /obj/machinery/computer/atmos_control/nocontrol/master
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/nocontrol/incinerator
|
|
name = "Incinerator Chamber Monitor"
|
|
build_path = /obj/machinery/computer/atmos_control/nocontrol/incinerator
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/ordnancemix
|
|
name = "Ordnance Chamber Control"
|
|
build_path = /obj/machinery/computer/atmos_control/ordnancemix
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/oxygen_tank
|
|
name = "Oxygen Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/oxygen_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/plasma_tank
|
|
name = "Plasma Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/plasma_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/air_tank
|
|
name = "Mixed Air Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/air_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/mix_tank
|
|
name = "Gas Mix Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/mix_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/nitrous_tank
|
|
name = "Nitrous Oxide Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/nitrous_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/nitrogen_tank
|
|
name = "Nitrogen Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/nitrogen_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/carbon_tank
|
|
name = "Carbon Dioxide Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/carbon_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/bz_tank
|
|
name = "BZ Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/bz_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/freon_tank
|
|
name = "Freon Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/freon_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/halon_tank
|
|
name = "Halon Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/halon_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/healium_tank
|
|
name = "Healium Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/healium_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/hydrogen_tank
|
|
name = "Hydrogen Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/hydrogen_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/hypernoblium_tank
|
|
name = "Hypernoblium Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/hypernoblium_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/miasma_tank
|
|
name = "Miasma Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/miasma_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/nitrium_tank
|
|
name = "Nitrium Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/nitrium_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/pluoxium_tank
|
|
name = "Pluoxium Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/pluoxium_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/proto_nitrate_tank
|
|
name = "Proto-Nitrate Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/proto_nitrate_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/tritium_tank
|
|
name = "Tritium Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/tritium_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/water_vapor
|
|
name = "Water Vapor Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/water_vapor
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/zauker_tank
|
|
name = "Zauker Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/zauker_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/helium_tank
|
|
name = "Helium Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/helium_tank
|
|
|
|
/obj/item/circuitboard/computer/atmos_control/antinoblium_tank
|
|
name = "Antinoblium Supply Control"
|
|
build_path = /obj/machinery/computer/atmos_control/antinoblium_tank
|
|
|
|
/obj/item/circuitboard/computer/auxiliary_base
|
|
name = "Auxiliary Base Management Console"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/auxiliary_base
|
|
|
|
/obj/item/circuitboard/computer/base_construction
|
|
name = "Generic Base Construction Console"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/camera_advanced/base_construction
|
|
|
|
/obj/item/circuitboard/computer/base_construction/aux
|
|
name = "Aux Mining Base Construction Console"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/camera_advanced/base_construction/aux
|
|
|
|
/obj/item/circuitboard/computer/base_construction/centcom
|
|
name = "Centcom Base Construction Console"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/camera_advanced/base_construction/centcom
|
|
|
|
/obj/item/circuitboard/computer/comm_monitor
|
|
name = "Telecommunications Monitor"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/telecomms/monitor
|
|
|
|
/obj/item/circuitboard/computer/comm_server
|
|
name = "Telecommunications Server Monitor"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/telecomms/server
|
|
|
|
/obj/item/circuitboard/computer/communications
|
|
name = "Communications"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/communications
|
|
|
|
/obj/item/circuitboard/computer/communications/syndicate
|
|
name = "Syndicate Communications"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/communications/syndicate
|
|
|
|
|
|
/obj/item/circuitboard/computer/message_monitor
|
|
name = "Message Monitor"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/message_monitor
|
|
|
|
/obj/item/circuitboard/computer/modular_shield_console
|
|
name = "Modular Shield Generator Console"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/modular_shield
|
|
|
|
/obj/item/circuitboard/computer/powermonitor
|
|
name = "Power Monitor" //name fixed 250810
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/monitor
|
|
|
|
/obj/item/circuitboard/computer/sat_control
|
|
name = "Satellite Network Control"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/sat_control
|
|
|
|
/obj/item/circuitboard/computer/solar_control
|
|
name = "Solar Control" //name fixed 250810
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/power/solar_control
|
|
|
|
/obj/item/circuitboard/computer/station_alert
|
|
name = "Station Alerts"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/station_alert
|
|
|
|
/obj/item/circuitboard/computer/turbine_computer
|
|
name = "Turbine Computer"
|
|
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
|
build_path = /obj/machinery/computer/turbine_computer
|
|
|
|
//Generic
|
|
|
|
/obj/item/circuitboard/computer/arcade/amputation
|
|
name = "Mediborg's Amputation Adventure"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/arcade/amputation
|
|
|
|
/obj/item/circuitboard/computer/arcade/battle
|
|
name = "Arcade Battle"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/arcade/battle
|
|
|
|
/obj/item/circuitboard/computer/arcade/orion_trail
|
|
name = "Orion Trail"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/arcade/orion_trail
|
|
|
|
/obj/item/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future
|
|
name = "Holodeck Control"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/holodeck
|
|
|
|
/obj/item/circuitboard/computer/libraryconsole
|
|
name = "Library Visitor Console"
|
|
build_path = /obj/machinery/computer/libraryconsole
|
|
|
|
/obj/item/circuitboard/computer/libraryconsole/bookconsole
|
|
name = "Book Inventory Management Console"
|
|
build_path = /obj/machinery/computer/libraryconsole/bookmanagement
|
|
|
|
/obj/item/circuitboard/computer/libraryconsole/screwdriver_act(mob/living/user, obj/item/tool)
|
|
if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement)
|
|
name = "Library Visitor Console"
|
|
build_path = /obj/machinery/computer/libraryconsole
|
|
to_chat(user, span_notice("Defaulting access protocols."))
|
|
else
|
|
name = "Book Inventory Management Console"
|
|
build_path = /obj/machinery/computer/libraryconsole/bookmanagement
|
|
to_chat(user, span_notice("Access protocols successfully updated."))
|
|
return TRUE
|
|
|
|
/obj/item/circuitboard/computer/monastery_shuttle
|
|
name = "Monastery Shuttle"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/shuttle/monastery_shuttle
|
|
|
|
/obj/item/circuitboard/computer/olddoor
|
|
name = "DoorMex"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/pod/old
|
|
|
|
/obj/item/circuitboard/computer/pod
|
|
name = "Massdriver control"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/pod
|
|
|
|
/obj/item/circuitboard/computer/slot_machine
|
|
name = "Slot Machine"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/slot_machine
|
|
|
|
/obj/item/circuitboard/computer/swfdoor
|
|
name = "Magix"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/pod/old/swf
|
|
|
|
/obj/item/circuitboard/computer/syndicate_shuttle
|
|
name = "Syndicate Shuttle"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/shuttle/syndicate
|
|
/// If operatives declared war this will be the time challenge was started
|
|
var/challenge_start_time
|
|
var/moved = FALSE
|
|
|
|
/obj/item/circuitboard/computer/syndicate_shuttle/Initialize(mapload)
|
|
. = ..()
|
|
GLOB.syndicate_shuttle_boards += src
|
|
|
|
/obj/item/circuitboard/computer/syndicate_shuttle/Destroy()
|
|
GLOB.syndicate_shuttle_boards -= src
|
|
return ..()
|
|
|
|
/obj/item/circuitboard/computer/syndicatedoor
|
|
name = "ProComp Executive"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/pod/old/syndicate
|
|
|
|
/obj/item/circuitboard/computer/white_ship
|
|
name = "White Ship"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/shuttle/white_ship
|
|
|
|
/obj/item/circuitboard/computer/white_ship/bridge
|
|
name = "White Ship Bridge"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/shuttle/white_ship/bridge
|
|
|
|
/obj/item/circuitboard/computer/bountypad
|
|
name = "Bounty Pad"
|
|
build_path = /obj/machinery/computer/piratepad_control/civilian
|
|
|
|
/obj/item/circuitboard/computer/tram_controls
|
|
name = "Tram Controls"
|
|
build_path = /obj/machinery/computer/tram_controls
|
|
var/split_mode = FALSE
|
|
|
|
/obj/item/circuitboard/computer/tram_controls/split
|
|
split_mode = TRUE
|
|
|
|
/obj/item/circuitboard/computer/tram_controls/examine(mob/user)
|
|
. = ..()
|
|
. += span_info("The board is configured for [split_mode ? "split window" : "normal window"].")
|
|
. += span_notice("The board mode can be changed with a [EXAMINE_HINT("multitool")].")
|
|
|
|
/obj/item/circuitboard/computer/tram_controls/multitool_act(mob/living/user)
|
|
split_mode = !split_mode
|
|
to_chat(user, span_notice("[src] positioning set to [split_mode ? "split window" : "normal window"]."))
|
|
return TRUE
|
|
|
|
/obj/item/circuitboard/computer/terminal
|
|
name = "Terminal"
|
|
build_path = /obj/machinery/computer/terminal
|
|
|
|
//Medical
|
|
|
|
/obj/item/circuitboard/computer/crew
|
|
name = "Crew Monitoring Console"
|
|
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
|
build_path = /obj/machinery/computer/crew
|
|
|
|
/obj/item/circuitboard/computer/med_data
|
|
name = "Medical Records Console"
|
|
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
|
build_path = /obj/machinery/computer/records/medical
|
|
|
|
/obj/item/circuitboard/computer/operating
|
|
name = "Operating Computer"
|
|
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
|
build_path = /obj/machinery/computer/operating
|
|
|
|
/obj/item/circuitboard/computer/pandemic
|
|
name = "PanD.E.M.I.C. 2200"
|
|
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
|
build_path = /obj/machinery/computer/pandemic
|
|
|
|
/obj/item/circuitboard/computer/experimental_cloner
|
|
name = "Experimental Cloner Control Console"
|
|
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
|
build_path = /obj/machinery/computer/experimental_cloner
|
|
|
|
//Science
|
|
|
|
/obj/item/circuitboard/computer/aifixer
|
|
name = "AI Integrity Restorer"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/aifixer
|
|
|
|
/obj/item/circuitboard/computer/launchpad_console
|
|
name = "Launchpad Control Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/launchpad
|
|
|
|
/obj/item/circuitboard/computer/mech_bay_power_console
|
|
name = "Mech Bay Power Control Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/mech_bay_power_console
|
|
|
|
/obj/item/circuitboard/computer/mecha_control
|
|
name = "Exosuit Control Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/mecha
|
|
|
|
/obj/item/circuitboard/computer/rdconsole
|
|
name = "R&D Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/rdconsole
|
|
req_access = list(ACCESS_RESEARCH) // Research access is required to toggle the lock.
|
|
|
|
var/silence_announcements = FALSE
|
|
var/locked = TRUE
|
|
|
|
// An unlocked subtype of the board for mapping.
|
|
/obj/item/circuitboard/computer/rdconsole/unlocked
|
|
locked = FALSE
|
|
|
|
/obj/item/circuitboard/computer/rdconsole/examine(mob/user)
|
|
. = ..()
|
|
. += span_info("The board is configured to [silence_announcements ? "silence" : "announce"] researched nodes on radio.")
|
|
. += span_notice("The board mode can be changed with a [EXAMINE_HINT("multitool")].")
|
|
. += span_notice("The board is [locked ? "locked" : "unlocked"], and can be [locked ? "unlocked" : "locked"] with an ID that has research access.")
|
|
|
|
/obj/item/circuitboard/computer/rdconsole/multitool_act(mob/living/user)
|
|
. = ..()
|
|
if(obj_flags & EMAGGED)
|
|
balloon_alert(user, "board mode is broken!")
|
|
return
|
|
silence_announcements = !silence_announcements
|
|
balloon_alert(user, "announcements [silence_announcements ? "enabled" : "disabled"]")
|
|
|
|
/obj/item/circuitboard/computer/rdconsole/emag_act(mob/user, obj/item/card/emag/emag_card)
|
|
if (locked)
|
|
locked = FALSE
|
|
to_chat(user, span_notice("You magnetically trigger the locking mechanism, causing it to unlock."))
|
|
|
|
if (obj_flags & EMAGGED)
|
|
return FALSE
|
|
|
|
obj_flags |= EMAGGED
|
|
silence_announcements = FALSE
|
|
to_chat(user, span_notice("You overload the node announcement chip, forcing every node to be announced on the common channel."))
|
|
return TRUE
|
|
|
|
/obj/item/circuitboard/computer/rdconsole/attackby(obj/item/attacking_item, mob/living/user, list/modifiers, list/attack_modifiers)
|
|
if (user.combat_mode || !isidcard(attacking_item))
|
|
return ..()
|
|
if (check_access(attacking_item))
|
|
locked = !locked
|
|
balloon_alert(user, locked ? "locked" : "unlocked")
|
|
user.visible_message(
|
|
message = span_notice("\The [user] unlock[user.p_s()] \the [src] with \the [attacking_item]."),
|
|
self_message = span_notice("You unlock \the [src] with \the [attacking_item]."),
|
|
blind_message = span_hear("You hear a soft beep."),
|
|
)
|
|
else
|
|
balloon_alert(user, "no access!")
|
|
|
|
/obj/item/circuitboard/computer/rdservercontrol
|
|
name = "R&D Server Control"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/rdservercontrol
|
|
|
|
/obj/item/circuitboard/computer/research
|
|
name = "Research Monitor"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/security/research
|
|
|
|
/obj/item/circuitboard/computer/robotics
|
|
name = "Robotics Control"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/robotics
|
|
|
|
/obj/item/circuitboard/computer/teleporter
|
|
name = "Teleporter"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/teleporter
|
|
|
|
/obj/item/circuitboard/computer/xenobiology
|
|
name = "Xenobiology Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/camera_advanced/xenobio
|
|
|
|
/obj/item/circuitboard/computer/scan_consolenew
|
|
name = "DNA Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/dna_console
|
|
|
|
/obj/item/circuitboard/computer/mechpad
|
|
name = "Mecha Orbital Pad Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
|
build_path = /obj/machinery/computer/mechpad
|
|
|
|
//Security
|
|
|
|
/obj/item/circuitboard/computer/labor_shuttle
|
|
name = "Labor Shuttle"
|
|
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
|
build_path = /obj/machinery/computer/shuttle/labor
|
|
|
|
/obj/item/circuitboard/computer/labor_shuttle/one_way
|
|
name = "Prisoner Shuttle Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
|
build_path = /obj/machinery/computer/shuttle/labor/one_way
|
|
|
|
/obj/item/circuitboard/computer/gulag_teleporter_console
|
|
name = "Labor Camp teleporter console"
|
|
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
|
build_path = /obj/machinery/computer/prisoner/gulag_teleporter_computer
|
|
|
|
/obj/item/circuitboard/computer/prisoner
|
|
name = "Prisoner Management Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
|
build_path = /obj/machinery/computer/prisoner/management
|
|
|
|
/obj/item/circuitboard/computer/secure_data
|
|
name = "Security Records Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
|
build_path = /obj/machinery/computer/records/security
|
|
|
|
/obj/item/circuitboard/computer/warrant
|
|
name = "Security Warrant Viewer"
|
|
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
|
build_path = /obj/machinery/computer/warrant
|
|
|
|
/obj/item/circuitboard/computer/security
|
|
name = "Security Cameras"
|
|
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
|
build_path = /obj/machinery/computer/security
|
|
|
|
/obj/item/circuitboard/computer/advanced_camera
|
|
name = "Advanced Camera Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
|
build_path = /obj/machinery/computer/camera_advanced/syndie
|
|
|
|
//Service
|
|
/obj/item/circuitboard/computer/order_console
|
|
name = "Produce Orders Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
|
build_path = /obj/machinery/computer/order_console/cook
|
|
|
|
//Supply
|
|
|
|
/obj/item/circuitboard/computer/cargo
|
|
name = "Supply Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
|
build_path = /obj/machinery/computer/cargo
|
|
var/contraband = FALSE
|
|
|
|
/obj/item/circuitboard/computer/cargo/multitool_act(mob/living/user)
|
|
. = ..()
|
|
if(!(obj_flags & EMAGGED))
|
|
contraband = !contraband
|
|
to_chat(user, span_notice("Receiver spectrum set to [contraband ? "Broad" : "Standard"]."))
|
|
else
|
|
to_chat(user, span_alert("The spectrum chip is unresponsive."))
|
|
|
|
/obj/item/circuitboard/computer/cargo/emag_act(mob/user, obj/item/card/emag/emag_card)
|
|
if (obj_flags & EMAGGED)
|
|
return FALSE
|
|
|
|
contraband = TRUE
|
|
obj_flags |= EMAGGED
|
|
to_chat(user, span_notice("You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband."))
|
|
return TRUE
|
|
|
|
/obj/item/circuitboard/computer/cargo/configure_machine(obj/machinery/computer/cargo/machine)
|
|
if(!istype(machine))
|
|
CRASH("Cargo board attempted to configure incorrect machine type: [machine] ([machine?.type])")
|
|
|
|
machine.contraband = contraband
|
|
if (obj_flags & EMAGGED)
|
|
machine.obj_flags |= EMAGGED
|
|
else
|
|
machine.obj_flags &= ~EMAGGED
|
|
|
|
/obj/item/circuitboard/computer/cargo/express
|
|
name = "Express Supply Console"
|
|
build_path = /obj/machinery/computer/cargo/express
|
|
|
|
/obj/item/circuitboard/computer/cargo/express/emag_act(mob/user, obj/item/card/emag/emag_card)
|
|
if (obj_flags & EMAGGED)
|
|
return FALSE
|
|
|
|
contraband = TRUE
|
|
obj_flags |= EMAGGED
|
|
to_chat(user, span_notice("You change the routing protocols, allowing the Drop Pod to land anywhere on the station."))
|
|
return TRUE
|
|
|
|
/obj/item/circuitboard/computer/cargo/express/multitool_act(mob/living/user)
|
|
if (!(obj_flags & EMAGGED))
|
|
contraband = !contraband
|
|
to_chat(user, span_notice("Receiver spectrum set to [contraband ? "Broad" : "Standard"]."))
|
|
return TRUE
|
|
else
|
|
to_chat(user, span_notice("You reset the destination-routing protocols and receiver spectrum to factory defaults."))
|
|
contraband = FALSE
|
|
obj_flags &= ~EMAGGED
|
|
return TRUE
|
|
|
|
/obj/item/circuitboard/computer/cargo/request
|
|
name = "Supply Request Console"
|
|
build_path = /obj/machinery/computer/cargo/request
|
|
|
|
/obj/item/circuitboard/computer/order_console/mining
|
|
name = "Mining Vending Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
|
build_path = /obj/machinery/computer/order_console/mining
|
|
|
|
/obj/item/circuitboard/computer/order_console/mining/golem
|
|
name = "Golem Ship Equipment Vendor Console"
|
|
build_path = /obj/machinery/computer/order_console/mining/golem
|
|
|
|
/obj/item/circuitboard/computer/order_console/bitrunning
|
|
name = "Bitrunning Vendor Console"
|
|
build_path = /obj/machinery/computer/order_console/bitrunning
|
|
|
|
/obj/item/circuitboard/computer/ferry
|
|
name = "Transport Ferry"
|
|
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
|
build_path = /obj/machinery/computer/shuttle/ferry
|
|
|
|
/obj/item/circuitboard/computer/ferry/request
|
|
name = "Transport Ferry Console"
|
|
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
|
build_path = /obj/machinery/computer/shuttle/ferry/request
|
|
|
|
/obj/item/circuitboard/computer/mining
|
|
name = "Outpost Status Display"
|
|
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
|
build_path = /obj/machinery/computer/security/mining
|
|
|
|
/obj/item/circuitboard/computer/mining_shuttle
|
|
name = "Mining Shuttle"
|
|
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
|
build_path = /obj/machinery/computer/shuttle/mining
|
|
|
|
/obj/item/circuitboard/computer/mining_shuttle/common
|
|
name = "Lavaland Shuttle"
|
|
build_path = /obj/machinery/computer/shuttle/mining/common
|
|
|
|
/obj/item/circuitboard/computer/emergency_pod
|
|
name = "Emergency Pod Controls"
|
|
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
|
build_path = /obj/machinery/computer/shuttle/pod
|
|
|
|
/obj/item/circuitboard/computer/exoscanner_console
|
|
name = "Scanner Array Control Console"
|
|
build_path = /obj/machinery/computer/exoscanner_control
|
|
|
|
/obj/item/circuitboard/computer/exodrone_console
|
|
name = "Exploration Drone Control Console"
|
|
build_path = /obj/machinery/computer/exodrone_control_console
|
|
|
|
/obj/item/circuitboard/computer/shuttle
|
|
var/shuttle_id
|
|
|
|
/obj/item/circuitboard/computer/shuttle/configure_machine(obj/machinery/machine)
|
|
var/obj/docking_port/mobile/custom/shuttle = shuttle_id ? SSshuttle.getShuttle(shuttle_id) : SSshuttle.get_containing_shuttle(machine)
|
|
if(!shuttle)
|
|
var/on_shuttle_frame = HAS_TRAIT((get_turf(machine)), TRAIT_SHUTTLE_CONSTRUCTION_TURF)
|
|
machine.say(on_shuttle_frame ? "Console will automatically link on shuttle completion." : "No shuttle available for linking.")
|
|
else if(!istype(shuttle))
|
|
machine.say("Cannot link to this kind of shuttle!")
|
|
else
|
|
machine.connect_to_shuttle(TRUE, shuttle)
|
|
|
|
/obj/item/circuitboard/computer/shuttle/flight_control
|
|
name = "Shuttle Flight Control"
|
|
build_path = /obj/machinery/computer/shuttle/custom_shuttle
|
|
|
|
/obj/item/circuitboard/computer/shuttle/docker
|
|
name = "Shuttle Navigation Computer"
|
|
build_path = /obj/machinery/computer/camera_advanced/shuttle_docker/custom
|