diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 5e04d288764..1baa779b492 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -125,4 +125,7 @@ #define NUTRITION_LEVEL_STARVING 150 //Used for calculations for negative effects of having genetics powers -#define DEFAULT_GENE_INSTABILITY -4 +#define DEFAULT_GENE_STABILITY 100 +#define GENE_INSTABILITY_MINOR 5 +#define GENE_INSTABILITY_MODERATE 10 +#define GENE_INSTABILITY_MAJOR 15 diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm index cb2ab29dae0..4505dc1c1db 100644 --- a/code/game/dna/genes/disabilities.dm +++ b/code/game/dna/genes/disabilities.dm @@ -55,7 +55,7 @@ name="Hallucinate" activation_message="Your mind says 'Hello'." deactivation_message ="Sanity returns. Or does it?" - instability = -2 + instability = -GENE_INSTABILITY_MODERATE mutation=HALLUCINATE /datum/dna/gene/disability/hallucinate/New() @@ -65,7 +65,7 @@ name="Epilepsy" activation_message="You get a headache." deactivation_message ="Your headache is gone, at last." - instability = -2 + instability = -GENE_INSTABILITY_MODERATE disability=EPILEPSY /datum/dna/gene/disability/epilepsy/New() @@ -75,7 +75,7 @@ name="Coughing" activation_message="You start coughing." deactivation_message ="Your throat stops aching." - instability = -1 + instability = -GENE_INSTABILITY_MINOR disability=COUGHING /datum/dna/gene/disability/cough/New() @@ -85,7 +85,7 @@ name="Clumsiness" activation_message="You feel lightheaded." deactivation_message ="You regain some control of your movements" - instability = -2 + instability = -GENE_INSTABILITY_MINOR mutation=CLUMSY /datum/dna/gene/disability/clumsy/New() @@ -95,7 +95,7 @@ name="Tourettes" activation_message="You twitch." deactivation_message ="Your mouth tastes like soap." - instability = -1 + instability = -GENE_INSTABILITY_MODERATE disability=TOURETTES /datum/dna/gene/disability/tourettes/New() @@ -105,7 +105,6 @@ name="Nervousness" activation_message="You feel nervous." deactivation_message ="You feel much calmer." - instability = -1 disability=NERVOUS /datum/dna/gene/disability/nervousness/New() @@ -115,7 +114,7 @@ name="Blindness" activation_message="You can't seem to see anything." deactivation_message ="You can see now, in case you didn't notice..." - instability = -5 + instability = -GENE_INSTABILITY_MAJOR sdisability=BLIND /datum/dna/gene/disability/blindness/New() @@ -125,7 +124,7 @@ name="Deafness" activation_message="It's kinda quiet." deactivation_message ="You can hear again!" - instability = -4 + instability = -GENE_INSTABILITY_MAJOR sdisability=DEAF /datum/dna/gene/disability/deaf/New() @@ -139,7 +138,7 @@ name="Nearsightedness" activation_message="Your eyes feel weird..." deactivation_message ="You can see clearly now" - instability = -3 + instability = -GENE_INSTABILITY_MODERATE disability=NEARSIGHTED /datum/dna/gene/disability/nearsighted/New() @@ -151,7 +150,6 @@ desc = "I wonder wath thith doeth." activation_message = "Thomething doethn't feel right." deactivation_message = "You now feel able to pronounce consonants." - instability = -1 mutation = LISP /datum/dna/gene/disability/lisp/New() diff --git a/code/game/dna/genes/goon_disabilities.dm b/code/game/dna/genes/goon_disabilities.dm index 5fa8d6bb10c..5ec04865591 100644 --- a/code/game/dna/genes/goon_disabilities.dm +++ b/code/game/dna/genes/goon_disabilities.dm @@ -12,7 +12,7 @@ desc = "Completely shuts down the speech center of the subject's brain." activation_message = "You feel unable to express yourself at all." deactivation_message = "You feel able to speak freely again." - instability = -3 + instability = -GENE_INSTABILITY_MODERATE sdisability = MUTE /datum/dna/gene/disability/mute/New() @@ -31,7 +31,7 @@ desc = "The subject suffers from constant radiation sickness and causes the same on nearby organics." activation_message = "You feel a strange sickness permeate your whole body." deactivation_message = "You no longer feel awful and sick all over." - instability = -6 + instability = -GENE_INSTABILITY_MAJOR mutation = RADIOACTIVE /datum/dna/gene/disability/radioactive/New() @@ -61,7 +61,7 @@ desc = "Greatly slows the subject's metabolism, enabling greater buildup of lipid tissue." activation_message = "You feel blubbery and lethargic!" deactivation_message = "You feel fit!" - instability = -2 + instability = -GENE_INSTABILITY_MINOR mutation = OBESITY /datum/dna/gene/disability/fat/New() @@ -74,7 +74,6 @@ desc = "Forces the language center of the subject's brain to construct sentences in a more rudimentary manner." activation_message = "Ye feel like a reet prat like, innit?" deactivation_message = "You no longer feel like being rude and sassy." - instability = -1 mutation = CHAV /datum/dna/gene/disability/speech/chav/New() @@ -114,7 +113,6 @@ desc = "Forces the language center of the subject's brain to construct sentences in a vaguely norse manner." activation_message = "You feel Swedish, however that works." deactivation_message = "The feeling of Swedishness passes." - instability = -1 mutation = SWEDISH /datum/dna/gene/disability/speech/swedish/New() @@ -134,7 +132,7 @@ desc = "Heavily corrupts the part of the brain responsible for forming spoken sentences." activation_message = "You can't seem to form any coherent thoughts!" deactivation_message = "Your mind feels more clear." - instability = -1 + instability = -GENE_INSTABILITY_MINOR mutation = SCRAMBLED /datum/dna/gene/disability/unintelligable/New() diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index 7cc0731e3bb..8df3af9a834 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -28,7 +28,7 @@ ///////////////////////// /datum/dna/gene/basic/stealth - instability = 4 + instability = GENE_INSTABILITY_MODERATE /datum/dna/gene/basic/stealth/can_activate(var/mob/M, var/flags) // Can only activate one of these at a time. @@ -121,7 +121,7 @@ desc = "Allows the subject to lower the body temperature of others." activation_messages = list("You notice a strange cold tingle in your fingertips.") deactivation_messages = list("Your fingers feel warmer.") - instability = 4 + instability = GENE_INSTABILITY_MODERATE mutation = CRYO spelltype = /obj/effect/proc_holder/spell/targeted/cryokinesis @@ -218,7 +218,7 @@ desc = "Allows the subject to eat just about anything without harm." activation_messages = list("You feel hungry.") deactivation_messages = list("You don't feel quite so hungry anymore.") - instability = 2 + instability = GENE_INSTABILITY_MINOR mutation = EATER spelltype=/obj/effect/proc_holder/spell/targeted/eat @@ -360,7 +360,7 @@ //cooldown = 30 activation_messages = list("Your leg muscles feel taut and strong.") deactivation_messages = list("Your leg muscles shrink back to normal.") - instability = 2 + instability = GENE_INSTABILITY_MINOR mutation = JUMPY spelltype =/obj/effect/proc_holder/spell/targeted/leap @@ -463,7 +463,7 @@ //cooldown = 1800 activation_messages = list("You don't feel entirely like yourself somehow.") deactivation_messages = list("You feel secure in your identity.") - instability = 3 + instability = GENE_INSTABILITY_MODERATE mutation = POLYMORPH /datum/dna/gene/basic/grant_spell/polymorph/New() @@ -514,7 +514,7 @@ spelltype = /obj/effect/proc_holder/spell/targeted/empath activation_messages = list("You suddenly notice more about others than you did before.") deactivation_messages = list("You no longer feel able to sense intentions.") - instability = 1 + instability = GENE_INSTABILITY_MINOR mutation=EMPATH /datum/dna/gene/basic/grant_spell/empath/New() @@ -632,7 +632,7 @@ desc = "Vastly increases the gas capacity of the subject's digestive tract." activation_messages = list("You feel bloated and gassy.") deactivation_messages = list("You no longer feel gassy. What a relief!") - instability = 2 + instability = GENE_INSTABILITY_MINOR mutation = SUPER_FART spelltype = /obj/effect/proc_holder/spell/aoe_turf/superfart diff --git a/code/game/dna/genes/powers.dm b/code/game/dna/genes/powers.dm index 4e3d77efb66..2f211f7a057 100644 --- a/code/game/dna/genes/powers.dm +++ b/code/game/dna/genes/powers.dm @@ -6,7 +6,7 @@ name="No Breathing" activation_messages=list("You feel no need to breathe.") deactivation_messages=list("You feel the need to breathe, once more.") - instability = 2 + instability = GENE_INSTABILITY_MODERATE mutation=NO_BREATH activation_prob=10 @@ -18,7 +18,7 @@ name="Regenerate" activation_messages=list("Your wounds start healing.") deactivation_messages=list("Your regenerative powers feel like they've vanished.") - instability = 1 + instability = GENE_INSTABILITY_MINOR mutation=REGEN /datum/dna/gene/basic/regenerate/New() @@ -28,7 +28,7 @@ name="Super Speed" activation_messages=list("You feel swift and unencumbered.") deactivation_messages=list("You feel slow.") - instability = 2 + instability = GENE_INSTABILITY_MINOR mutation=RUN /datum/dna/gene/basic/increaserun/New() @@ -39,7 +39,7 @@ name="Heat Resistance" activation_messages=list("Your skin is icy to the touch.") deactivation_messages=list("Your skin no longer feels icy to the touch.") - instability = 2 + instability = GENE_INSTABILITY_MODERATE mutation=RESIST_HEAT /datum/dna/gene/basic/heat_resist/New() @@ -52,7 +52,7 @@ name="Cold Resistance" activation_messages=list("Your body is filled with warmth.") deactivation_messages=list("Your body is no longer filled with warmth.") - instability = 2 + instability = GENE_INSTABILITY_MODERATE mutation=RESIST_COLD /datum/dna/gene/basic/cold_resist/New() @@ -65,7 +65,7 @@ name="No Prints" activation_messages=list("Your fingers feel numb.") deactivation_messages=list("your fingers no longer feel numb.") - instability = 1 + instability = GENE_INSTABILITY_MINOR mutation=FINGERPRINTS /datum/dna/gene/basic/noprints/New() @@ -75,7 +75,7 @@ name="Shock Immunity" activation_messages=list("Your skin feels dry and unreactive.") deactivation_messages=list("Your skin no longer feels dry and unreactive.") - instability = 2 + instability = GENE_INSTABILITY_MODERATE mutation=NO_SHOCK /datum/dna/gene/basic/noshock/New() @@ -85,7 +85,7 @@ name="Midget" activation_messages=list("Everything around you seems bigger now...") deactivation_messages = list("Everything around you seems to shrink...") - instability = 1 + instability = GENE_INSTABILITY_MINOR mutation=DWARF /datum/dna/gene/basic/midget/New() @@ -106,7 +106,7 @@ name="Hulk" activation_messages=list("Your muscles hurt.") deactivation_messages=list("Your muscles shrink.") - instability = 8 + instability = GENE_INSTABILITY_MAJOR mutation=HULK activation_prob=5 @@ -146,7 +146,7 @@ name="X-Ray Vision" activation_messages=list("The walls suddenly disappear.") deactivation_messages=list("the walls around you re-appear.") - instability = 8 + instability = GENE_INSTABILITY_MAJOR mutation=XRAY activation_prob=10 @@ -157,7 +157,7 @@ name="Telekenesis" activation_messages = list("You feel smarter.") deactivation_messages = list("You feel dumber.") - instability = 8 + instability = GENE_INSTABILITY_MAJOR mutation=TK activation_prob=10 diff --git a/code/game/dna/genes/vg_disabilities.dm b/code/game/dna/genes/vg_disabilities.dm index e3c6b9883c6..ece9cb1da5c 100644 --- a/code/game/dna/genes/vg_disabilities.dm +++ b/code/game/dna/genes/vg_disabilities.dm @@ -4,7 +4,6 @@ desc = "Forces the speaking centre of the subjects brain to yell every sentence." activation_message = "YOU FEEL LIKE YELLING!" deactivation_message = "You feel like being quiet.." - instability = -1 mutation = LOUD /datum/dna/gene/disability/speech/loud/New() @@ -24,7 +23,7 @@ desc = "Causes the cerebellum to shut down in some places." activation_message = "You feel very dizzy..." deactivation_message = "You regain your balance." - instability = -2 + instability = -GENE_INSTABILITY_MINOR mutation = DIZZY /datum/dna/gene/disability/dizzy/New() diff --git a/code/game/dna/genes/vg_powers.dm b/code/game/dna/genes/vg_powers.dm index fd2061e66fb..0affb14e014 100644 --- a/code/game/dna/genes/vg_powers.dm +++ b/code/game/dna/genes/vg_powers.dm @@ -6,7 +6,7 @@ spelltype =/obj/effect/proc_holder/spell/targeted/morph activation_messages=list("Your body feels if can alter its appearance.") deactivation_messages = list("Your body doesn't feel capable of altering its appearance.") - instability = 1 + instability = GENE_INSTABILITY_MINOR mutation=MORPH /datum/dna/gene/basic/grant_spell/morph/New() @@ -150,7 +150,7 @@ name="Telepathy" activation_messages=list("You feel you can project your thoughts.") deactivation_messages=list("You no longer feel you can project your thoughts.") - instability = 1 + instability = GENE_INSTABILITY_MINOR mutation=REMOTE_TALK spelltype =/obj/effect/proc_holder/spell/targeted/remotetalk @@ -216,7 +216,7 @@ name="Remote Viewing" activation_messages=list("Your mind can see things from afar.") deactivation_messages=list("Your mind can no longer can see things from afar.") - instability = 1 + instability = GENE_INSTABILITY_MINOR mutation=REMOTE_VIEW spelltype =/obj/effect/proc_holder/spell/targeted/remoteview diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index d1c9b92c917..a7c5e8dc649 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -170,16 +170,33 @@ adjustCloneLoss(0.1) /mob/living/carbon/human/handle_mutations_and_radiation() - var/gene_instability = DEFAULT_GENE_INSTABILITY + var/gene_stability = DEFAULT_GENE_STABILITY for(var/datum/dna/gene/gene in dna_genes) if(!gene.block) continue if(gene.is_active(src)) - gene_instability += gene.instability + gene_stability -= gene.instability speech_problem_flag = 1 gene.OnMobLife(src) - if(prob(10) && prob(max(gene_instability, 0))) - adjustCloneLoss(0.3 * gene_instability) + if(mind && mind.special_role && mind.special_role == "Wizard") //magic + gene_instability = DEFAULT_GENE_STABILITY + if(gene_stability < 85)) + if(prob(5)) + adjustBurnLoss(2) + to_chat(src, "You feel like your skin is burning and bubbling off!") + if(gene_stability < 70) + if(prob(3)) + adjustCloneLoss(2) + to_chat(src, "You feel as if your body is warping.") + if(prob(5)) + adjustToxLoss(3) + to_chat(src, "You feel weak and nauseous.") + if(gene_stability < 40 && getCloneLoss() > 30) + to_chat(src, "You feel incredibly sick... Something isn't right!") + spawn(180) + if(getCloneLoss()) + gib() + if(!(species.flags & RADIMMUNE)) if (radiation)