From 12ca40c56d1df30da82ce20ceca315602fecccc1 Mon Sep 17 00:00:00 2001 From: Monara <86886852+MonaraMir@users.noreply.github.com> Date: Sun, 4 Jun 2023 14:18:29 -0400 Subject: [PATCH] Helmet Cameras (#5556) Co-authored-by: LordME <58342752+TheLordME@users.noreply.github.com> --- code/__DEFINES/inventory/accessories.dm | 1 + code/__DEFINES/machinery.dm | 2 + code/modules/clothing/head/helmet.dm | 18 ++--- .../clothing/spacesuits/void/station.dm | 2 + .../clothing/under/accessories/armor.dm | 64 ++++++++++++++++++ .../computers/subtypes/preset_laptop.dm | 34 ++++++++++ .../file_system/programs/generic/camera.dm | 39 +++++++++++ code/modules/tgui/modules/camera.dm | 18 +++++ icons/mob/clothing/ties.dmi | Bin 131053 -> 131502 bytes icons/obj/clothing/Sprite-0002.dmi | Bin 0 -> 699 bytes icons/obj/clothing/modular_armor.dmi | Bin 6233 -> 6463 bytes maps/map_files/rift/rift-05-surface2.dmm | 3 - maps/rift/rift_defines.dm | 6 +- 13 files changed, 173 insertions(+), 14 deletions(-) create mode 100644 icons/obj/clothing/Sprite-0002.dmi diff --git a/code/__DEFINES/inventory/accessories.dm b/code/__DEFINES/inventory/accessories.dm index 36528fdb095..c19ae8a4d49 100644 --- a/code/__DEFINES/inventory/accessories.dm +++ b/code/__DEFINES/inventory/accessories.dm @@ -13,5 +13,6 @@ #define ACCESSORY_SLOT_ARMOR_S 0x1000 #define ACCESSORY_SLOT_ARMOR_M 0x2000 #define ACCESSORY_SLOT_HELM_C 0x4000 +#define ACCESSORY_SLOT_HELM_R 0x8000 #define ACCESSORY_SLOT_TORSO (ACCESSORY_SLOT_UTILITY|ACCESSORY_SLOT_WEAPON) diff --git a/code/__DEFINES/machinery.dm b/code/__DEFINES/machinery.dm index 209e432b011..97c31383a26 100644 --- a/code/__DEFINES/machinery.dm +++ b/code/__DEFINES/machinery.dm @@ -83,6 +83,8 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called manu #define NETWORK_OUTSIDE "Outside" #define NETWORK_EXPLORATION "Exploration" #define NETWORK_XENOBIO "Xenobiology" +#define NETWORK_CIV_HELMETS "Public Helmets" +#define NETWORK_SEC_HELMETS "Security Helmets" #define NETWORK_EXPLO_HELMETS "Exploration Helmets" //! Off Station Camera Networks diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 205e938419d..818c695a115 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -2,8 +2,8 @@ name = "helmet" desc = "Standard headgear. Protects well enough against a wide range of attacks." icon_state = "helmet" - valid_accessory_slots = (ACCESSORY_SLOT_HELM_C) - restricted_accessory_slots = (ACCESSORY_SLOT_HELM_C) + valid_accessory_slots = ACCESSORY_SLOT_HELM_C|ACCESSORY_SLOT_HELM_R + restricted_accessory_slots = ACCESSORY_SLOT_HELM_C|ACCESSORY_SLOT_HELM_R clothing_flags = THICKMATERIAL armor_type = /datum/armor/station/medium inv_hide_flags = HIDEEARS|BLOCKHEADHAIR @@ -26,7 +26,7 @@ desc = "A helmet painted in Peacekeeper blue. Stands out like a sore thumb." icon_state = "helmet_sol" armor_type = /datum/armor/oricon/peacekeeper - valid_accessory_slots = null + valid_accessory_slots = ACCESSORY_SLOT_HELM_R /obj/item/clothing/head/helmet/oricon/command name = "command helmet" @@ -61,7 +61,7 @@ armor_type = /datum/armor/station/riot item_state_slots = list(SLOT_ID_RIGHT_HAND = "swat", SLOT_ID_LEFT_HAND = "swat") siemens_coefficient = 0.5 - valid_accessory_slots = null + valid_accessory_slots = ACCESSORY_SLOT_HELM_R action_button_name = "Toggle Visor" /obj/item/clothing/head/helmet/riot/attack_self(mob/user) @@ -83,7 +83,7 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "helmet", SLOT_ID_LEFT_HAND = "helmet") armor_type = /datum/armor/station/ablative siemens_coefficient = 0.2 - valid_accessory_slots = null + valid_accessory_slots = ACCESSORY_SLOT_HELM_R /obj/item/clothing/head/helmet/ballistic name = "ballistic helmet" @@ -92,7 +92,7 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "helmet", SLOT_ID_LEFT_HAND = "helmet") armor_type = /datum/armor/station/ballistic siemens_coefficient = 0.7 - valid_accessory_slots = null + valid_accessory_slots = ACCESSORY_SLOT_HELM_R /obj/item/clothing/head/helmet/combat name = "combat helmet" @@ -102,7 +102,7 @@ armor_type = /datum/armor/station/combat inv_hide_flags = HIDEEARS|HIDEEYES|BLOCKHEADHAIR siemens_coefficient = 0.6 - valid_accessory_slots = null + valid_accessory_slots = ACCESSORY_SLOT_HELM_R /obj/item/clothing/head/helmet/redcombat name = "combat helmet" @@ -185,7 +185,7 @@ armor_type = /datum/armor/station/tactical inv_hide_flags = HIDEEARS|BLOCKHAIR siemens_coefficient = 0.7 - valid_accessory_slots = null + valid_accessory_slots = ACCESSORY_SLOT_HELM_R /obj/item/clothing/head/helmet/augment name = "Augment Array" @@ -232,7 +232,7 @@ icon_state = "erthelmet_cmd" item_state_slots = list(SLOT_ID_RIGHT_HAND = "syndicate-helm-green", SLOT_ID_LEFT_HAND = "syndicate-helm-green") armor_type = /datum/armor/centcom/ert - valid_accessory_slots = null + valid_accessory_slots = ACCESSORY_SLOT_HELM_R //Commander /obj/item/clothing/head/helmet/ert/command diff --git a/code/modules/clothing/spacesuits/void/station.dm b/code/modules/clothing/spacesuits/void/station.dm index 05adf8a2ead..007848b460a 100644 --- a/code/modules/clothing/spacesuits/void/station.dm +++ b/code/modules/clothing/spacesuits/void/station.dm @@ -193,6 +193,7 @@ armor_type = /datum/armor/station/secsuit siemens_coefficient = 0.7 light_overlay = "helmet_light_dual" + camera_networks = list(NETWORK_SEC_HELMETS) /obj/item/clothing/suit/space/void/security name = "security voidsuit" @@ -380,6 +381,7 @@ name = "head of security protosuit helmet" icon_state = "hosproto" armor_type = /datum/armor/security/hos/space + camera_networks = list(NETWORK_SEC_HELMETS) /obj/item/clothing/suit/space/void/headofsecurity desc = "A customized security voidsuit. Has additional composite armor." diff --git a/code/modules/clothing/under/accessories/armor.dm b/code/modules/clothing/under/accessories/armor.dm index f71c2f837a9..227fc4aebe5 100644 --- a/code/modules/clothing/under/accessories/armor.dm +++ b/code/modules/clothing/under/accessories/armor.dm @@ -440,6 +440,70 @@ desc = "A fabric cover for armored helmets. This one has SAARE's colors." icon_state = "helmcover_saare" +///////////////// +//Helmet Cameras +///////////////// + +/obj/item/clothing/accessory/armor/helmetcamera + name = "helmet camera" + desc = "A small camera that attaches to helmets." + icon_override = 'icons/mob/clothing/ties.dmi' + icon = 'icons/obj/clothing/modular_armor.dmi' + icon_state = "helmcam" + slot = ACCESSORY_SLOT_HELM_R + var/obj/machinery/camera/camera + var/list/camera_networks + camera_networks = list(NETWORK_CIV_HELMETS) + + +/obj/item/clothing/accessory/armor/helmetcamera/attack_self(mob/user) + . = ..() + if(.) + return + if(camera_networks) + if(!camera) + camera = new /obj/machinery/camera(src) + camera.replace_networks(camera_networks) + camera.set_status(FALSE) //So the camera will activate in the following check. + + if(camera.status == TRUE) + camera.set_status(FALSE) + to_chat(usr, "Camera deactivated.") + else + camera.set_status(TRUE) + camera.c_tag = usr.name + to_chat(usr, "User scanned as [camera.c_tag]. Camera activated.") + else + to_chat(usr, "This object does not have a camera.") //Shouldnt ever be visible for helmet cams. + return + +/obj/item/clothing/accessory/armor/helmetcamera/examine(mob/user) + . = ..() + if(camera_networks && get_dist(user,src) <= 1) + . += "The [camera ? "" : "in"]active." + +/obj/item/clothing/accessory/armor/helmetcamera/body + name = "body camera" + desc = "A small camera that attaches to most uniforms." + icon_override = 'icons/mob/clothing/ties.dmi' + icon = 'icons/obj/clothing/modular_armor.dmi' + icon_state = "helmcam_body" + slot = ACCESSORY_SLOT_DECOR + camera_networks = list(NETWORK_CIV_HELMETS) + +/obj/item/clothing/accessory/armor/helmetcamera/security + name = "\improper Security helmet camera" + desc = "A small camera that attaches to helmets. This one has its feed restricted to Security." + icon_state = "helmcam_sec" + camera_networks = list(NETWORK_SEC_HELMETS) + +/obj/item/clothing/accessory/armor/helmetcamera/exploration + name = "\improper Exploration helmet camera" + desc = "A small camera that attaches to helmets. This one has its feed restricted to Exploration." + icon_state = "helmcam_explo" + camera_networks = list(NETWORK_EXPLO_HELMETS) + + //Lightweight Limb Plating - These are incompatible with plate carriers. //Debug variant diff --git a/code/modules/modular_computers/computers/subtypes/preset_laptop.dm b/code/modules/modular_computers/computers/subtypes/preset_laptop.dm index 079a8a0b9d6..7e2351e67d8 100644 --- a/code/modules/modular_computers/computers/subtypes/preset_laptop.dm +++ b/code/modules/modular_computers/computers/subtypes/preset_laptop.dm @@ -64,3 +64,37 @@ card_slot = new/obj/item/computer_hardware/card_slot(src) battery_module = new/obj/item/computer_hardware/battery_module/super(src) battery_module.charge_to_full() + +/////// +//Roles +/////// + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/security + name = "\improper Security Officer's laptop" + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/security/install_default_programs() + ..() + hard_drive.store_file(new/datum/computer_file/program/camera_monitor()) + hard_drive.store_file(new/datum/computer_file/program/camera_monitor/sechelmet()) + hard_drive.store_file(new/datum/computer_file/program/digitalwarrant()) + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/security/warden + name = "\improper Warden's laptop" + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/security/warden/install_default_programs() + ..() + //hard_drive.store_file(new/datum/computer_file/program/warden()) This will hopefully have a working alert level shifter program that only has access to green, blue, and yellow. + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/security/hos + name = "\improper Head of Security's laptop" + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/security/hos/install_default_programs() + ..() + hard_drive.store_file(new/datum/computer_file/program/comm()) + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/pathfinder + name = "\improper Pathfinder's laptop" + +/obj/item/modular_computer/laptop/preset/custom_loadout/standard/pathfinder/install_default_programs() + ..() + hard_drive.store_file(new/datum/computer_file/program/camera_monitor/explohelmet()) diff --git a/code/modules/modular_computers/file_system/programs/generic/camera.dm b/code/modules/modular_computers/file_system/programs/generic/camera.dm index 1dc18affcfb..b8db705ac9b 100644 --- a/code/modules/modular_computers/file_system/programs/generic/camera.dm +++ b/code/modules/modular_computers/file_system/programs/generic/camera.dm @@ -41,3 +41,42 @@ size = 14 tguimodule_path = /datum/tgui_module_old/camera/ntos/ert available_on_ntnet = 0 + +//Helmet Cameras +/datum/computer_file/program/camera_monitor/helmet + filename = "helmetcammon" + filedesc = "Helmet Camera Monitoring" + tguimodule_path = /datum/tgui_module_old/camera/ntos/helmet + program_icon_state = "cameras" + program_key_state = "generic_key" + program_menu_icon = "search" + extended_desc = "This program allows remote access to all civilian helmet cameras." + size = 8 + available_on_ntnet = 1 + requires_ntnet = 1 + +/datum/computer_file/program/camera_monitor/sechelmet + filename = "sechelmetcammon" + filedesc = "Security Helmet Camera Monitoring" + tguimodule_path = /datum/tgui_module_old/camera/ntos/security_helmet + program_icon_state = "cameras" + program_key_state = "generic_key" + program_menu_icon = "search" + extended_desc = "This program allows remote access to all civilian helmet cameras. This camera network requires Security clearance." + size = 8 + available_on_ntnet = 1 + requires_ntnet = 1 + required_access = ACCESS_SECURITY_EQUIPMENT + +/datum/computer_file/program/camera_monitor/explohelmet + filename = "explohelmetcammon" + filedesc = "Exploration Helmet Camera Monitoring" + tguimodule_path = /datum/tgui_module_old/camera/ntos/exploration_helmet + program_icon_state = "cameras" + program_key_state = "generic_key" + program_menu_icon = "search" + extended_desc = "This program allows remote access to all civilian helmet cameras. This camera network requires Exploration clearance." + size = 8 + available_on_ntnet = 1 + requires_ntnet = 1 + required_access = ACCESS_GENERAL_EXPLORER diff --git a/code/modules/tgui/modules/camera.dm b/code/modules/tgui/modules/camera.dm index f3397a72bb1..08f100bf7aa 100644 --- a/code/modules/tgui/modules/camera.dm +++ b/code/modules/tgui/modules/camera.dm @@ -296,3 +296,21 @@ /datum/tgui_module_old/camera/ntos/hacked/New(host) . = ..(host, GLOB.using_map.station_networks.Copy()) + +//Crew Helmet Cams +/datum/tgui_module_old/camera/ntos/helmet + name = "Public Helmet Camera Monitor" + +/datum/tgui_module_old/camera/ntos/helmet/New(host) + . = ..(host, list(NETWORK_CIV_HELMETS)) +/datum/tgui_module_old/camera/ntos/security_helmet + name = "Security Helmet Camera Monitor" + +/datum/tgui_module_old/camera/ntos/security_helmet/New(host) + . = ..(host, list(NETWORK_SEC_HELMETS)) + +/datum/tgui_module_old/camera/ntos/exploration_helmet + name = "Exploration Helmet Camera Monitor" + +/datum/tgui_module_old/camera/ntos/exploration_helmet/New(host) + . = ..(host, list(NETWORK_EXPLO_HELMETS)) diff --git a/icons/mob/clothing/ties.dmi b/icons/mob/clothing/ties.dmi index c2d53425c0bf58651bd452085258ea35e3edd72f..e2e8dc6616a7a71657b9e626cb57d9eeb62ed2b4 100644 GIT binary patch delta 12603 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 literal 0 HcmV?d00001 diff --git a/icons/obj/clothing/modular_armor.dmi b/icons/obj/clothing/modular_armor.dmi index 79857a61fc1f0ff38a0c904e5d8505be0721f42f..f3003f37db63d70be42e7511d5ba7356dc36509b 100644 GIT binary patch literal 6463 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 NwABsNKC2+Z{|B62T+09e literal 6233 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