diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 9c9ad45e9ba..8ad7fae6d2d 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -528,7 +528,7 @@ REAGENT SCANNER /obj/item/slime_scanner/attack(mob/living/M as mob, mob/living/user as mob) slime_scan(M, user) -/proc/slime_scan(mob/living/simple_animal/slime/M, mob/living/user) +/proc/slime_scan(mob/living/carbon/slime/M, mob/living/user) if(!isslime(M)) user.show_message("This device can only scan slimes!", 1) return diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index fa4d8392665..1b8f61bb7bf 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -28,8 +28,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) RefreshParts() /obj/machinery/monkey_recycler/Destroy() - if(src in GLOB.monkey_recyclers) - GLOB.monkey_recyclers -= src + GLOB.monkey_recyclers -= src for(var/obj/machinery/computer/camera_advanced/xenobio/console in connected) console.connected_recycler = null return ..() diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 76e2692e4d0..eea44f20082 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -26,9 +26,9 @@ var/datum/action/innate/slime_pick_up/slime_up_action = new var/datum/action/innate/feed_slime/feed_slime_action = new var/datum/action/innate/monkey_recycle/monkey_recycle_action = new + var/datum/action/innate/slime_scan/scan_action = new var/datum/action/innate/feed_potion/potion_action = new var/datum/action/innate/hotkey_help/hotkey_help = new - var/datum/action/innate/slime_scan/scan_action = new var/list/stored_slimes = list() var/max_slimes = 5 @@ -39,14 +39,7 @@ icon_screen = "slime_comp" icon_keyboard = "rd_key" -/obj/machinery/computer/camera_advanced/xenobio/CreateEye() - eyeobj = new /mob/camera/aiEye/remote/xenobio(get_turf(src)) - eyeobj.origin = src - eyeobj.visible_icon = 1 - eyeobj.icon = 'icons/obj/abductor.dmi' - eyeobj.icon_state = "camera_target" - -/obj/machinery/computer.camera_advanced/xenobio/New() +/obj/machinery/camera_advanced/xenobio/New() for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers) if(get_area(recycler.loc) == get_area(loc)) connected_recycler = recycler @@ -59,6 +52,13 @@ stored_slimes.Cut() return ..() +/obj/machinery/computer/camera_advanced/xenobio/CreateEye() + eyeobj = new /mob/camera/aiEye/remote/xenobio(get_turf(src)) + eyeobj.origin = src + eyeobj.visible_icon = 1 + eyeobj.icon = 'icons/obj/abductor.dmi' + eyeobj.icon_state = "camera_target" + /obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/carbon/user) ..() @@ -249,8 +249,24 @@ else to_chat(owner, "Target is not near a camera. Cannot proceed.") +/datum/action/innate/slime_scan + name = "Scan Slime" + button_icon_state = "slime_scan" + +/datum/action/innate/slime_scan/Activate() + if(!target || !isliving(owner)) + return + var/mob/living/C = owner + var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control + + if(cameranet.checkTurfVis(remote_eye.loc)) + for(var/mob/living/carbon/slime/S in remote_eye.loc) + slime_scan(S, C) + else + to_chat(owner, "Target is not near a camera. Cannot proceed.") + /datum/action/innate/feed_potion - name = "Transfer Potion" + name = "Apply Potion" button_icon_state = "slime_potion" /datum/action/innate/feed_potion/Activate() @@ -285,22 +301,6 @@ to_chat(owner, "Alt-click a slime to feed it a potion.") to_chat(owner, "Ctrl-click or a dead monkey to recycle it, or the floor to place a new monkey.") -/datum/action/innate/slime_scan - name = "Scan Slime" - button_icon_state = "slime_scan" - -/datum/action/innate/slime_scan/Activate() - if(!target || !isliving(owner)) - return - var/mob/living/C = owner - var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control - - if(cameranet.checkTurfVis(remote_eye.loc)) - for(var/mob/living/carbon/slime/S in remote_eye.loc) - slime_scan(S, C) - else - to_chat(owner, "Target is not near a camera. Cannot proceed.") - // // Alternate clicks for slime, monkey and open turf if using a xenobio console