diff --git a/GainStation13/code/datums/mutations/radfat.dm b/GainStation13/code/datums/mutations/radfat.dm new file mode 100644 index 00000000..f66a93e8 --- /dev/null +++ b/GainStation13/code/datums/mutations/radfat.dm @@ -0,0 +1,42 @@ +/datum/mutation/human/radfat + name = "Radiotrophic Metabolism" + desc = "A mutation that causes the user to be immune to the adverse effects of radiations, but causes sudden cell multiplication with increased strength under irradiation." + quality = POSITIVE + text_gain_indication = "You crave the taste of... radiation?" + text_lose_indication = "You no longer desire the taste of radiation..." + difficulty = 14 + instability = 30 + power_coeff = 1 + + var/FATCAP = 100 + +/datum/mutation/human/radfat/on_life() + . = ..() + var/fat_add = 1 + var/pwr = GET_MUTATION_POWER(src) + if(owner.radiation > 0) + fat_add += round(owner.radiation * (0.10 * pwr)) + owner.radiation -= round(owner.radiation * 0.05) + 1 + if(fat_add > (FATCAP * pwr)) + fat_add = (FATCAP * pwr) + owner.adjust_fatness(fat_add, FATTENING_TYPE_RADIATIONS) + +/datum/mutation/human/radfat/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + ADD_TRAIT(owner, TRAIT_RADRESONANCE, src) + +/datum/mutation/human/radfat/on_losing(mob/living/carbon/human/owner) + if(..()) + return + REMOVE_TRAIT(owner, TRAIT_RADRESONANCE, src) + +/obj/item/dnainjector/antiradfat + name = "\improper DNA injector (Anti-Radiotrophic Metabolism)" + desc = "The green kills." + remove_mutations = list(RADFAT) + +/obj/item/dnainjector/radfat + name = "\improper DNA injector (Radiotrophic Metabolism)" + desc = "Nuclear fallout protection at an heavy price." + add_mutations = list(RADFAT) diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 3ca4e91c..99588e39 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -43,6 +43,7 @@ #define PARANOIA /datum/mutation/human/paranoia #define MINDREAD /datum/mutation/human/mindreader #define FATFANG /datum/mutation/human/fatfang +#define RADFAT /datum/mutation/human/radfat #define UI_CHANGED "ui changed" #define UE_CHANGED "ue changed" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 81d03577..2c91bac0 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -530,6 +530,7 @@ GLOBAL_LIST_INIT(lighter_reskins, list(ZIPPO_SKIN_PLAIN = "plain", ZIPPO_SKIN_DA #define FATTENING_TYPE_MAGIC "magic" #define FATTENING_TYPE_VIRUS "virus" #define FATTENING_TYPE_NANITES "nanites" +#define FATTENING_TYPE_RADIATIONS "radiations" #define FATTENING_TYPE_WEIGHT_LOSS "weight_loss" #define FATNESS_TO_WEIGHT_RATIO 0.25 diff --git a/tgstation.dme b/tgstation.dme index d849af0c..581031ed 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3081,6 +3081,7 @@ #include "GainStation13\code\datums\components\fattening_door.dm" #include "GainStation13\code\datums\diseases\advance\symptoms\berry.dm" #include "GainStation13\code\datums\mutations\fatfang.dm" +#include "GainStation13\code\datums\mutations\radfat.dm" #include "GainStation13\code\datums\status_effects\fatstun.dm" #include "GainStation13\code\game\lore_papers.dm" #include "GainStation13\code\game\sound.dm"