mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 23:52:12 +00:00
TCFL Helmet Cameras (#10159)
This commit is contained in:
@@ -48,6 +48,7 @@
|
|||||||
#define NETWORK_MECHS "Mechs"
|
#define NETWORK_MECHS "Mechs"
|
||||||
#define NETWORK_MEDICAL "Medical"
|
#define NETWORK_MEDICAL "Medical"
|
||||||
#define NETWORK_MERCENARY "MercurialNet"
|
#define NETWORK_MERCENARY "MercurialNet"
|
||||||
|
#define NETWORK_TCFL "TCFL"
|
||||||
#define NETWORK_MINE "MINE"
|
#define NETWORK_MINE "MINE"
|
||||||
#define NETWORK_RESEARCH "Research"
|
#define NETWORK_RESEARCH "Research"
|
||||||
#define NETWORK_RESEARCH_OUTPOST "Research Outpost"
|
#define NETWORK_RESEARCH_OUTPOST "Research Outpost"
|
||||||
|
|||||||
@@ -47,6 +47,9 @@ var/global/list/engineering_networks = list(
|
|||||||
/obj/machinery/camera/network/mercenary
|
/obj/machinery/camera/network/mercenary
|
||||||
network = list(NETWORK_MERCENARY)
|
network = list(NETWORK_MERCENARY)
|
||||||
|
|
||||||
|
/obj/machinery/camera/network/tcfl
|
||||||
|
network = list(NETWORK_TCFL)
|
||||||
|
|
||||||
/obj/machinery/camera/network/exodus
|
/obj/machinery/camera/network/exodus
|
||||||
network = list(NETWORK_STATION)
|
network = list(NETWORK_STATION)
|
||||||
|
|
||||||
|
|||||||
@@ -15,10 +15,38 @@
|
|||||||
max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
|
max_heat_protection_temperature = HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||||
siemens_coefficient = 0.5
|
siemens_coefficient = 0.5
|
||||||
w_class = ITEMSIZE_NORMAL
|
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
|
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'
|
drop_sound = 'sound/items/drop/helm.ogg'
|
||||||
pickup_sound = 'sound/items/pickup/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 <b>Toggle Helmet Camera</b>.")))
|
||||||
|
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()
|
/obj/item/clothing/head/helmet/verb/toggle_block_hair()
|
||||||
set name = "Toggle Helmet Hair Coverage"
|
set name = "Toggle Helmet Hair Coverage"
|
||||||
set category = "Object"
|
set category = "Object"
|
||||||
@@ -282,6 +310,7 @@
|
|||||||
light_overlay = "helmet_light_dual"
|
light_overlay = "helmet_light_dual"
|
||||||
brightness_on = 6
|
brightness_on = 6
|
||||||
light_wedge = LIGHT_WIDE
|
light_wedge = LIGHT_WIDE
|
||||||
|
camera = /obj/machinery/camera/network/tcfl
|
||||||
on = 0
|
on = 0
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/legion_pilot
|
/obj/item/clothing/head/helmet/legion_pilot
|
||||||
@@ -291,6 +320,7 @@
|
|||||||
body_parts_covered = null
|
body_parts_covered = null
|
||||||
flags_inv = BLOCKHEADHAIR
|
flags_inv = BLOCKHEADHAIR
|
||||||
armor = list(melee = 40, bullet = 20, laser = 20, energy = 10, bomb = 40, bio = 0, rad = 0)
|
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
|
siemens_coefficient = 0.35
|
||||||
action_button_name = "Flip Pilot Visor"
|
action_button_name = "Flip Pilot Visor"
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,8 @@
|
|||||||
offline_slowdown = 4
|
offline_slowdown = 4
|
||||||
offline_vision_restriction = TINT_HEAVY
|
offline_vision_restriction = TINT_HEAVY
|
||||||
|
|
||||||
|
helm_type = /obj/item/clothing/head/helmet/space/rig/tcfl
|
||||||
|
|
||||||
allowed = list(
|
allowed = list(
|
||||||
/obj/item/device/flashlight,
|
/obj/item/device/flashlight,
|
||||||
/obj/item/tank,
|
/obj/item/tank,
|
||||||
@@ -121,6 +123,9 @@
|
|||||||
/obj/item/rig_module/fabricator/energy_net
|
/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
|
/obj/item/rig/gunslinger
|
||||||
name = "gunslinger hardsuit control module"
|
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."
|
desc = "A favorite of Coalition rangers, the Gunslinger suit is a sturdy hardsuit meant to provide the user absolute situational awareness."
|
||||||
|
|||||||
@@ -22,40 +22,12 @@
|
|||||||
flash_protection = FLASH_PROTECTION_MAJOR
|
flash_protection = FLASH_PROTECTION_MAJOR
|
||||||
allow_hair_covering = FALSE
|
allow_hair_covering = FALSE
|
||||||
|
|
||||||
var/obj/machinery/camera/camera
|
|
||||||
|
|
||||||
action_button_name = "Toggle Helmet Light"
|
action_button_name = "Toggle Helmet Light"
|
||||||
light_overlay = "helmet_light"
|
light_overlay = "helmet_light"
|
||||||
brightness_on = 4
|
brightness_on = 4
|
||||||
light_wedge = LIGHT_WIDE
|
light_wedge = LIGHT_WIDE
|
||||||
on = 0
|
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, "<span class='notice'>User scanned as [camera.c_tag]. Camera activated.</span>")
|
|
||||||
else
|
|
||||||
to_chat(usr, "<span class='notice'>Camera deactivated.</span>")
|
|
||||||
|
|
||||||
/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
|
/obj/item/clothing/suit/space
|
||||||
name = "space suit"
|
name = "space suit"
|
||||||
desc = "A suit that protects against low pressure environments. \"NSS AURORA\" is written in large block letters on the back."
|
desc = "A suit that protects against low pressure environments. \"NSS AURORA\" is written in large block letters on the back."
|
||||||
|
|||||||
6
html/changelogs/geeves-tcfl_cameras.yml
Normal file
6
html/changelogs/geeves-tcfl_cameras.yml
Normal file
@@ -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."
|
||||||
@@ -3754,8 +3754,7 @@
|
|||||||
/area/centcom/holding)
|
/area/centcom/holding)
|
||||||
"awK" = (
|
"awK" = (
|
||||||
/obj/structure/railing/mapped{
|
/obj/structure/railing/mapped{
|
||||||
dir = 1;
|
dir = 1
|
||||||
icon_state = "railing0-1"
|
|
||||||
},
|
},
|
||||||
/turf/unsimulated/floor{
|
/turf/unsimulated/floor{
|
||||||
dir = 4;
|
dir = 4;
|
||||||
@@ -6556,7 +6555,6 @@
|
|||||||
"aSf" = (
|
"aSf" = (
|
||||||
/obj/machinery/door/airlock/centcom{
|
/obj/machinery/door/airlock/centcom{
|
||||||
name = "The Big Empty";
|
name = "The Big Empty";
|
||||||
opacity = 1;
|
|
||||||
req_access = list(109)
|
req_access = list(109)
|
||||||
},
|
},
|
||||||
/turf/unsimulated/floor{
|
/turf/unsimulated/floor{
|
||||||
@@ -6825,9 +6823,7 @@
|
|||||||
/turf/simulated/floor/shuttle/dark_blue,
|
/turf/simulated/floor/shuttle/dark_blue,
|
||||||
/area/shuttle/escape)
|
/area/shuttle/escape)
|
||||||
"aVX" = (
|
"aVX" = (
|
||||||
/obj/machinery/iv_drip{
|
/obj/machinery/iv_drip,
|
||||||
density = 0
|
|
||||||
},
|
|
||||||
/turf/simulated/floor/shuttle/white,
|
/turf/simulated/floor/shuttle/white,
|
||||||
/area/shuttle/escape)
|
/area/shuttle/escape)
|
||||||
"aWc" = (
|
"aWc" = (
|
||||||
@@ -17184,8 +17180,7 @@
|
|||||||
/area/merchant_station)
|
/area/merchant_station)
|
||||||
"gZQ" = (
|
"gZQ" = (
|
||||||
/obj/structure/railing/mapped{
|
/obj/structure/railing/mapped{
|
||||||
dir = 1;
|
dir = 1
|
||||||
icon_state = "railing0-1"
|
|
||||||
},
|
},
|
||||||
/turf/unsimulated/floor{
|
/turf/unsimulated/floor{
|
||||||
dir = 4;
|
dir = 4;
|
||||||
@@ -17948,7 +17943,6 @@
|
|||||||
"hDo" = (
|
"hDo" = (
|
||||||
/obj/machinery/door/airlock/centcom{
|
/obj/machinery/door/airlock/centcom{
|
||||||
name = "Security Checkpoint";
|
name = "Security Checkpoint";
|
||||||
opacity = 1;
|
|
||||||
req_access = list(109)
|
req_access = list(109)
|
||||||
},
|
},
|
||||||
/turf/unsimulated/floor{
|
/turf/unsimulated/floor{
|
||||||
@@ -18426,8 +18420,7 @@
|
|||||||
icon_state = "tube1"
|
icon_state = "tube1"
|
||||||
},
|
},
|
||||||
/obj/structure/railing/mapped{
|
/obj/structure/railing/mapped{
|
||||||
dir = 1;
|
dir = 1
|
||||||
icon_state = "railing0-1"
|
|
||||||
},
|
},
|
||||||
/obj/machinery/porta_turret/crescent,
|
/obj/machinery/porta_turret/crescent,
|
||||||
/obj/effect/floor_decal/industrial/warning/full,
|
/obj/effect/floor_decal/industrial/warning/full,
|
||||||
@@ -20534,9 +20527,7 @@
|
|||||||
/turf/simulated/wall/shuttle/unique/mercenary/small,
|
/turf/simulated/wall/shuttle/unique/mercenary/small,
|
||||||
/area/shuttle/syndicate_elite)
|
/area/shuttle/syndicate_elite)
|
||||||
"jok" = (
|
"jok" = (
|
||||||
/obj/machinery/status_display/arrivals_display{
|
/obj/machinery/status_display/arrivals_display,
|
||||||
layer = 3
|
|
||||||
},
|
|
||||||
/turf/simulated/wall/shuttle/unique/arrivals{
|
/turf/simulated/wall/shuttle/unique/arrivals{
|
||||||
desc = "A state-of-the-art unmanned automatic crew transport shuttle.";
|
desc = "A state-of-the-art unmanned automatic crew transport shuttle.";
|
||||||
icon_state = "4,6";
|
icon_state = "4,6";
|
||||||
@@ -21678,8 +21669,7 @@
|
|||||||
name = "Emergency Room"
|
name = "Emergency Room"
|
||||||
},
|
},
|
||||||
/obj/effect/floor_decal/corner/lime{
|
/obj/effect/floor_decal/corner/lime{
|
||||||
dir = 10;
|
dir = 10
|
||||||
icon_state = "corner_white"
|
|
||||||
},
|
},
|
||||||
/turf/unsimulated/floor{
|
/turf/unsimulated/floor{
|
||||||
icon_state = "dark2"
|
icon_state = "dark2"
|
||||||
@@ -21759,9 +21749,7 @@
|
|||||||
/turf/space/dynamic,
|
/turf/space/dynamic,
|
||||||
/area/shuttle/merchant)
|
/area/shuttle/merchant)
|
||||||
"ker" = (
|
"ker" = (
|
||||||
/obj/machinery/status_display/arrivals_display{
|
/obj/machinery/status_display/arrivals_display,
|
||||||
layer = 3
|
|
||||||
},
|
|
||||||
/turf/unsimulated/wall/darkshuttlewall,
|
/turf/unsimulated/wall/darkshuttlewall,
|
||||||
/area/centcom/spawning)
|
/area/centcom/spawning)
|
||||||
"keA" = (
|
"keA" = (
|
||||||
@@ -22522,7 +22510,7 @@
|
|||||||
desc = "Connects to a station's emergency camera networks after the station sends out a distress signal.";
|
desc = "Connects to a station's emergency camera networks after the station sends out a distress signal.";
|
||||||
layer = 4;
|
layer = 4;
|
||||||
name = "Emergency Dock Uplink";
|
name = "Emergency Dock Uplink";
|
||||||
network = list("Emergency Dock");
|
network = list("Emergency Dock","TCFL");
|
||||||
pixel_y = 28
|
pixel_y = 28
|
||||||
},
|
},
|
||||||
/obj/structure/bed/chair/office/bridge/pilot,
|
/obj/structure/bed/chair/office/bridge/pilot,
|
||||||
@@ -23507,8 +23495,7 @@
|
|||||||
name = "adjusted railing"
|
name = "adjusted railing"
|
||||||
},
|
},
|
||||||
/obj/structure/railing/mapped{
|
/obj/structure/railing/mapped{
|
||||||
dir = 1;
|
dir = 1
|
||||||
icon_state = "railing0-1"
|
|
||||||
},
|
},
|
||||||
/obj/effect/floor_decal/corner/paleblue/full{
|
/obj/effect/floor_decal/corner/paleblue/full{
|
||||||
dir = 4
|
dir = 4
|
||||||
@@ -25716,8 +25703,7 @@
|
|||||||
/area/centcom/distress_prep)
|
/area/centcom/distress_prep)
|
||||||
"mDt" = (
|
"mDt" = (
|
||||||
/obj/effect/floor_decal/corner/lime{
|
/obj/effect/floor_decal/corner/lime{
|
||||||
dir = 10;
|
dir = 10
|
||||||
icon_state = "corner_white"
|
|
||||||
},
|
},
|
||||||
/turf/unsimulated/floor{
|
/turf/unsimulated/floor{
|
||||||
icon_state = "dark2"
|
icon_state = "dark2"
|
||||||
@@ -31126,9 +31112,7 @@
|
|||||||
/area/antag/ninja)
|
/area/antag/ninja)
|
||||||
"qce" = (
|
"qce" = (
|
||||||
/obj/effect/wingrille_spawn/reinforced/crescent,
|
/obj/effect/wingrille_spawn/reinforced/crescent,
|
||||||
/obj/machinery/status_display/arrivals_display{
|
/obj/machinery/status_display/arrivals_display,
|
||||||
layer = 3
|
|
||||||
},
|
|
||||||
/turf/unsimulated/floor{
|
/turf/unsimulated/floor{
|
||||||
icon_state = "plating"
|
icon_state = "plating"
|
||||||
},
|
},
|
||||||
@@ -37273,8 +37257,7 @@
|
|||||||
/area/shuttle/mercenary)
|
/area/shuttle/mercenary)
|
||||||
"uDS" = (
|
"uDS" = (
|
||||||
/obj/effect/floor_decal/corner/lime/full{
|
/obj/effect/floor_decal/corner/lime/full{
|
||||||
dir = 4;
|
dir = 4
|
||||||
icon_state = "corner_white_full"
|
|
||||||
},
|
},
|
||||||
/turf/unsimulated/floor{
|
/turf/unsimulated/floor{
|
||||||
icon_state = "dark2"
|
icon_state = "dark2"
|
||||||
@@ -40977,8 +40960,7 @@
|
|||||||
/area/centcom/bar)
|
/area/centcom/bar)
|
||||||
"wNL" = (
|
"wNL" = (
|
||||||
/obj/structure/railing/mapped{
|
/obj/structure/railing/mapped{
|
||||||
dir = 1;
|
dir = 1
|
||||||
icon_state = "railing0-1"
|
|
||||||
},
|
},
|
||||||
/obj/effect/floor_decal/corner/red{
|
/obj/effect/floor_decal/corner/red{
|
||||||
dir = 5
|
dir = 5
|
||||||
|
|||||||
Reference in New Issue
Block a user