diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm index 92c5de9e1bd..22969894fa7 100644 --- a/code/game/jobs/job/support.dm +++ b/code/game/jobs/job/support.dm @@ -434,7 +434,7 @@ l_hand = /obj/item/storage/bag/books pda = /obj/item/pda/librarian backpack_contents = list( - /obj/item/videocam = 1) + /obj/item/videocam/advanced = 1) /datum/job/barber title = "Barber" diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index d38bcda6c3d..2cb8c4fc265 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -547,42 +547,44 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor /obj/item/videocam name = "video camera" icon = 'icons/obj/items.dmi' - desc = "video camera that can send live feed to the entertainment network." + desc = "This video camera can send live feeds to the entertainment network. You must hold to use it." icon_state = "videocam" item_state = "videocam" - w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT - materials = list(MAT_METAL=2000) + w_class = WEIGHT_CLASS_NORMAL + materials = list(MAT_METAL = 1000, MAT_GLASS = 500) var/on = FALSE var/obj/machinery/camera/camera var/icon_on = "videocam_on" var/icon_off = "videocam" var/canhear_range = 7 -/obj/item/videocam/attack_self(mob/user) - on = !on - if(camera) - if(!on) - src.icon_state = icon_off - camera.c_tag = null - camera.network = list() - else - src.icon_state = icon_on - camera.network = list("news") - camera.c_tag = user.name - else - - src.icon_state = icon_on +/obj/item/videocam/proc/camera_state(mob/living/carbon/user) + if(!on) + on = TRUE camera = new /obj/machinery/camera(src) + icon_state = icon_on camera.network = list("news") - GLOB.cameranet.removeCamera(camera) camera.c_tag = user.name - to_chat(user, "You switch the camera [on ? "on" : "off"].") + else + on = FALSE + icon_state = icon_off + camera.c_tag = null + QDEL_NULL(camera) + visible_message("The video camera has been turned [on ? "on" : "off"].") + +/obj/item/videocam/attack_self(mob/user) + camera_state(user) + +/obj/item/videocam/dropped() + . = ..() + if(!on) + return + camera_state() /obj/item/videocam/examine(mob/user) . = ..() if(in_range(user, src)) - . += "This video camera can send live feeds to the entertainment network. It's [camera ? "" : "in"]active." + . += "It's [on ? "" : "in"]active." /obj/item/videocam/hear_talk(mob/M as mob, list/message_pieces) var/msg = multilingual_to_message(message_pieces) @@ -599,6 +601,10 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor if(T.watchers[M] == camera) T.atom_say(msg) +/obj/item/videocam/advanced + name = "advanced video camera" + desc = "This video camera allows you to send live feeds even when attached to a belt." + slot_flags = SLOT_BELT ///hauntings, like hallucinations but more spooky diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 2518d3fb2b8..45ced9b2403 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -61,6 +61,16 @@ build_path = /obj/item/camera/digital category = list("Miscellaneous") +/datum/design/video_camera + name = "Video Camera" + desc = "Produce a video camera that can send live feed to the entertainment network." + id = "videocamera" + req_tech = list("programming" = 3, "materials" = 2) + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 500) + build_path = /obj/item/videocam + category = list("Miscellaneous") + /datum/design/safety_muzzle name = "Safety Muzzle" desc = "Produce a lockable muzzle keyed to security ID cards" diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 4c04396181d..4a8f9d360e5 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 7658ac307a6..5d29cdafc6d 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ