diff --git a/baystation12.dme b/baystation12.dme index 4e38f3f01c..d808420785 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -209,6 +209,7 @@ #define FILE_DIR "icons/vending_icons" #define FILE_DIR "interface" #define FILE_DIR "maps" +#define FILE_DIR "maps/backup" #define FILE_DIR "maps/RandomZLevels" #define FILE_DIR "sound" #define FILE_DIR "sound/AI" @@ -1159,17 +1160,23 @@ #include "code\modules\research\research.dm" #include "code\modules\research\research_shuttle.dm" #include "code\modules\research\server.dm" +#include "code\modules\research\xenoarchaeology\analysis_machinery.dm" #include "code\modules\research\xenoarchaeology\archaeo_analysis.dm" +#include "code\modules\research\xenoarchaeology\archaeo_chem.dm" #include "code\modules\research\xenoarchaeology\archaeo_excavate.dm" #include "code\modules\research\xenoarchaeology\archaeo_tools.dm" #include "code\modules\research\xenoarchaeology\artifact_analysis.dm" -#include "code\modules\research\xenoarchaeology\artifact_archaeo.dm" #include "code\modules\research\xenoarchaeology\artifact_db.dm" #include "code\modules\research\xenoarchaeology\artifact_effect.dm" #include "code\modules\research\xenoarchaeology\artifact_harvester.dm" #include "code\modules\research\xenoarchaeology\artifact_misc.dm" #include "code\modules\research\xenoarchaeology\artifact_synthetic.dm" #include "code\modules\research\xenoarchaeology\artifacts.dm" +#include "code\modules\research\xenoarchaeology\core_sampler.dm" +#include "code\modules\research\xenoarchaeology\finds.dm" +#include "code\modules\research\xenoarchaeology\geosample.dm" +#include "code\modules\research\xenoarchaeology\readme.dm" +#include "code\modules\research\xenoarchaeology\tools.dm" #include "code\modules\scripting\Errors.dm" #include "code\modules\scripting\IDE.dm" #include "code\modules\scripting\Options.dm" diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm index cf73008cf3..9bf24253ce 100644 --- a/code/modules/chemical/Chemistry-Reagents.dm +++ b/code/modules/chemical/Chemistry-Reagents.dm @@ -657,20 +657,6 @@ datum reagent_state = SOLID color = "#832828" // rgb: 131, 40, 40 - tungsten //used purely to make lith-sodi-tungs, which is used in xenoarch - name = "Tungsten" - id = "tungsten" - description = "A chemical element, and a strong oxidising agent." - reagent_state = SOLID - color = "#808080" // rgb: 128, 128, 128, meant to be a silvery grey but idrc - - lithiumsodiumtungstate - name = "Lithium Sodium Tungstate" - id = "lithiumsodiumtungstate" - description = "A reducing agent for geological compounds." - reagent_state = LIQUID - color = "#808080" // rgb: 128, 128, 128, again, silvery grey - lithium name = "Lithium" id = "lithium" diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 0f8e37f2c6..428d625769 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -15,6 +15,7 @@ var/spread = 0 //will the seam spread? var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles var/artifactChance = 0.3 //percent chance to spawn a xenoarchaelogical artifact + var/datum/geosample/geological_data //todo: set this up /turf/simulated/mineral/Del() return diff --git a/code/modules/research/xenoarchaeology/archaeo_chem.dm b/code/modules/research/xenoarchaeology/archaeo_chem.dm new file mode 100644 index 0000000000..527f8b89de --- /dev/null +++ b/code/modules/research/xenoarchaeology/archaeo_chem.dm @@ -0,0 +1,75 @@ + +//chemistry stuff here so that it can be easily viewed/modified +datum + reagent + tungsten //used purely to make lith-sodi-tungs + name = "Tungsten" + id = "tungsten" + description = "A chemical element, and a strong oxidising agent." + reagent_state = SOLID + color = "#808080" // rgb: 128, 128, 128, meant to be a silvery grey but idrc + + lithiumsodiumtungstate + name = "Lithium Sodium Tungstate" + id = "lithiumsodiumtungstate" + description = "A reducing agent for geological compounds." + reagent_state = LIQUID + color = "#808080" // rgb: 128, 128, 128, again, silvery grey + + ground_rock + name = "Ground Rock" + id = "ground_rock" + description = "A fine dust made of ground up geological samples." + reagent_state = SOLID + color = "#C81040" //rgb: 200, 16, 64 + //todo: make this brown + + density_separated_sample + name = "Density separated sample" + id = "density_separated_sample" + description = "A watery paste which has had density separation applied to its contents." + reagent_state = LIQUID + color = "#C81040" //rgb: 200, 16, 64 + //todo: make this white + + analysis_sample + name = "Analysis sample" + id = "analysis_sample" + description = "A watery paste used in chemical analysis." + reagent_state = LIQUID + color = "#C81040" //rgb: 200, 16, 64 + //todo: make this white + + chemical_waste + name = "Chemical Waste" + id = "chemical_waste" + description = "A viscous, toxic liquid left over from many chemical processes." + reagent_state = LIQUID + color = "#C81040" //rgb: 200, 16, 64 + //todo: make this fluoro/bright green + +datum + chemical_reaction + lithiumsodiumtungstate //LiNa2WO4, not the easiest chem to mix + name = "Lithium Sodium Tungstate" + id = "lithiumsodiumtungstate" + result = "lithiumsodiumtungstate" + required_reagents = list("lithium" = 1, "sodium" = 2, "tungsten" = 1, "oxygen" = 4) + result_amount = 8 + + density_separated_liquid + name = "Density separated sample" + id = "density_separated_sample" + result = "density_separated_sample" + secondary_results = list("chemical_waste" = 1) + required_reagents = list("ground_rock" = 1, "lithiumsodiumtungstate" = 2) + result_amount = 2 + + analysis_liquid + name = "Analysis sample" + id = "analysis_sample" + result = "analysis_sample" + secondary_results = list("chemical_waste" = 1) + required_reagents = list("density_separated_sample" = 5) + result_amount = 4 + requires_heating = 1 diff --git a/code/modules/research/xenoarchaeology/core_sampler.dm b/code/modules/research/xenoarchaeology/core_sampler.dm index 5bd59edc65..2422edca3a 100644 --- a/code/modules/research/xenoarchaeology/core_sampler.dm +++ b/code/modules/research/xenoarchaeology/core_sampler.dm @@ -49,12 +49,12 @@ user << "\red The core sampler is out of sample bags!" else filled_bag = new /obj/item/weapon/storage/samplebag(src) - //sampled_turf = src.type icon_state = "sampler1" for(var/i=0, i<7, i++) var/obj/item/weapon/rocksliver/R = new(filled_bag) R.source_rock = T.type + R.geological_data = T.geological_data user << "\blue You take a core sample of the [T]." diff --git a/code/modules/research/xenoarchaeology/finds.dm b/code/modules/research/xenoarchaeology/finds.dm index 10133da659..b50ae6cf3a 100644 --- a/code/modules/research/xenoarchaeology/finds.dm +++ b/code/modules/research/xenoarchaeology/finds.dm @@ -12,7 +12,7 @@ icon = 'mining.dmi' icon_state = "sliver0" //0-4 //item_state = "electronic" - var/source_rock = "/turf/simulated/mineral" + var/source_rock = "/turf/simulated/mineral/archaeo" item_state = "" var/datum/geosample/geological_data @@ -27,6 +27,7 @@ /obj/item/weapon/ore/strangerock var/datum/geosample/geological_data + var/source_rock = "/turf/simulated/mineral" /obj/item/weapon/ore/strangerock/New() ..() @@ -44,6 +45,7 @@ src.visible_message("The [src] crumbles away, leaving some dust and gravel behind.") /obj/item/weapon/ore/strangerock/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/weldingtool/)) var/obj/item/weapon/weldingtool/w = W if(w.isOn() && (w.get_fuel() > 3)) @@ -61,6 +63,22 @@ M.show_message("\blue A few sparks fly off the rock, but otherwise nothing else happens.",1) w.remove_fuel(4) + else if(istype(W,/obj/item/device/core_sampler/)) + var/obj/item/device/core_sampler/S = W + if(S.filled_bag) + user << "\red The core sampler is full!" + else if(S.num_stored_bags < 1) + user << "\red The core sampler is out of sample bags!" + else + S.filled_bag = new /obj/item/weapon/storage/samplebag(S) + S.icon_state = "sampler1" + + for(var/i=0, i<7, i++) + var/obj/item/weapon/rocksliver/R = new /obj/item/weapon/rocksliver(S.filled_bag) + R.source_rock = src.source_rock + R.geological_data = src.geological_data + user << "\blue You take a core sample of the [src]." + /obj/item/weapon/ore/strangerock/acid_act(var/datum/reagent/R) if(src.method) if(inside) diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index 97cf9a2047..cf45b88b24 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -1,5 +1,7 @@ datum/geosample + var/scrambled = 0 //if this sample has been mixed with other samples + // var/age_thousand = 1 //age can correspond to different artifacts var/age_million = 0 var/age_billion = 0 @@ -36,4 +38,5 @@ datum/geosample/proc/UpdateTurf(var/turf/simulated/mineral/container) age_million = rand(1,999) age_billion = rand(10, 13) if("Archaeo") - //speshul + //snowflake + age_thousand = rand(1,999) diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index c3c0752682..5e545edb9e 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ