From 83dcba29ee6edbc94f459a30baf91b1930e2a07f Mon Sep 17 00:00:00 2001 From: zxaber <37497534+zxaber@users.noreply.github.com> Date: Sun, 1 Dec 2019 03:00:01 -0800 Subject: [PATCH] Allows heads of staff to just connect to other holopads, rather than call. (#48041) * Delete stale.yml * Create stale.yml * does most of the things * build_path thingy * box, take two * Summary (required) * meta take two * pubby, delta, donut take 2 * I hate map merger * Don't need to walk around in circles * a thousand times I've done this * sound effect * incomming > incoming * removed unneeded "var/" --- _maps/map_files/BoxStation/BoxStation.dmm | 24 +++++++-------- .../map_files/Deltastation/DeltaStation2.dmm | 16 +++++----- _maps/map_files/Donutstation/Donutstation.dmm | 16 +++++----- _maps/map_files/KiloStation/KiloStation.dmm | 25 +++++++++------- _maps/map_files/MetaStation/MetaStation.dmm | 29 +++++++++---------- _maps/map_files/PubbyStation/PubbyStation.dmm | 17 +++++++---- code/datums/holocall.dm | 15 ++++++++-- code/game/machinery/hologram.dm | 28 ++++++++++++++++-- .../circuitboards/machine_circuitboards.dm | 17 +++++++++++ 9 files changed, 124 insertions(+), 63 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index db16e650a2c..42a711fbb57 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -1033,7 +1033,7 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "act" = ( -/obj/machinery/holopad, +/obj/machinery/holopad/secure, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "acu" = ( @@ -2993,9 +2993,9 @@ /turf/open/floor/plasteel, /area/security/main) "agC" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel, /area/security/main) "agD" = ( @@ -3167,9 +3167,9 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "agV" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "agW" = ( @@ -20947,8 +20947,8 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "bcf" = ( -/obj/machinery/holopad, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "bcg" = ( @@ -22723,8 +22723,8 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bgW" = ( -/obj/machinery/holopad, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bgX" = ( @@ -44997,10 +44997,10 @@ /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctJ" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/landmark/start/cyborg, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat_interior) "ctK" = ( @@ -45363,8 +45363,8 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/atmos) "cuC" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/atmos) "cuD" = ( @@ -45416,12 +45416,12 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cuG" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cuH" = ( @@ -45446,10 +45446,10 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/service) "cuJ" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/service) "cuK" = ( @@ -45958,9 +45958,9 @@ /turf/open/floor/circuit, /area/ai_monitored/turret_protected/aisat/hallway) "cvT" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/hallway) "cvV" = ( @@ -46167,11 +46167,11 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "cwA" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "cwB" = ( @@ -47045,7 +47045,7 @@ dir = 1; pixel_y = -22 }, -/obj/machinery/holopad, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "cBf" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 676b74c7325..ea226dc76ab 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -34054,8 +34054,8 @@ /turf/open/floor/plasteel, /area/security/main) "bpo" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/bot, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel, /area/security/main) "bpp" = ( @@ -34148,11 +34148,11 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "bpv" = ( -/obj/machinery/holopad, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "bpw" = ( @@ -42781,7 +42781,6 @@ /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "bEg" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -42792,6 +42791,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "bEh" = ( @@ -49313,10 +49313,10 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bOR" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bOS" = ( @@ -53220,7 +53220,6 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bVx" = ( -/obj/machinery/holopad, /obj/effect/landmark/start/cyborg, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -53233,6 +53232,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bVy" = ( @@ -58676,12 +58676,12 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "ceH" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "ceI" = ( @@ -60005,9 +60005,9 @@ /turf/open/floor/plasteel, /area/security/brig) "chd" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/bot, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel, /area/security/brig) "che" = ( @@ -60122,7 +60122,6 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "chn" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -60137,6 +60136,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "cho" = ( diff --git a/_maps/map_files/Donutstation/Donutstation.dmm b/_maps/map_files/Donutstation/Donutstation.dmm index 66b9c3d7d1b..1c8f2a9f320 100644 --- a/_maps/map_files/Donutstation/Donutstation.dmm +++ b/_maps/map_files/Donutstation/Donutstation.dmm @@ -4960,6 +4960,7 @@ dir = 6 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/holofloor/wood, /area/crew_quarters/heads/captain/private) "ani" = ( @@ -11456,7 +11457,7 @@ /turf/open/floor/plasteel/white, /area/medical/storage) "aEZ" = ( -/obj/machinery/holopad, +/obj/machinery/holopad/secure, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "aFa" = ( @@ -23863,9 +23864,9 @@ /turf/open/floor/plasteel, /area/security/checkpoint/science) "bmd" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/bot, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "bme" = ( @@ -34039,12 +34040,12 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bLe" = ( -/obj/machinery/holopad, /obj/effect/landmark/start/cyborg, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat/foyer) "bLg" = ( @@ -34283,13 +34284,13 @@ /turf/open/floor/plasteel/grimy, /area/ai_monitored/turret_protected/aisat/foyer) "bLI" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 6 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/service) "bLJ" = ( @@ -35068,7 +35069,6 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) "bOb" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 10 }, @@ -35076,6 +35076,7 @@ dir = 10 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) "bOd" = ( @@ -35150,8 +35151,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/machinery/holopad, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "bOm" = ( @@ -39301,9 +39302,9 @@ "caP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/holopad, /obj/effect/landmark/event_spawn, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel, /area/security/main) "caQ" = ( @@ -42680,6 +42681,7 @@ pixel_y = 25 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "gdI" = ( diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 6a1682f1900..cff0a4b6bbe 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -1026,7 +1026,6 @@ }, /area/space/nearstation) "abM" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -1035,6 +1034,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai) "abN" = ( @@ -1189,7 +1189,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "acd" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -1204,6 +1203,7 @@ dir = 4 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai) "ace" = ( @@ -2584,11 +2584,11 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat/atmos) "aed" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/engine, /area/ai_monitored/turret_protected/aisat/foyer) "aee" = ( @@ -4968,7 +4968,7 @@ dir = 8 }, /obj/effect/turf_decal/bot, -/obj/machinery/holopad, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel, /area/security/main) "aid" = ( @@ -52145,9 +52145,9 @@ /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai_upload) "byK" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, +/obj/machinery/holopad/secure, /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai_upload) "byL" = ( @@ -73626,12 +73626,12 @@ /turf/open/floor/circuit/red, /area/ai_monitored/turret_protected/ai) "ceg" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, /obj/effect/turf_decal/stripes/corner, +/obj/machinery/holopad/secure, /turf/open/floor/engine, /area/ai_monitored/turret_protected/ai) "ceh" = ( @@ -75680,7 +75680,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "chp" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -75688,6 +75687,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/holopad/secure, /turf/open/floor/engine, /area/ai_monitored/turret_protected/aisat_interior) "chq" = ( @@ -83330,7 +83330,6 @@ }, /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -83342,6 +83341,7 @@ dir = 1 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/showroomfloor, /area/security/brig) "ctx" = ( @@ -95317,8 +95317,8 @@ /turf/open/floor/plating, /area/maintenance/starboard) "cNI" = ( -/obj/machinery/holopad, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/carpet/red, /area/crew_quarters/heads/hos) "cNJ" = ( @@ -95840,6 +95840,11 @@ }, /turf/open/space/basic, /area/space/nearstation) +"fhz" = ( +/obj/structure/cable, +/obj/machinery/holopad/secure, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) (1,1,1) = {" aaa @@ -128367,7 +128372,7 @@ bDc asx aqK azC -bJD +fhz cMX cNl asx diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index e2502329977..1ce0ea390fc 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -3324,7 +3324,6 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "agS" = ( -/obj/machinery/holopad, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -3335,6 +3334,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "agT" = ( @@ -3400,10 +3400,10 @@ "agY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "agZ" = ( -/obj/machinery/holopad, /obj/structure/chair{ dir = 1 }, @@ -7255,7 +7255,6 @@ /turf/open/floor/plasteel, /area/security/main) "aoE" = ( -/obj/machinery/holopad, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -7270,6 +7269,7 @@ dir = 8 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel, /area/security/main) "aoF" = ( @@ -8415,9 +8415,9 @@ /turf/open/floor/plating, /area/maintenance/starboard/secondary) "ari" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "arj" = ( @@ -18281,7 +18281,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "aOc" = ( -/obj/machinery/holopad, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "aOd" = ( @@ -23607,7 +23607,6 @@ /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "aZR" = ( -/obj/machinery/holopad, /obj/machinery/flasher{ id = "AI"; pixel_x = -25; @@ -23623,6 +23622,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "aZS" = ( @@ -23683,7 +23683,6 @@ /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "aZX" = ( -/obj/machinery/holopad, /obj/machinery/flasher{ id = "AI"; pixel_x = 25; @@ -23699,6 +23698,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "aZY" = ( @@ -27408,7 +27408,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/holopad, +/obj/machinery/holopad/secure, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "bhz" = ( @@ -27859,8 +27859,8 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "bip" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "biq" = ( @@ -30303,12 +30303,12 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bnC" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/effect/landmark/start/cyborg, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bnD" = ( @@ -31232,9 +31232,9 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) "bpK" = ( -/obj/machinery/holopad, /obj/item/beacon, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) "bpL" = ( @@ -33438,7 +33438,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "buG" = ( -/obj/machinery/holopad{ +/obj/machinery/holopad/secure{ pixel_x = 9; pixel_y = -9 }, @@ -35364,12 +35364,12 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bzq" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bzr" = ( @@ -38711,11 +38711,11 @@ /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "bHE" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "bHF" = ( @@ -74102,7 +74102,6 @@ /turf/open/floor/plasteel/white, /area/science/misc_lab/range) "kwl" = ( -/turf/open/floor/plating, /turf/open/floor/plating{ icon_state = "platingdmg2" }, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index aaf60ec70f1..6a36e3cbe58 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -522,6 +522,7 @@ pixel_y = -24 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/white, /area/ai_monitored/turret_protected/ai) "acr" = ( @@ -531,7 +532,6 @@ /obj/machinery/power/terminal{ dir = 1 }, -/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/ai_monitored/turret_protected/ai) "acs" = ( @@ -637,6 +637,7 @@ /obj/machinery/status_display/ai{ pixel_y = 37 }, +/obj/machinery/holopad/secure, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai) "acE" = ( @@ -1787,7 +1788,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afP" = ( -/obj/machinery/holopad, +/obj/machinery/holopad/secure, /mob/living/simple_animal/bot/secbot/pingsky, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) @@ -4550,11 +4551,11 @@ /turf/open/floor/plasteel, /area/security/main) "amp" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel, /area/security/main) "amq" = ( @@ -10513,7 +10514,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "aBn" = ( -/obj/machinery/holopad, +/obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "aBo" = ( @@ -11626,7 +11627,6 @@ /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai_upload) "aDM" = ( -/obj/machinery/holopad, /obj/machinery/camera/motion{ c_tag = "AI Upload Center"; dir = 1; @@ -11639,6 +11639,7 @@ name = "Station Intercom (AI Private)"; pixel_y = -28 }, +/obj/machinery/holopad/secure, /turf/open/floor/circuit, /area/ai_monitored/turret_protected/ai_upload) "aDN" = ( @@ -52269,6 +52270,10 @@ /obj/structure/cable, /turf/open/floor/engine, /area/science/xenobiology) +"kNE" = ( +/obj/machinery/holopad/secure, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) "kPi" = ( /obj/structure/table, /obj/machinery/microwave, @@ -84253,7 +84258,7 @@ abI ajs aka akV -alJ +kNE amv alJ anS diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 4edf8161706..21bf6a293ad 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -32,20 +32,29 @@ var/datum/action/innate/end_holocall/hangup //hangup action var/call_start_time + var/head_call = FALSE //calls from a head of staff autoconnect, if the recieving pad is not secure. //creates a holocall made by `caller` from `calling_pad` to `callees` -/datum/holocall/New(mob/living/caller, obj/machinery/holopad/calling_pad, list/callees) +/datum/holocall/New(mob/living/caller, obj/machinery/holopad/calling_pad, list/callees, elevated_access = FALSE) call_start_time = world.time user = caller calling_pad.outgoing_call = src calling_holopad = calling_pad + head_call = elevated_access dialed_holopads = list() for(var/I in callees) var/obj/machinery/holopad/H = I if(!QDELETED(H) && H.is_operational()) dialed_holopads += H - H.say("Incoming call.") + if(head_call) + if(H.secure) + calling_pad.say("Auto-connection refused, falling back to call mode.") + H.say("Incoming call.") + else + H.say("Incoming connection.") + else + H.say("Incoming call.") LAZYADD(H.holo_calls, src) if(!dialed_holopads.len) @@ -160,6 +169,8 @@ hangup = new(eye, src) hangup.Grant(user) + playsound(H, 'sound/machines/ping.ogg', 100) + H.say("Connection established.") //Checks the validity of a holocall and qdels itself if it's not. Returns TRUE if valid, FALSE otherwise /datum/holocall/proc/Check() diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 1a54a155313..f5b79c1e6df 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -34,6 +34,7 @@ Possible to do for anyone motivated enough: layer = LOW_OBJ_LAYER plane = FLOOR_PLANE flags_1 = HEAR_1 + req_access = list(ACCESS_KEYCARD_AUTH) //Used to allow for forced connecting to other (not secure) holopads. Anyone can make a call, though. use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 100 @@ -60,6 +61,18 @@ Possible to do for anyone motivated enough: var/ringing = FALSE var/offset = FALSE var/on_network = TRUE + var/secure = FALSE //for pads in secure areas; do not allow forced connecting + +/obj/machinery/holopad/secure + name = "secure holopad" + desc = "It's a floor-mounted device for projecting holographic images. This one will refuse to auto-connect incoming calls." + secure = TRUE + +obj/machinery/holopad/secure/Initialize() + . = ..() + var/obj/item/circuitboard/machine/holopad/board = circuit + board.secure = TRUE + board.build_path = /obj/machinery/holopad/secure /obj/machinery/holopad/tutorial resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF @@ -187,7 +200,10 @@ Possible to do for anyone motivated enough: else if(on_network) dat += "Request an AI's presence
" - dat += "Call another holopad
" + if(allowed(user)) + dat += "Connect to another holopad
" + else + dat += "Call another holopad
" if(disk) if(disk.record) //Replay @@ -255,9 +271,12 @@ Possible to do for anyone motivated enough: temp = "A request for AI presence was already sent recently.
" temp += "Main Menu" - else if(href_list["Holocall"]) + else if(href_list["Holocall"] || href_list["Holoconnect"]) if(outgoing_call) return + var/head_call = FALSE + if(href_list["Holoconnect"]) + head_call = TRUE temp = "You must stand on the holopad to make a call!
" temp += "Main Menu" @@ -276,7 +295,7 @@ Possible to do for anyone motivated enough: if(usr.loc == loc) temp = "Dialing...
" temp += "Main Menu" - new /datum/holocall(usr, src, callnames[result]) + new /datum/holocall(usr, src, callnames[result], head_call) else if(href_list["connectcall"]) var/datum/holocall/call_to_connect = locate(href_list["connectcall"]) in holo_calls @@ -363,6 +382,9 @@ Possible to do for anyone motivated enough: if(force_answer_call && world.time > (HC.call_start_time + (HOLOPAD_MAX_DIAL_TIME / 2))) HC.Answer(src) break + if(HC.head_call && !secure) + HC.Answer(src) + break if(outgoing_call) HC.Disconnect(src)//can't answer calls while calling else diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 77b901b5b69..77cd7018b6e 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -388,7 +388,24 @@ build_path = /obj/machinery/holopad req_components = list(/obj/item/stock_parts/capacitor = 1) needs_anchored = FALSE //wew lad + var/secure = FALSE +/obj/item/circuitboard/machine/holopad/attackby(obj/item/P, mob/user, params) + if(P.tool_behaviour == TOOL_MULTITOOL) + if(secure) + build_path = /obj/machinery/holopad + secure = FALSE + else + build_path = /obj/machinery/holopad/secure + secure = TRUE + to_chat(user, "You [secure? "en" : "dis"]able the security on the [src]") + . = ..() + +/obj/item/circuitboard/machine/holopad/examine(mob/user) + . = ..() + . += "There is a connection port on this board that could be pulsed" + if(secure) + . += "There is a red light flashing next to the word \"secure\"" /obj/item/circuitboard/machine/launchpad name = "Bluespace Launchpad (Machine Board)"