From 2e312cb510eca74134ae66e4d844753b7217a680 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sun, 5 Apr 2015 22:00:52 -0400 Subject: [PATCH 1/3] Adds unstable mutation toxin --- .../mob/living/carbon/human/species_types.dm | 19 ++++++++++++++++++- .../Chemistry-Reagents/Chemistry-Reagents.dm | 7 +++++++ code/modules/reagents/Chemistry-Recipes.dm | 13 +++++++++++++ .../Xhuis-UnstableMutationToxin.yml | 5 +++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/Xhuis-UnstableMutationToxin.yml diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index 74248154ddf..f056e2cddd9 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -17,7 +17,24 @@ H.reagents.del_reagent(chem.type) H.faction |= "slime" return 1 - + if(chem.id == "unstablemutationtoxin") + H.reagents.del_reagent(chem.type) + H << "You crumple in agony as your flesh wildly morphs into new forms!" + H.visible_message("[H] falls to the ground and screams as their skin bubbles and froths!") //'froths' sounds painful when used with SKIN. + H.Weaken(3) + sleep(30) + var/list/blacklisted_species = list(/datum/species/zombie, /datum/species/skeleton, /datum/species/human, /datum/species/golem, /datum/species/golem/adamantine) + var/list/possible_morphs = typesof(/datum/species/) - blacklisted_species + var/datum/species/mutation = pick(possible_morphs) + if(prob(90) && mutation) + H << "The pain subsides, and you slowly realize you are no longer human..." + H.dna.species = new mutation() + H.regenerate_icons() + if(mutation == /datum/species/slime) + H.faction |= "slime" + else + H << "The pain vanishes suddenly, and you feel as normal as ever..." + return 1 /* LIZARDPEOPLE */ diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm index 455413e2158..554b462b6ce 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm @@ -368,6 +368,13 @@ datum/reagent/slimetoxin description = "A corruptive toxin produced by slimes." color = "#13BC5E" // rgb: 19, 188, 94 +datum/reagent/unstableslimetoxin + name = "Unstable Mutation Toxin" + id = "unstablemutationtoxin" + description = "An unstable and unpredictable corruptive toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + metabolization_rate = 5 * REAGENTS_METABOLISM //Very high, so it goes away quickly even if it doesn't react in the mob + datum/reagent/aslimetoxin name = "Advanced Mutation Toxin" id = "amutationtoxin" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 0f99675d8e2..7e00fd7ae05 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -473,6 +473,19 @@ datum/chemical_reaction/pestkiller /datum/chemical_reaction/slimemutate/on_reaction(var/datum/reagents/holder) feedback_add_details("slime_cores_used","[replacetext(name," ","_")]") +//Mutated Green +/datum/chemical_reaction/slimemutate_unstable + name = "Unstable Mutation Toxin" + id = "unstablemutationtoxin" + result = "unstablemutationtoxin" + required_reagents = list("radium" = 1) + result_amount = 1 + required_other = 1 + required_container = /obj/item/slime_extract/green + mix_message = "The mixture rapidly expands and contracts, its appearance shifting into a sickening green." +/datum/chemical_reaction/slimemutate_unstable/on_reaction(var/datum/reagents/holder) + feedback_add_details("slime_cores_used","[replacetext(name," ","_")]") + //Metal /datum/chemical_reaction/slimemetal name = "Slime Metal" diff --git a/html/changelogs/Xhuis-UnstableMutationToxin.yml b/html/changelogs/Xhuis-UnstableMutationToxin.yml new file mode 100644 index 00000000000..7ee9a1e1609 --- /dev/null +++ b/html/changelogs/Xhuis-UnstableMutationToxin.yml @@ -0,0 +1,5 @@ +author: Xhuis +delete-after: True + +changes: + - rscadd: "Nanotrasen scientists have recently observed a strange genome shift in green slimes. Experiments have shown that injection of radium into an active green slime extract will create a very unstable mutation toxin. Use with caution." From 9023f0de136b3860af468c13e54bbc54ed108ca5 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Mon, 6 Apr 2015 13:02:11 -0400 Subject: [PATCH 2/3] Blacklists shadowpeople from the race change --- code/modules/mob/living/carbon/human/species_types.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index f056e2cddd9..abdb066585b 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -23,7 +23,7 @@ H.visible_message("[H] falls to the ground and screams as their skin bubbles and froths!") //'froths' sounds painful when used with SKIN. H.Weaken(3) sleep(30) - var/list/blacklisted_species = list(/datum/species/zombie, /datum/species/skeleton, /datum/species/human, /datum/species/golem, /datum/species/golem/adamantine) + var/list/blacklisted_species = list(/datum/species/zombie, /datum/species/skeleton, /datum/species/human, /datum/species/golem, /datum/species/golem/adamantine, /datum/species/shadow) var/list/possible_morphs = typesof(/datum/species/) - blacklisted_species var/datum/species/mutation = pick(possible_morphs) if(prob(90) && mutation) From 585fc2f62dc0d144ae7c29796201eed1610a2762 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 11 Apr 2015 15:32:51 -0400 Subject: [PATCH 3/3] Makes the toxin work on all species --- .../mob/living/carbon/human/species_types.dm | 19 +-------------- .../Chemistry-Reagents/Chemistry-Reagents.dm | 23 ++++++++++++++++++- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index abdb066585b..74248154ddf 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -17,24 +17,7 @@ H.reagents.del_reagent(chem.type) H.faction |= "slime" return 1 - if(chem.id == "unstablemutationtoxin") - H.reagents.del_reagent(chem.type) - H << "You crumple in agony as your flesh wildly morphs into new forms!" - H.visible_message("[H] falls to the ground and screams as their skin bubbles and froths!") //'froths' sounds painful when used with SKIN. - H.Weaken(3) - sleep(30) - var/list/blacklisted_species = list(/datum/species/zombie, /datum/species/skeleton, /datum/species/human, /datum/species/golem, /datum/species/golem/adamantine, /datum/species/shadow) - var/list/possible_morphs = typesof(/datum/species/) - blacklisted_species - var/datum/species/mutation = pick(possible_morphs) - if(prob(90) && mutation) - H << "The pain subsides, and you slowly realize you are no longer human..." - H.dna.species = new mutation() - H.regenerate_icons() - if(mutation == /datum/species/slime) - H.faction |= "slime" - else - H << "The pain vanishes suddenly, and you feel as normal as ever..." - return 1 + /* LIZARDPEOPLE */ diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm index 554b462b6ce..7d4dcaaa388 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm @@ -373,7 +373,28 @@ datum/reagent/unstableslimetoxin id = "unstablemutationtoxin" description = "An unstable and unpredictable corruptive toxin produced by slimes." color = "#5EFF3B" //RGB: 94, 255, 59 - metabolization_rate = 5 * REAGENTS_METABOLISM //Very high, so it goes away quickly even if it doesn't react in the mob + metabolization_rate = INFINITY //So it instantly removes all of itself + +datum/reagent/unstableslimetoxin/on_mob_life(var/mob/living/carbon/human/H as mob) + ..() + H << "You crumple in agony as your flesh wildly morphs into new forms!" + H.visible_message("[H] falls to the ground and screams as their skin bubbles and froths!") //'froths' sounds painful when used with SKIN. + H.Weaken(3) + sleep(30) + var/list/blacklisted_species = list(/datum/species/zombie, /datum/species/skeleton, /datum/species/human, /datum/species/golem, /datum/species/golem/adamantine, /datum/species/shadow) + var/list/possible_morphs = typesof(/datum/species/) - blacklisted_species + var/datum/species/mutation = pick(possible_morphs) + if(prob(90) && mutation && H.dna.species != /datum/species/golem && H.dna.species != /datum/species/golem/adamantine) + H << "The pain subsides. You feel... different." + H.dna.species = new mutation() + H.regenerate_icons() + if(mutation == /datum/species/slime) + H.faction |= "slime" + else + H.faction -= "slime" + else + H << "The pain vanishes suddenly. You feel no different." + return 1 datum/reagent/aslimetoxin name = "Advanced Mutation Toxin"