From f021f69e9bb753a2d399d52fb76d51461c1759d8 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Tue, 14 May 2013 13:06:29 +1000 Subject: [PATCH] cleanup and standardisation of xenoarchaeology analysis machinery Signed-off-by: Cael_Aislinn --- .../machinery/analysis_accelerator.dm | 21 ++++++++----------- .../machinery/analysis_base.dm | 6 +++--- .../machinery/analysis_fourier_transform.dm | 11 +++------- .../machinery/analysis_gas_chromatography.dm | 9 +++----- 4 files changed, 18 insertions(+), 29 deletions(-) diff --git a/code/modules/research/xenoarchaeology/machinery/analysis_accelerator.dm b/code/modules/research/xenoarchaeology/machinery/analysis_accelerator.dm index 5b0ad099f38..0a618dc8ba2 100644 --- a/code/modules/research/xenoarchaeology/machinery/analysis_accelerator.dm +++ b/code/modules/research/xenoarchaeology/machinery/analysis_accelerator.dm @@ -18,26 +18,23 @@ obj/machinery/anomaly/accelerator/ScanResults() num_reagents++ if(num_reagents == 2 && scanned_sample && carrier_name) - var/accuracy = GetResultSpecifity(scanned_sample, carrier_name) - accuracy += 0.5 * (1 - accuracy) / scanned_sample.total_spread - if(!accuracy) - accuracy = rand(0.01, 0.5) - results = "Kinetic acceleration of carrier ([carrier_name]) indicates age ([100 * accuracy]% accuracy):

" + var/specifity = GetResultSpecifity(scanned_sample, carrier_name) + results = "Kinetic acceleration of carrier ([carrier_name]) indicates age ([100 * specifity]% accuracy):

" if(scanned_sample.age_billion) - var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - accuracy) * (2 * rand() - 1)), 0) - var/displayed_age_billions = scanned_sample.age_billion + max(scanned_sample.age_billion * ((1 - accuracy) * (2 * rand() - 1)), 0) + var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - specifity) * (2 * rand() - 1)), 0) + var/displayed_age_billions = scanned_sample.age_billion + max(scanned_sample.age_billion * ((1 - specifity) * (2 * rand() - 1)), 0) results += "[displayed_age_billions + displayed_age_millions / 1000] billion years.
" else if(scanned_sample.age_million) - var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age_thousand * ((1 - accuracy) * (4 * rand() - 2)), 0) - var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - accuracy) * (2 * rand() - 1)), 0) + var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age_thousand * ((1 - specifity) * (4 * rand() - 2)), 0) + var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - specifity) * (2 * rand() - 1)), 0) results += "[displayed_age_millions + displayed_age_thousands / 1000] million years.
" else if(scanned_sample.age_thousand) - var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - accuracy) * (8 * rand() - 4)), 0) - var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age * ((1 - accuracy) * (4 * rand() - 2)), 0) + var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - specifity) * (8 * rand() - 4)), 0) + var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age * ((1 - specifity) * (4 * rand() - 2)), 0) results += "[displayed_age_thousands + displayed_age / 1000] thousand years.
" else - var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - accuracy) * (8 * rand() - 4)), 0) + var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - specifity) * (8 * rand() - 4)), 0) results += "[displayed_age] years.
" results += "
Warning, results only valid for ages on the scale of billions of years." diff --git a/code/modules/research/xenoarchaeology/machinery/analysis_base.dm b/code/modules/research/xenoarchaeology/machinery/analysis_base.dm index 580df44a68c..2dabb3949d1 100644 --- a/code/modules/research/xenoarchaeology/machinery/analysis_base.dm +++ b/code/modules/research/xenoarchaeology/machinery/analysis_base.dm @@ -110,7 +110,7 @@ dat += "Scan in progress


" else dat += "[held_container ? "Eject beaker" : "No beaker inserted."]
" - dat += "[fuel_container ? "Eject fuel tank" : "No fuel tank inserted."]
" + //dat += "[fuel_container ? "Eject fuel tank" : "No fuel tank inserted."]
" dat += "[held_container ? "Begin scanning" : ""]" dat += "
" dat += "Refresh
" @@ -130,7 +130,7 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob) held_container.loc = src updateDialog() - else if(istype(W, /obj/item/weapon/tank)) + /*else if(istype(W, /obj/item/weapon/tank)) //var/obj/item/weapon/reagent_containers/glass/G = W if(fuel_container) user << "\red You must remove the [fuel_container] first." @@ -139,7 +139,7 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob) user.drop_item(W) fuel_container.loc = src fuel_container = W - updateDialog() + updateDialog()*/ else return ..() diff --git a/code/modules/research/xenoarchaeology/machinery/analysis_fourier_transform.dm b/code/modules/research/xenoarchaeology/machinery/analysis_fourier_transform.dm index 6ed3dea2062..d8f45ae6d8e 100644 --- a/code/modules/research/xenoarchaeology/machinery/analysis_fourier_transform.dm +++ b/code/modules/research/xenoarchaeology/machinery/analysis_fourier_transform.dm @@ -19,16 +19,11 @@ obj/machinery/anomaly/fourier_transform/ScanResults() if(num_reagents == 2 && scanned_sample && carrier) //all necessary components are present - var/accuracy = GetResultSpecifity(scanned_sample, carrier) + var/specifity = GetResultSpecifity(scanned_sample, carrier) var/distance = scanned_sample.artifact_distance if(distance > 0) - if(prob(accuracy)) - distance += (2 * rand() - 1) * distance * 0.05 - accuracy = 0.95 + 0.05 * (2 * rand() - 1) - else - var/offset = 1 - accuracy - distance += (2 * rand() - 1) * distance * offset - results = "Fourier transform analysis on anomalous energy absorption through carrier ([carrier]) indicates source located inside emission radius ([100 * accuracy]% accuracy): [distance]." + distance += (2 * rand() - 1) * distance * 0.05 + results = "Fourier transform analysis on anomalous energy absorption through carrier ([carrier]) indicates source located inside emission radius ([95 * specifity]% accuracy): [distance]." else results = "Energy dispersion detected throughout sample consistent with background readings.
" if(carrier == scanned_sample.source_mineral) diff --git a/code/modules/research/xenoarchaeology/machinery/analysis_gas_chromatography.dm b/code/modules/research/xenoarchaeology/machinery/analysis_gas_chromatography.dm index a540529cb72..79bc546b7ca 100644 --- a/code/modules/research/xenoarchaeology/machinery/analysis_gas_chromatography.dm +++ b/code/modules/research/xenoarchaeology/machinery/analysis_gas_chromatography.dm @@ -18,16 +18,13 @@ obj/machinery/anomaly/gas_chromatography/ScanResults() num_reagents++ if(num_reagents == 2 && scanned_sample) - - var/specifity = 0.15 - if(carrier) - specifity = GetResultSpecifity(scanned_sample, carrier) - results = "Chromatography partitioning analysis over carrier ([carrier]) indicates the following elements present ([110 * (specifity / (specifity + 0.1))]% accuracy):

" + var/specifity = GetResultSpecifity(scanned_sample, carrier) + results = "Chromatography partitioning analysis over carrier ([carrier]) indicates the following elements present ([100 * specifity]% accuracy):

" var/num_found = 0 for(var/index=1,index <= scanned_sample.find_presence.len, index++) var/find = scanned_sample.find_presence[index] - if(find && prob( 110 * (specifity / (specifity + 0.1)) )) + if(find && prob(100 * specifity)) results += " - " + finds_as_strings[index] + "
" num_found++