// This item just has an integrated camera console, which the data is "proxied" to /obj/item/camera_bug name = "camera bug" desc = "For illicit snooping through the camera network." icon = 'icons/obj/device.dmi' icon_state = "camera_bug" w_class = WEIGHT_CLASS_TINY item_state = "camera_bug" throw_speed = 4 throw_range = 20 origin_tech = "syndicate=1;engineering=3" /// Integrated camera console to serve UI data var/obj/machinery/computer/security/camera_bug/integrated_console var/connections = 0 /obj/machinery/computer/security/camera_bug name = "invasive camera utility" desc = "How did this get here?! Please report this as a bug to github" power_state = NO_POWER_USE silent_console = TRUE /obj/item/camera_bug/Initialize(mapload) . = ..() integrated_console = new(src) integrated_console.parent = src integrated_console.network = list("SS13", "camera_bug[UID()]") /obj/item/camera_bug/Destroy() QDEL_NULL(integrated_console) return ..() /obj/item/camera_bug/attack_self(mob/user as mob) ui_interact(user) /obj/item/camera_bug/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.inventory_state) integrated_console.ui_interact(user, ui_key, ui, force_open, master_ui, state) /obj/item/camera_bug/ert name = "ERT Camera Monitor" desc = "A small handheld device used by ERT commanders to view camera feeds remotely." /obj/item/camera_bug/ert/Initialize(mapload) . = ..() integrated_console.network = list("ERT") /obj/item/wall_bug name = "\improper small camera" desc = "A camera with a sticky backside." icon = 'icons/obj/device.dmi' icon_state = "wall_bug" w_class = WEIGHT_CLASS_TINY var/obj/machinery/camera/portable/camera var/index = "REPORT THIS TO CODERS" /obj/item/wall_bug/Initialize(mapload, obj/item/camera_bug/the_bug) . = ..() link_to_camera(the_bug) AddComponent(/datum/component/sticky) /obj/item/wall_bug/Destroy() QDEL_NULL(camera) . = ..() /obj/item/wall_bug/examine(mob/user) . = ..() if(in_range(user, src)) . += "It has a small label on it reading \"[index]\"." /obj/item/wall_bug/proc/link_to_camera(obj/item/camera_bug/camera_bug) if(!istype(camera_bug)) return if(camera) // we can't link twice return camera_bug.connections++ index = camera_bug.connections camera = new /obj/machinery/camera/portable(src) camera.network = list("camera_bug[camera_bug.UID()]") camera.c_tag = "Hidden Camera [index]" /obj/item/paper/camera_bug name = "Camera Bug Guide" icon_state = "paper" info = {"Instructions on your new invasive camera utility

This camera bug can access all default cameras on the station, along with the hidden cameras provided in this kit.

The cameras in this kit have a sticky backside, allowing you to attach them to literally anything, even people.

You may remove the cameras from said objects by grabbing them with an empty hand.

You can view these hidden cameras by looking up "Hidden Camera" on your camera bug.

Only the camera bug provided in this kit can see these hidden cameras.

Other Camera bugs cannot see your hidden cameras.

There is no other way to get these hidden cameras, so make sure to not lose them!
"}