diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index c385e467e8c..fa5f74f3ad1 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -115,6 +115,7 @@ #define CELL_LINE_TABLE_SLIME "cell_line_slime_table" #define CELL_LINE_TABLE_SNAKE "cell_line_snake_table" #define CELL_LINE_TABLE_VATBEAST "cell_line_vatbeast_table" +#define CELL_LINE_TABLE_NETHER "cell_line_nether_table" ///All cell virus types #define CELL_VIRUS_TABLE_GENERIC "cell_virus_generic_table" diff --git a/code/_globalvars/lists/xenobiology.dm b/code/_globalvars/lists/xenobiology.dm index 496107dc5ed..59460fe6693 100644 --- a/code/_globalvars/lists/xenobiology.dm +++ b/code/_globalvars/lists/xenobiology.dm @@ -24,6 +24,7 @@ GLOBAL_LIST_INIT_TYPED(cell_line_tables, /list, list( CELL_LINE_TABLE_SLIME = list(/datum/micro_organism/cell_line/slime = 1), CELL_LINE_TABLE_SNAKE = list(/datum/micro_organism/cell_line/snake = 1), CELL_LINE_TABLE_VATBEAST = list(/datum/micro_organism/cell_line/vat_beast = 1), + CELL_LINE_TABLE_NETHER = list(/datum/micro_organism/cell_line/netherworld = 1), CELL_LINE_TABLE_CLOWN = list(/datum/micro_organism/cell_line/clown/bananaclown = 1, /datum/micro_organism/cell_line/clown/fleshclown = 1, /datum/micro_organism/cell_line/clown/longclown = 1) )) diff --git a/code/game/objects/structures/lavaland/geyser.dm b/code/game/objects/structures/lavaland/geyser.dm index eb4e3b90164..96d3bd24f16 100644 --- a/code/game/objects/structures/lavaland/geyser.dm +++ b/code/game/objects/structures/lavaland/geyser.dm @@ -14,6 +14,10 @@ var/max_volume = 500 var/start_volume = 50 +/obj/structure/geyser/Initialize(mapload) //if xenobio wants to bother, nethermobs are around geysers. + . = ..() + AddElement(/datum/element/swabable, CELL_LINE_TABLE_NETHER, CELL_VIRUS_TABLE_GENERIC, 1, 5) + /obj/structure/geyser/proc/start_chemming() activated = TRUE create_reagents(max_volume, DRAINABLE) diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm index 209eebe5bc4..6f370179463 100644 --- a/code/modules/mob/living/simple_animal/hostile/netherworld.dm +++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm @@ -27,6 +27,10 @@ if(phaser) teleport = new teleport.Grant(src) + add_cell_sample() + +/mob/living/simple_animal/hostile/netherworld/add_cell_sample() + AddElement(/datum/element/swabable, CELL_LINE_TABLE_NETHER, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 0) /datum/action/innate/creature background_icon_state = "bg_default" diff --git a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm index fe8ec9f28d8..0203790c3ac 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm @@ -374,6 +374,35 @@ . = ..() qdel(vat) +//randomizes from the netherworld pool! +/datum/micro_organism/cell_line/netherworld + desc = "Aberrant residue" + required_reagents = list(//theme here: very odd requirements + /datum/reagent/water/hollowwater,//geyser reagent, so plentiful when found + /datum/reagent/consumable/ethanol/wizz_fizz, //EZ bartender drink, like brainless + /datum/reagent/yuck) //since the other two are easy to make tons of, this is kind of a limiter + + supplementary_reagents = list( //all of these are just geyser stuff, rated by their rarity + /datum/reagent/wittel = 10, //stupid rare + /datum/reagent/medicine/omnizine/protozine = 5, + /datum/reagent/plasma_oxide = 3, + /datum/reagent/clf3 = 1)//since this is also chemistry it's worth near nothing + + suppressive_reagents = list(//generics you would regularly put in a vat kill abberant residue + /datum/reagent/consumable/nutriment/peptides = -6, + /datum/reagent/consumable/nutriment/protein = -4, + /datum/reagent/consumable/nutriment = -3, + /datum/reagent/liquidgibs = -2 + ) + virus_suspectibility = 0 + resulting_atoms = list(/mob/living/simple_animal/hostile/netherworld = 1) + +/datum/micro_organism/cell_line/netherworld/succeed_growing(obj/machinery/plumbing/growing_vat/vat) + var/random_result = pick(typesof(/mob/living/simple_animal/hostile/netherworld)) //i looked myself, pretty much all of them are reasonably strong and somewhat on the same level. except migo is the jackpot and the blank body is whiff. + resulting_atoms = list() + resulting_atoms[random_result] = 1 + return ..() + /datum/micro_organism/cell_line/clown/fuck_up_growing(var/obj/machinery/plumbing/growing_vat/vat) vat.visible_message("The biological sample in [vat] seems to have created something horrific!") QDEL_NULL(vat.biological_sample) //Kill off the sample, we're done