diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm index ba989b11b99..98351f0d8ce 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -31,7 +31,7 @@ "E" = (/obj/structure/disposalpipe/segment{dir = 1;icon_state = "pipe-c"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) "F" = (/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors) "H" = (/obj/machinery/chem_master/condimaster,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) -"G" = (/obj/machinery/plantgenes,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) +"G" = (/obj/machinery/plantgenes/seedvault,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered) (1,1,1) = {" aabbaaaaaaaaaaaaaaaa diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 3550a497b38..4ce58ecf91a 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -803,6 +803,6 @@ obj/item/weapon/circuitboard/rdserver origin_tech = "programming=2;biotech=3" req_components = list( /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/micro_laser = 2, + /obj/item/weapon/stock_parts/micro_laser = 1, /obj/item/weapon/stock_parts/console_screen = 1, /obj/item/weapon/stock_parts/scanning_module = 1,) \ No newline at end of file diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index d231455280c..1f062578259 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -15,7 +15,11 @@ var/datum/plant_gene/target var/operation = "" - var/rating = 0 // TODO: add failures, make it useful + var/rating = 0 + var/max_extract_pot = 50 + // The cap on potency gene extraction. + // This number is for T1, each upgraded part adds 5% for a tech level above T1. + // At T4, it reaches 95%. /obj/machinery/plantgenes/New() ..() @@ -24,7 +28,6 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(src) component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) component_parts += new /obj/item/weapon/stock_parts/manipulator(src) RefreshParts() @@ -32,6 +35,7 @@ rating = 0 for(var/obj/item/weapon/stock_parts/S in component_parts) rating += S.rating-1 + max_extract_pot = initial(max_extract_pot) + rating*5 /obj/machinery/plantgenes/update_icon() ..() @@ -90,7 +94,7 @@ if(!user) return - var/datum/browser/popup = new(user, "plantdna", "Plant DNA Manipulator", 450, 600) // Set up the popup browser window + var/datum/browser/popup = new(user, "plantdna", "Plant DNA Manipulator", 450, 600) if(!( in_range(src, user) || istype(user, /mob/living/silicon) )) popup.close() return @@ -114,16 +118,18 @@ switch(operation) if("remove") dat += "[target.get_name()] gene from \the [seed]?
" -// dat += "Failure may damage or destroy the sample!" // No failures yet. TODO: add failures if("extract") dat += "[target.get_name()] gene from \the [seed]?
" dat += "The sample will be destroyed in process!" + if(istype(target, /datum/plant_gene/core/potency)) + var/datum/plant_gene/core/gene = target + if(gene.value > max_extract_pot) + dat += "

This device's extraction capabilities are currently limited to [max_extract_pot] potency. " + dat += "Target gene will be degraded to [max_extract_pot] potency on extraction." if("replace") dat += "[target.get_name()] gene with [disk.gene.get_name()]?
" -// dat += "Failure may damage or destroy the sample!" // No failures yet. TODO: add failures if("insert") dat += "[disk.gene.get_name()] gene into \the [seed]?
" -// dat += "Failure may damage or destroy the sample!" // No failures yet. TODO: add failures dat += "
Confirm " dat += "Abort
" popup.set_content(dat) @@ -274,6 +280,9 @@ if("extract") if(disk && !disk.read_only) disk.gene = G + if(istype(G, /datum/plant_gene/core/potency)) + var/datum/plant_gene/core/gene = G + gene.value = min(gene.value, max_extract_pot) disk.update_name() qdel(seed) seed = null @@ -339,6 +348,19 @@ seed.icon_state = "seed-x" + +// Gene modder for seed vault ship, built with high-end alien (?) parts. +/obj/machinery/plantgenes/seedvault/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/plantgenes(src) + component_parts += new /obj/item/weapon/stock_parts/console_screen(src) + component_parts += new /obj/item/weapon/stock_parts/scanning_module/triphasic(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/quadultra(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator/femto(src) + RefreshParts() + + /* * Plant DNA disk */