From cb1535dc7bcd6d1dc3fe10c6210ff7dbd26ae74d Mon Sep 17 00:00:00 2001 From: Geeves Date: Wed, 7 Oct 2020 16:44:52 +0200 Subject: [PATCH] TCFL Helmet Cameras (#10159) --- code/__defines/machinery.dm | 1 + code/game/machinery/camera/presets.dm | 3 ++ code/modules/clothing/head/helmet.dm | 30 +++++++++++++ .../clothing/spacesuits/rig/suits/combat.dm | 5 +++ .../modules/clothing/spacesuits/spacesuits.dm | 28 ------------ html/changelogs/geeves-tcfl_cameras.yml | 6 +++ maps/aurora/aurora-1_centcomm.dmm | 44 ++++++------------- 7 files changed, 58 insertions(+), 59 deletions(-) create mode 100644 html/changelogs/geeves-tcfl_cameras.yml diff --git a/code/__defines/machinery.dm b/code/__defines/machinery.dm index 3ccef65d0ef..67fae3b62a0 100644 --- a/code/__defines/machinery.dm +++ b/code/__defines/machinery.dm @@ -48,6 +48,7 @@ #define NETWORK_MECHS "Mechs" #define NETWORK_MEDICAL "Medical" #define NETWORK_MERCENARY "MercurialNet" +#define NETWORK_TCFL "TCFL" #define NETWORK_MINE "MINE" #define NETWORK_RESEARCH "Research" #define NETWORK_RESEARCH_OUTPOST "Research Outpost" diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index 8594a3e0ca1..e0dbf7b793b 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -47,6 +47,9 @@ var/global/list/engineering_networks = list( /obj/machinery/camera/network/mercenary network = list(NETWORK_MERCENARY) +/obj/machinery/camera/network/tcfl + network = list(NETWORK_TCFL) + /obj/machinery/camera/network/exodus network = list(NETWORK_STATION) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 8cd87746f6d..580df89225f 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -15,10 +15,38 @@ max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECTION_TEMPERATURE siemens_coefficient = 0.5 w_class = ITEMSIZE_NORMAL + var/obj/machinery/camera/camera var/allow_hair_covering = TRUE //in case if you want to allow someone to switch the BLOCKHEADHAIR var from the helmet or not drop_sound = 'sound/items/drop/helm.ogg' pickup_sound = 'sound/items/pickup/helm.ogg' +/obj/item/clothing/head/helmet/Initialize() + . = ..() + if(camera) + verbs += /obj/item/clothing/head/helmet/proc/toggle_camera + +/obj/item/clothing/head/helmet/proc/toggle_camera() + set name = "Toggle Helmet Camera" + set category = "Object" + set src in usr + + if(ispath(camera)) + camera = new camera(src) + camera.set_status(0) + + if(camera) + camera.set_status(!camera.status) + if(camera.status) + camera.c_tag = FindNameFromID(usr) + to_chat(usr, SPAN_NOTICE("User scanned as [camera.c_tag]. Camera activated.")) + else + to_chat(usr, SPAN_NOTICE("Camera deactivated.")) + +/obj/item/clothing/head/helmet/space/examine(var/mob/user) + if(..(user, 1) && camera) + to_chat(user, FONT_SMALL(SPAN_NOTICE("To toggle the helmet camera, right click the helmet and press Toggle Helmet Camera."))) + to_chat(user, "This helmet has a built-in camera. It's [!ispath(camera) && camera.status ? "" : "in"]active.") + /obj/item/clothing/head/helmet/verb/toggle_block_hair() set name = "Toggle Helmet Hair Coverage" set category = "Object" @@ -282,6 +310,7 @@ light_overlay = "helmet_light_dual" brightness_on = 6 light_wedge = LIGHT_WIDE + camera = /obj/machinery/camera/network/tcfl on = 0 /obj/item/clothing/head/helmet/legion_pilot @@ -291,6 +320,7 @@ body_parts_covered = null flags_inv = BLOCKHEADHAIR armor = list(melee = 40, bullet = 20, laser = 20, energy = 10, bomb = 40, bio = 0, rad = 0) + camera = /obj/machinery/camera/network/tcfl siemens_coefficient = 0.35 action_button_name = "Flip Pilot Visor" diff --git a/code/modules/clothing/spacesuits/rig/suits/combat.dm b/code/modules/clothing/spacesuits/rig/suits/combat.dm index fb826adc3ba..5f47a4ab528 100644 --- a/code/modules/clothing/spacesuits/rig/suits/combat.dm +++ b/code/modules/clothing/spacesuits/rig/suits/combat.dm @@ -93,6 +93,8 @@ offline_slowdown = 4 offline_vision_restriction = TINT_HEAVY + helm_type = /obj/item/clothing/head/helmet/space/rig/tcfl + allowed = list( /obj/item/device/flashlight, /obj/item/tank, @@ -121,6 +123,9 @@ /obj/item/rig_module/fabricator/energy_net ) +/obj/item/clothing/head/helmet/space/rig/tcfl + camera = /obj/machinery/camera/network/tcfl + /obj/item/rig/gunslinger name = "gunslinger hardsuit control module" desc = "A favorite of Coalition rangers, the Gunslinger suit is a sturdy hardsuit meant to provide the user absolute situational awareness." diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index df89f5dade4..2ca8728c56a 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -22,40 +22,12 @@ flash_protection = FLASH_PROTECTION_MAJOR allow_hair_covering = FALSE - var/obj/machinery/camera/camera - action_button_name = "Toggle Helmet Light" light_overlay = "helmet_light" brightness_on = 4 light_wedge = LIGHT_WIDE on = 0 -/obj/item/clothing/head/helmet/space/Initialize() - . = ..() - if(camera) - verbs += /obj/item/clothing/head/helmet/space/proc/toggle_camera - -/obj/item/clothing/head/helmet/space/proc/toggle_camera() - set name = "Toggle Helmet Camera" - set category = "Object" - set src in usr - - if(ispath(camera)) - camera = new camera(src) - camera.set_status(0) - - if(camera) - camera.set_status(!camera.status) - if(camera.status) - camera.c_tag = FindNameFromID(usr) - to_chat(usr, "User scanned as [camera.c_tag]. Camera activated.") - else - to_chat(usr, "Camera deactivated.") - -/obj/item/clothing/head/helmet/space/examine(var/mob/user) - if(..(user, 1) && camera) - to_chat(user, "This helmet has a built-in camera. It's [!ispath(camera) && camera.status ? "" : "in"]active.") - /obj/item/clothing/suit/space name = "space suit" desc = "A suit that protects against low pressure environments. \"NSS AURORA\" is written in large block letters on the back." diff --git a/html/changelogs/geeves-tcfl_cameras.yml b/html/changelogs/geeves-tcfl_cameras.yml new file mode 100644 index 00000000000..1219b5e917e --- /dev/null +++ b/html/changelogs/geeves-tcfl_cameras.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "TCFL Helmets and RIG Helmets now come with cameras on the TCFL network, which can be viewed on the pilot's telescreen. Right click it and press Toggle Helmet Camera to access it." \ No newline at end of file diff --git a/maps/aurora/aurora-1_centcomm.dmm b/maps/aurora/aurora-1_centcomm.dmm index 5f3a1c41459..08dc255fd5e 100644 --- a/maps/aurora/aurora-1_centcomm.dmm +++ b/maps/aurora/aurora-1_centcomm.dmm @@ -3754,8 +3754,7 @@ /area/centcom/holding) "awK" = ( /obj/structure/railing/mapped{ - dir = 1; - icon_state = "railing0-1" + dir = 1 }, /turf/unsimulated/floor{ dir = 4; @@ -6556,7 +6555,6 @@ "aSf" = ( /obj/machinery/door/airlock/centcom{ name = "The Big Empty"; - opacity = 1; req_access = list(109) }, /turf/unsimulated/floor{ @@ -6825,9 +6823,7 @@ /turf/simulated/floor/shuttle/dark_blue, /area/shuttle/escape) "aVX" = ( -/obj/machinery/iv_drip{ - density = 0 - }, +/obj/machinery/iv_drip, /turf/simulated/floor/shuttle/white, /area/shuttle/escape) "aWc" = ( @@ -17184,8 +17180,7 @@ /area/merchant_station) "gZQ" = ( /obj/structure/railing/mapped{ - dir = 1; - icon_state = "railing0-1" + dir = 1 }, /turf/unsimulated/floor{ dir = 4; @@ -17948,7 +17943,6 @@ "hDo" = ( /obj/machinery/door/airlock/centcom{ name = "Security Checkpoint"; - opacity = 1; req_access = list(109) }, /turf/unsimulated/floor{ @@ -18426,8 +18420,7 @@ icon_state = "tube1" }, /obj/structure/railing/mapped{ - dir = 1; - icon_state = "railing0-1" + dir = 1 }, /obj/machinery/porta_turret/crescent, /obj/effect/floor_decal/industrial/warning/full, @@ -20534,9 +20527,7 @@ /turf/simulated/wall/shuttle/unique/mercenary/small, /area/shuttle/syndicate_elite) "jok" = ( -/obj/machinery/status_display/arrivals_display{ - layer = 3 - }, +/obj/machinery/status_display/arrivals_display, /turf/simulated/wall/shuttle/unique/arrivals{ desc = "A state-of-the-art unmanned automatic crew transport shuttle."; icon_state = "4,6"; @@ -21678,8 +21669,7 @@ name = "Emergency Room" }, /obj/effect/floor_decal/corner/lime{ - dir = 10; - icon_state = "corner_white" + dir = 10 }, /turf/unsimulated/floor{ icon_state = "dark2" @@ -21759,9 +21749,7 @@ /turf/space/dynamic, /area/shuttle/merchant) "ker" = ( -/obj/machinery/status_display/arrivals_display{ - layer = 3 - }, +/obj/machinery/status_display/arrivals_display, /turf/unsimulated/wall/darkshuttlewall, /area/centcom/spawning) "keA" = ( @@ -22522,7 +22510,7 @@ desc = "Connects to a station's emergency camera networks after the station sends out a distress signal."; layer = 4; name = "Emergency Dock Uplink"; - network = list("Emergency Dock"); + network = list("Emergency Dock","TCFL"); pixel_y = 28 }, /obj/structure/bed/chair/office/bridge/pilot, @@ -23507,8 +23495,7 @@ name = "adjusted railing" }, /obj/structure/railing/mapped{ - dir = 1; - icon_state = "railing0-1" + dir = 1 }, /obj/effect/floor_decal/corner/paleblue/full{ dir = 4 @@ -25716,8 +25703,7 @@ /area/centcom/distress_prep) "mDt" = ( /obj/effect/floor_decal/corner/lime{ - dir = 10; - icon_state = "corner_white" + dir = 10 }, /turf/unsimulated/floor{ icon_state = "dark2" @@ -31126,9 +31112,7 @@ /area/antag/ninja) "qce" = ( /obj/effect/wingrille_spawn/reinforced/crescent, -/obj/machinery/status_display/arrivals_display{ - layer = 3 - }, +/obj/machinery/status_display/arrivals_display, /turf/unsimulated/floor{ icon_state = "plating" }, @@ -37273,8 +37257,7 @@ /area/shuttle/mercenary) "uDS" = ( /obj/effect/floor_decal/corner/lime/full{ - dir = 4; - icon_state = "corner_white_full" + dir = 4 }, /turf/unsimulated/floor{ icon_state = "dark2" @@ -40977,8 +40960,7 @@ /area/centcom/bar) "wNL" = ( /obj/structure/railing/mapped{ - dir = 1; - icon_state = "railing0-1" + dir = 1 }, /obj/effect/floor_decal/corner/red{ dir = 5