diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 050a105307e..e99610b5542 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -359,17 +359,20 @@ else return ..() -/obj/machinery/computer/scan_consolenew/New() - ..() +/obj/machinery/computer/scan_consolenew/Initialize(mapload) + . = ..() for(var/i=0;i<3;i++) buffers[i+1]=new /datum/dna2/record - spawn(5) - for(dir in list(NORTH,EAST,SOUTH,WEST)) - connected = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) - if(!isnull(connected)) - break - spawn(250) - injector_ready = TRUE + addtimer(CALLBACK(src, .proc/find_machine), 1 SECONDS) + addtimer(CALLBACK(src, .proc/ready), 25 SECONDS) + +/obj/machinery/computer/scan_consolenew/proc/find_machine() + for(var/obj/machinery/dna_scannernew/scanner in orange(1, src)) + connected = scanner + return + +/obj/machinery/computer/scan_consolenew/proc/ready() + injector_ready = TRUE /obj/machinery/computer/scan_consolenew/proc/all_dna_blocks(list/buffer) var/list/arr = list() diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 77c78506676..5bde1f42a56 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -25,8 +25,8 @@ light_color = LIGHT_COLOR_DARKBLUE -/obj/machinery/computer/cloning/Initialize() - ..() +/obj/machinery/computer/cloning/Initialize(mapload) + . = ..() pods = list() records = list() set_scan_temp("Scanner ready.", "good") @@ -61,20 +61,15 @@ selected_pod = pods[1] /obj/machinery/computer/cloning/proc/findscanner() - var/obj/machinery/dna_scannernew/scannerf = null - //Try to find scanner on adjacent tiles first - for(dir in list(NORTH,EAST,SOUTH,WEST)) - scannerf = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) - if(scannerf) - return scannerf + for(var/obj/machinery/dna_scannernew/scanner in orange(1, src)) + return scanner //Then look for a free one in the area - if(!scannerf) - for(var/obj/machinery/dna_scannernew/S in get_area(src)) - return S + for(var/obj/machinery/dna_scannernew/S in get_area(src)) + return S - return 0 + return FALSE /obj/machinery/computer/cloning/proc/releasecloner() for(var/obj/machinery/clonepod/P in pods)