diff --git a/code/modules/research/xenoarchaeology/analysis/machinery_base.dm b/code/modules/research/xenoarchaeology/analysis/machinery_base.dm
index 70cf4d04d70..5cb2052118c 100644
--- a/code/modules/research/xenoarchaeology/analysis/machinery_base.dm
+++ b/code/modules/research/xenoarchaeology/analysis/machinery_base.dm
@@ -72,7 +72,6 @@
return
user.machine = src
var/dat = "[src.name]
"
- dat += "[owned_scanner ? "Scanner connected." : "Scanner disconnected."]
"
dat += "Module heat level: [temperature] kelvin
"
dat += "Safeties set at 300k, shielding failure at 400k. Failure to maintain safe heat levels may result in equipment damage.
"
dat += "
"
diff --git a/code/modules/research/xenoarchaeology/unknown/analysis.dm b/code/modules/research/xenoarchaeology/unknown/analysis.dm
index 370ad32cef4..e4bf5c6ecd3 100644
--- a/code/modules/research/xenoarchaeology/unknown/analysis.dm
+++ b/code/modules/research/xenoarchaeology/unknown/analysis.dm
@@ -10,28 +10,28 @@
density = 1
var/scan_progress = 0
var/scan_num = 0
- var/cur_scanning_atom
+ var/obj/scanned_obj
var/obj/machinery/scanner/owned_scanner = null
/obj/machinery/anomaly/artifact_analyser/New()
..()
//connect to a nearby scanner pad
- owned_scanner = locate(/obj/machinery/anomaly/scanner) in get_step(src, dir)
+ owned_scanner = locate(/obj/machinery/scanner) in get_step(src, dir)
if(!owned_scanner)
- owned_scanner = locate(/obj/machinery/anomaly/scanner) in orange(1, src)
-
+ owned_scanner = locate(/obj/machinery/scanner) in orange(1, src)
/obj/machinery/anomaly/artifact_analyser/attack_hand(var/mob/user as mob)
- if(stat & (NOPOWER|BROKEN))
+ if(stat & (NOPOWER|BROKEN) || get_dist(src, user) > 1)
+ user.unset_machine(src)
return
- user.machine = src
+
var/dat = "Anomalous material analyser
"
dat += "
"
- if(!owned_pad)
- owned_pad = locate() in orange(1, src)
+ if(!owned_scanner)
+ owned_scanner = locate() in orange(1, src)
- if(!owned_pad)
+ if(!owned_scanner)
dat += "Unable to locate analysis pad.
"
else if(scan_progress)
dat += "Please wait. Analysis in progress.
"
@@ -41,4 +41,5 @@
dat += "
"
dat += "Refresh Close"
user << browse(dat, "window=artanalyser;size=450x500")
+ user.set_machine(src)
onclose(user, "artanalyser")
diff --git a/code/modules/research/xenoarchaeology/unknown/unknown_harvester.dm b/code/modules/research/xenoarchaeology/unknown/unknown_harvester.dm
index 40733e91c7e..06fe3d9de32 100644
--- a/code/modules/research/xenoarchaeology/unknown/unknown_harvester.dm
+++ b/code/modules/research/xenoarchaeology/unknown/unknown_harvester.dm
@@ -1,5 +1,5 @@
-/obj/machinery/artifact_harvester
+/obj/machinery/anomaly/artifact_harvester
name = "Anomaly Power Collector"
icon = 'virology.dmi'
icon_state = "incubator" //incubator_on
@@ -8,14 +8,17 @@
var/harvesting = 0
var/obj/item/weapon/anobattery/inserted_battery
var/obj/machinery/artifact/cur_artifact
- var/obj/machinery/anomaly/scanner/owned_pad = null
+ var/obj/machinery/scanner/owned_scanner = null
-/obj/machinery/artifact_harvester/New()
+/obj/machinery/anomaly/artifact_harvester/New()
..()
- spawn(10)
- owned_pad = locate() in orange(1, src)
-/obj/machinery/artifact_harvester/attackby(var/obj/I as obj, var/mob/user as mob)
+ //connect to a nearby scanner pad
+ owned_scanner = locate(/obj/machinery/scanner) in get_step(src, dir)
+ if(!owned_scanner)
+ owned_scanner = locate(/obj/machinery/scanner) in orange(1, src)
+
+/obj/machinery/anomaly/artifact_harvester/attackby(var/obj/I as obj, var/mob/user as mob)
if(istype(I,/obj/item/weapon/anobattery))
if(!inserted_battery)
user << "You insert the battery."
@@ -26,7 +29,7 @@
else
return..()
-/obj/machinery/artifact_harvester/process()
+/obj/machinery/anomaly/artifact_harvester/process()
if(stat & (NOPOWER|BROKEN))
return
use_power(350)
@@ -38,19 +41,18 @@
inserted_battery.stored_charge = inserted_battery.capacity
harvesting = 0
cur_artifact.anchored = 0
- cur_artifact.being_used = 0
src.visible_message("[name] states, \"Battery is full.\"")
icon_state = "incubator"
return
-/obj/machinery/artifact_harvester/interact(var/mob/user as mob)
+/obj/machinery/anomaly/artifact_harvester/interact(var/mob/user as mob)
if(stat & (NOPOWER|BROKEN))
return
user.machine = src
var/dat = "Artifact Power Harvester
"
dat += "
"
//
- if(owned_pad)
+ if(owned_scanner)
if(harvesting)
dat += "Please wait. Harvesting in progress ([(inserted_battery.stored_charge/inserted_battery.capacity)*100]%).
"
dat += "Halt early
"
@@ -72,23 +74,23 @@
user << browse(dat, "window=artharvester;size=450x500")
onclose(user, "artharvester")
-/obj/machinery/artifact_harvester/Topic(href, href_list)
+/obj/machinery/anomaly/artifact_harvester/Topic(href, href_list)
if (href_list["harvest"])
//locate artifact on analysis pad
cur_artifact = null
var/articount = 0
var/obj/machinery/artifact/analysed
- for(var/obj/machinery/artifact/A in get_turf(owned_pad))
+ for(var/obj/machinery/artifact/A in get_turf(owned_scanner))
analysed = A
articount++
var/mundane = 0
- for(var/obj/O in get_turf(owned_pad))
- if(!istype(O, /obj/machinery/artifact) && !istype(O, /obj/machinery/anomaly/scanner))
+ for(var/obj/O in get_turf(owned_scanner))
+ if(!istype(O, /obj/machinery/artifact) && !istype(O, /obj/machinery/scanner))
mundane++
break
- for(var/mob/O in get_turf(owned_pad))
+ for(var/mob/O in get_turf(owned_scanner))
if(!istype(O, /obj/machinery/artifact))
mundane++
break