diff --git a/code/modules/research/artifact_analysis.dm b/code/modules/research/artifact_analysis.dm index 554a846cfec..16b4c0c1568 100644 --- a/code/modules/research/artifact_analysis.dm +++ b/code/modules/research/artifact_analysis.dm @@ -214,25 +214,31 @@ findarti++ cur_artifact = A if (findarti == 1) - cur_artifact.anchored = 1 - src.working = 1 - src.icon_state = "analyser_processing" - var/time = rand(30,50) + max(0, 300 - scan_num * 10) - /*for(var/i = artifact_research.starting_tier, i <= artifact_research.max_tiers, i++) - for(var/datum/artiresearch/R in artifact_research.researched_items[i]) - if (R.bonustype == "analyser") time -= R.bonusTime*/ - time *= 10 - var/message = "[src] states, \"Commencing analysis.\"" - src.visible_message(message, message) - spawn(time) - src.working = 0 - icon_state = "analyser" - cur_artifact.anchored = 0 - if(cur_artifact.loc == pad_turf) - AA_Analyse() - scan_num++ - message = "[src] states, \"Analysis complete.\"" - src.visible_message(message, message) + if(cur_artifact.being_used) + var/message = "[src] states, \"Cannot analyse. Excess energy drain is disrupting signal.\"" + src.visible_message(message, message) + else + cur_artifact.anchored = 1 + cur_artifact.being_used = 1 + src.working = 1 + src.icon_state = "analyser_processing" + var/time = rand(30,50) + max(0, 300 - scan_num * 10) + /*for(var/i = artifact_research.starting_tier, i <= artifact_research.max_tiers, i++) + for(var/datum/artiresearch/R in artifact_research.researched_items[i]) + if (R.bonustype == "analyser") time -= R.bonusTime*/ + time *= 10 + var/message = "[src] states, \"Commencing analysis.\"" + src.visible_message(message, message) + spawn(time) + src.working = 0 + icon_state = "analyser" + cur_artifact.anchored = 0 + cur_artifact.being_used = 0 + if(cur_artifact.loc == pad_turf) + AA_Analyse() + scan_num++ + message = "[src] states, \"Analysis complete.\"" + src.visible_message(message, message) else if (findarti > 1) var/message = "[src] states, \"Cannot analyse. Too many artifacts on pad.\"" src.visible_message(message, message) diff --git a/code/modules/research/artifact_harvester.dm b/code/modules/research/artifact_harvester.dm index 595ea22f852..84839dfb768 100644 --- a/code/modules/research/artifact_harvester.dm +++ b/code/modules/research/artifact_harvester.dm @@ -43,6 +43,7 @@ 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 @@ -102,6 +103,9 @@ else if(!articount) var/message = "[src] states, \"Cannot harvest. No artifact found.\"" src.visible_message(message, message) + else if (cur_artifact.being_used) + var/message = "[src] states, \"Cannot harvest. Too much interferance from energy scan.\"" + src.visible_message(message, message) else cur_artifact = analysed //check to see if the battery is compatible @@ -109,6 +113,7 @@ if(inserted_battery.battery_effect.artifact_id == cur_artifact.my_effect.artifact_id || inserted_battery.stored_charge == 0) harvesting = 1 cur_artifact.anchored = 1 + cur_artifact.being_used = 1 icon_state = "incubator_on" var/message = "[src] states, \"Beginning artifact energy harvesting.\"" src.visible_message(message, message) @@ -125,6 +130,7 @@ if(harvesting) harvesting = 0 cur_artifact.anchored = 0 + cur_artifact.being_used = 0 src.visible_message("[name] states, \"Harvesting interrupted.\"") icon_state = "incubator" diff --git a/code/modules/research/artifacts.dm b/code/modules/research/artifacts.dm index a043880dcca..d79222b3f21 100644 --- a/code/modules/research/artifacts.dm +++ b/code/modules/research/artifacts.dm @@ -15,6 +15,7 @@ var/recharge = 5 // How long does it take this artifact to recharge? var/display_id = "" // Artifact ID to display once successfully scanned var/datum/artifact_effect/my_effect = null + var/being_used = 0 /obj/machinery/artifact/New() ..()