Skip to content

Commit

Permalink
Genetics Rebalance: Negative mutations add stability, standarized ins…
Browse files Browse the repository at this point in the history
…tability cost for mutations (tgstation#83439)

## About The Pull Request

PR has been reworked a bunch! Changes in bold. Some of the **HATE** is
now outdated.

**Negative mutations now allow you to have more positive mutations, via
reducing your instability!**

**All mutations have been overall standardized via defines on their
instability values. Many mediocre positive mutations have had their cost
reduced significantly!**

```
/// Negatives that are virtually harmless and mostly just funny (language)
// Set to 0 because munchkinning via miscommunication = bad
#define NEGATIVE_STABILITY_MINI 0
/// Negatives that are slightly annoying (unused)
#define NEGATIVE_STABILITY_MINOR -20
/// Negatives that present an uncommon or weak, consistent hindrance to gameplay (cough, paranoia)
#define NEGATIVE_STABILITY_MODERATE -30
/// Negatives that present a major consistent hindrance to gameplay (deaf, mute, acid flesh)
#define NEGATIVE_STABILITY_MAJOR -40

/// Positives that provide basically no benefit (glowy)
#define POSITIVE_INSTABILITY_MINI 5
/// Positives that are niche in application or useful in rare circumstances (parlor tricks, geladikinesis, autotomy)
#define POSITIVE_INSTABILITY_MINOR 10
/// Positives that provide a new ability that's roughly par with station equipment (insulated, cryokinesis)
#define POSITIVE_INSTABILITY_MODERATE 25
/// Positives that are unique, very powerful, and noticeably change combat/gameplay (hulk, tk)
#define POSITIVE_INSTABILITY_MAJOR 35

```

Added a new height mutation: Acromegaly! It's the opposite of Dwarfism
and makes you uncannily tall. It also makes you hit your head 8% or 4%
(with synch) of the time you pass through airlocks. Wear a helmet!

**Injectors and activators' duration is now dependent on the
in/stability (absolute value) of the mutations to be injected! With a
minimum of 5-10-15 seconds for each type of injector. Also changed up a
bit how part upgrade cooldowns work, by making each tier reduce
cooldowns by 25-15-10% for each injector type.**

## Why It's Good For The Game


**> Negative mutations now allow you to have more positive mutations,
via reducing your instability!**

Genetics has been long in dire need of a rework. This isn't really one,
but it IS intended to increase genetics depth a bit and stave off its
stagnation, making it slightly more interesting than 'free shit', by
making it so **you can now gain more positive mutations, but you need to
figure out what you're going to take as a downgrade in turn.**

Genetic powers are heavily themed around comic book superheroes, and you
know what those had a lot? Debilitating drawbacks to their powers. Let's
replicate that.

**I intend to make a sister PR for this that adds more interesting
positive mutations (for the first time in decades) to genetics, so
there's an actual element of pick-and-choose involved**

> Added a new height mutation: Acromegaly! It's the opposite of Dwarfism
and makes you uncannily tall. It also makes you hit your head 8% or 4%
(with synch) of the time you pass through airlocks. Wear a helmet!

We have Super Tall. Let's add it to the game somewhere! With a fun
downside, of course.

**Gigantism is now a recipe mutation, mix Acromegaly with Strength to
get it.**

> **Injectors and activators' duration is now dependent on the
in/stability (absolute value) of the mutations to be injected! With a
minimum of 5-10-15 seconds for each type of injector. Also changed up a
bit how part upgrade cooldowns work, by making each tier reduce
cooldowns by 25-15-10% for each injector type.**

**Made no sense that a Glowy injector cost the same as a Hulk injector.
Just annoying. The cooldown is based on the absolute value, so a -30
instability injector would take ~30 seconds. This mostly so that
geneticists can't make a million modded syringe gun supersyringes**
  • Loading branch information
carlarctg authored Jun 18, 2024
1 parent 45e38f7 commit 0119b95
Show file tree
Hide file tree
Showing 29 changed files with 242 additions and 90 deletions.
1 change: 1 addition & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -635,6 +635,7 @@
// Otherwise they are completely arbitrary
#define MONKEY_HEIGHT_DWARF 2
#define MONKEY_HEIGHT_MEDIUM 4
#define MONKEY_HEIGHT_TALL HUMAN_HEIGHT_DWARF
#define HUMAN_HEIGHT_DWARF 6
#define HUMAN_HEIGHT_SHORTEST 8
#define HUMAN_HEIGHT_SHORT 10
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_GAMERGOD "gamer-god"
#define TRAIT_GIANT "giant"
#define TRAIT_DWARF "dwarf"
/// Makes you way too tall. Like just too much, dude, it's kind of creepy. Humanoid only.
#define TRAIT_TOO_TALL "too_tall"
/// makes your footsteps completely silent
#define TRAIT_SILENT_FOOTSTEPS "silent_footsteps"
/// hnnnnnnnggggg..... you're pretty good....
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_THINKING_IN_CHARACTER" = TRAIT_THINKING_IN_CHARACTER,
"TRAIT_THROWINGARM" = TRAIT_THROWINGARM,
"TRAIT_TIME_STOP_IMMUNE" = TRAIT_TIME_STOP_IMMUNE,
"TRAIT_TOO_TALL" = TRAIT_TOO_TALL,
"TRAIT_TOWER_OF_BABEL" = TRAIT_TOWER_OF_BABEL,
"TRAIT_TOXIMMUNE" = TRAIT_TOXIMMUNE,
"TRAIT_TOXINLOVER" = TRAIT_TOXINLOVER,
Expand Down
2 changes: 1 addition & 1 deletion code/datums/dna.dm
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
/datum/dna/proc/update_instability(alert=TRUE)
stability = 100
for(var/datum/mutation/human/M in mutations)
if(M.class == MUT_EXTRA)
if(M.class == MUT_EXTRA || M.instability < 0)
stability -= M.instability * GET_MUTATION_STABILIZER(M)
if(holder)
var/message
Expand Down
20 changes: 20 additions & 0 deletions code/datums/mutations/_mutations.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@

/// Negatives that are virtually harmless and mostly just funny (language)
// Set to 0 because munchkinning via miscommunication = bad
#define NEGATIVE_STABILITY_MINI 0
/// Negatives that are slightly annoying (unused)
#define NEGATIVE_STABILITY_MINOR -20
/// Negatives that present an uncommon or weak, consistent hindrance to gameplay (cough, paranoia)
#define NEGATIVE_STABILITY_MODERATE -30
/// Negatives that present a major consistent hindrance to gameplay (deaf, mute, acid flesh)
#define NEGATIVE_STABILITY_MAJOR -40

/// Positives that provide basically no benefit (glowy)
#define POSITIVE_INSTABILITY_MINI 5
/// Positives that are niche in application or useful in rare circumstances (parlor tricks, geladikinesis, autotomy)
#define POSITIVE_INSTABILITY_MINOR 10
/// Positives that provide a new ability that's roughly par with station equipment (insulated, cryokinesis)
#define POSITIVE_INSTABILITY_MODERATE 25
/// Positives that are unique, very powerful, and noticeably change combat/gameplay (hulk, tk)
#define POSITIVE_INSTABILITY_MAJOR 35

/datum/mutation
var/name

Expand Down
4 changes: 2 additions & 2 deletions code/datums/mutations/adaptation.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
quality = POSITIVE
difficulty = 16
text_gain_indication = "<span class='notice'>Your body feels warm!</span>"
instability = 25
instability = POSITIVE_INSTABILITY_MAJOR
conflicts = list(/datum/mutation/human/pressure_adaptation)

/datum/mutation/human/temperature_adaptation/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut)
Expand All @@ -31,7 +31,7 @@
quality = POSITIVE
difficulty = 16
text_gain_indication = "<span class='notice'>Your body feels numb!</span>"
instability = 25
instability = POSITIVE_INSTABILITY_MAJOR
conflicts = list(/datum/mutation/human/temperature_adaptation)

/datum/mutation/human/pressure_adaptation/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut)
Expand Down
4 changes: 2 additions & 2 deletions code/datums/mutations/antenna.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
quality = POSITIVE
text_gain_indication = "<span class='notice'>You feel an antenna sprout from your forehead.</span>"
text_lose_indication = "<span class='notice'>Your antenna shrinks back down.</span>"
instability = 5
instability = POSITIVE_INSTABILITY_MINOR
difficulty = 8
var/datum/weakref/radio_weakref

Expand Down Expand Up @@ -47,7 +47,7 @@
text_gain_indication = "<span class='notice'>You hear distant voices at the corners of your mind.</span>"
text_lose_indication = "<span class='notice'>The distant voices fade.</span>"
power_path = /datum/action/cooldown/spell/pointed/mindread
instability = 40
instability = POSITIVE_INSTABILITY_MINOR
difficulty = 8
locked = TRUE

Expand Down
2 changes: 1 addition & 1 deletion code/datums/mutations/autotomy.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
desc = "Allows a creature to voluntary discard a random appendage."
quality = POSITIVE
text_gain_indication = span_notice("Your joints feel loose.")
instability = 30
instability = POSITIVE_INSTABILITY_MINOR
power_path = /datum/action/cooldown/spell/self_amputation

energy_coeff = 1
Expand Down
114 changes: 84 additions & 30 deletions code/datums/mutations/body.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
/datum/mutation/human/epilepsy
name = "Epilepsy"
desc = "A genetic defect that sporadically causes seizures."
instability = NEGATIVE_STABILITY_MODERATE
quality = NEGATIVE
text_gain_indication = "<span class='danger'>You get a headache.</span>"
synchronizer_coeff = 1
Expand Down Expand Up @@ -50,6 +51,7 @@
/datum/mutation/human/bad_dna
name = "Unstable DNA"
desc = "Strange mutation that causes the holder to randomly mutate."
instability = NEGATIVE_STABILITY_MAJOR
quality = NEGATIVE
text_gain_indication = "<span class='danger'>You feel strange.</span>"
locked = TRUE
Expand Down Expand Up @@ -79,6 +81,7 @@
/datum/mutation/human/cough
name = "Cough"
desc = "A chronic cough."
instability = NEGATIVE_STABILITY_MODERATE
quality = MINOR_NEGATIVE
text_gain_indication = "<span class='danger'>You start coughing.</span>"
synchronizer_coeff = 1
Expand All @@ -96,6 +99,7 @@
/datum/mutation/human/paranoia
name = "Paranoia"
desc = "Subject is easily terrified, and may suffer from hallucinations."
instability = NEGATIVE_STABILITY_MODERATE
quality = NEGATIVE
text_gain_indication = "<span class='danger'>You feel screams echo through your mind...</span>"
text_lose_indication = "<span class='notice'>The screaming in your mind fades.</span>"
Expand All @@ -112,8 +116,8 @@
desc = "A mutation believed to be the cause of dwarfism."
quality = POSITIVE
difficulty = 16
instability = 5
conflicts = list(/datum/mutation/human/gigantism)
instability = POSITIVE_INSTABILITY_MINOR
conflicts = list(/datum/mutation/human/gigantism, /datum/mutation/human/acromegaly)
locked = TRUE // Default intert species for now, so locked from regular pool.

/datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner)
Expand All @@ -128,10 +132,71 @@
REMOVE_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION)
owner.visible_message(span_danger("[owner] suddenly grows!"), span_notice("Everything around you seems to shrink.."))

/datum/mutation/human/acromegaly
name = "Acromegaly"
desc = "A mutation believed to be the cause of acromegaly, or 'being unusually tall'."
quality = MINOR_NEGATIVE
difficulty = 16
instability = NEGATIVE_STABILITY_MODERATE
synchronizer_coeff = 1
conflicts = list(/datum/mutation/human/dwarfism)

/datum/mutation/human/acromegaly/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
ADD_TRAIT(owner, TRAIT_TOO_TALL, GENETIC_MUTATION)
owner.visible_message(span_danger("[owner] suddenly grows tall!"), span_notice("You feel a small strange urge to fight small men with slingshots. Or maybe play some basketball."))
RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(head_bonk))
owner.regenerate_icons()

/datum/mutation/human/acromegaly/on_losing(mob/living/carbon/human/owner)
if(..())
return
REMOVE_TRAIT(owner, TRAIT_TOO_TALL, GENETIC_MUTATION)
owner.visible_message(span_danger("[owner] suddenly shrinks!"), span_notice("You return to your usual height."))
UnregisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(head_bonk))
owner.regenerate_icons()

// This is specifically happening because they're not used to their new height and are stumbling around into machinery made for normal humans
/datum/mutation/human/acromegaly/proc/head_bonk(mob/living/parent)
SIGNAL_HANDLER
var/turf/airlock_turf = get_turf(parent)
var/atom/movable/whacked_by = locate(/obj/machinery/door/airlock) in airlock_turf || locate(/obj/machinery/door/firedoor) in airlock_turf || locate(/obj/structure/mineral_door) in airlock_turf
if(!whacked_by || prob(100 - (8 * GET_MUTATION_SYNCHRONIZER(src))))
return
to_chat(parent, span_danger("You hit your head on \the [whacked_by]'s header!"))
var/dmg = HAS_TRAIT(parent, TRAIT_HEAD_INJURY_BLOCKED) ? rand(1,4) : rand(2,9)
parent.apply_damage(dmg, BRUTE, BODY_ZONE_HEAD)
parent.do_attack_animation(whacked_by, ATTACK_EFFECT_PUNCH)
playsound(whacked_by, 'sound/effects/bang.ogg', 10, TRUE)
parent.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH, 10 SECONDS)

/datum/mutation/human/gigantism
name = "Gigantism" //negative version of dwarfism
desc = "The cells within the subject spread out to cover more area, making the subject appear larger."
quality = MINOR_NEGATIVE
difficulty = 12
conflicts = list(/datum/mutation/human/dwarfism)

/datum/mutation/human/gigantism/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
ADD_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION)
owner.update_transform(1.25)
owner.visible_message(span_danger("[owner] suddenly grows!"), span_notice("Everything around you seems to shrink.."))

/datum/mutation/human/gigantism/on_losing(mob/living/carbon/human/owner)
if(..())
return
REMOVE_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION)
owner.update_transform(0.8)
owner.visible_message(span_danger("[owner] suddenly shrinks!"), span_notice("Everything around you seems to grow.."))

//Clumsiness has a very large amount of small drawbacks depending on item.
/datum/mutation/human/clumsy
name = "Clumsiness"
desc = "A genome that inhibits certain brain functions, causing the holder to appear clumsy. Honk!"
instability = NEGATIVE_STABILITY_MAJOR
quality = MINOR_NEGATIVE
text_gain_indication = "<span class='danger'>You feel lightheaded.</span>"

Expand All @@ -151,6 +216,7 @@
name = "Tourette's Syndrome"
desc = "A chronic twitch that forces the user to scream bad words." //definitely needs rewriting
quality = NEGATIVE
instability = 0
text_gain_indication = "<span class='danger'>You twitch.</span>"
synchronizer_coeff = 1

Expand All @@ -173,6 +239,7 @@
/datum/mutation/human/deaf
name = "Deafness"
desc = "The holder of this genome is completely deaf."
instability = NEGATIVE_STABILITY_MAJOR
quality = NEGATIVE
text_gain_indication = "<span class='danger'>You can't seem to hear anything.</span>"

Expand All @@ -194,6 +261,7 @@
text_gain_indication = "You feel unusually monkey-like."
text_lose_indication = "You feel like your old self."
quality = NEGATIVE
instability = NEGATIVE_STABILITY_MAJOR // mmmonky
remove_on_aheal = FALSE
locked = TRUE //Species specific, keep out of actual gene pool
mutadone_proof = TRUE
Expand All @@ -219,7 +287,7 @@
desc = "You permanently emit a light with a random color and intensity."
quality = POSITIVE
text_gain_indication = "<span class='notice'>Your skin begins to glow softly.</span>"
instability = 5
instability = POSITIVE_INSTABILITY_MINI
power_coeff = 1
conflicts = list(/datum/mutation/human/glow/anti)
var/glow_power = 2
Expand Down Expand Up @@ -257,6 +325,7 @@
desc = "Your skin seems to attract and absorb nearby light creating 'darkness' around you."
text_gain_indication = "<span class='notice'>The light around you seems to disappear.</span>"
conflicts = list(/datum/mutation/human/glow)
instability = POSITIVE_INSTABILITY_MINOR
locked = TRUE
glow_power = -1.5

Expand All @@ -265,10 +334,10 @@

/datum/mutation/human/strong
name = "Strength"
desc = "The user's muscles slightly expand."
desc = "The user's muscles slightly expand. Commonly seen in top-ranking boxers."
quality = POSITIVE
text_gain_indication = "<span class='notice'>You feel strong.</span>"
instability = 5
instability = POSITIVE_INSTABILITY_MINI
difficulty = 16

/datum/mutation/human/strong/on_acquiring(mob/living/carbon/human/owner)
Expand All @@ -286,10 +355,11 @@

/datum/mutation/human/stimmed
name = "Stimmed"
desc = "The user's chemical balance is more robust."
desc = "The user's chemical balance is more robust. This mutation is known to slightly improve workout efficiency."
quality = POSITIVE
instability = POSITIVE_INSTABILITY_MINI
text_gain_indication = "<span class='notice'>You feel stimmed.</span>"
instability = 5
instability = 15
difficulty = 16

/datum/mutation/human/stimmed/on_acquiring(mob/living/carbon/human/owner)
Expand All @@ -311,7 +381,7 @@
text_gain_indication = "<span class='notice'>Your fingertips go numb.</span>"
text_lose_indication = "<span class='notice'>Your fingertips regain feeling.</span>"
difficulty = 16
instability = 25
instability = POSITIVE_INSTABILITY_MODERATE

/datum/mutation/human/insulated/on_acquiring(mob/living/carbon/human/owner)
if(..())
Expand Down Expand Up @@ -355,7 +425,7 @@
text_gain_indication = "<span class='warning'>The space around you twists sickeningly.</span>"
text_lose_indication = "<span class='notice'>The space around you settles back to normal.</span>"
difficulty = 18//high so it's hard to unlock and abuse
instability = 10
instability = NEGATIVE_STABILITY_MODERATE
synchronizer_coeff = 1
energy_coeff = 1
power_coeff = 1
Expand All @@ -381,6 +451,7 @@
/datum/mutation/human/acidflesh
name = "Acidic Flesh"
desc = "Subject has acidic chemicals building up underneath the skin. This is often lethal."
instability = NEGATIVE_STABILITY_MAJOR
quality = NEGATIVE
text_gain_indication = "<span class='userdanger'>A horrible burning sensation envelops you as your flesh turns to acid!</span>"
text_lose_indication = "<span class='notice'>A feeling of relief fills you as your flesh goes back to normal.</span>"
Expand All @@ -398,30 +469,10 @@
owner.visible_message(span_warning("[owner]'s skin bubbles and pops."), span_userdanger("Your bubbling flesh pops! It burns!"))
playsound(owner,'sound/weapons/sear.ogg', 50, TRUE)

/datum/mutation/human/gigantism
name = "Gigantism"//negative version of dwarfism
desc = "The cells within the subject spread out to cover more area, making the subject appear larger."
quality = MINOR_NEGATIVE
difficulty = 12
conflicts = list(/datum/mutation/human/dwarfism)

/datum/mutation/human/gigantism/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
ADD_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION)
owner.update_transform(1.25)
owner.visible_message(span_danger("[owner] suddenly grows!"), span_notice("Everything around you seems to shrink.."))

/datum/mutation/human/gigantism/on_losing(mob/living/carbon/human/owner)
if(..())
return
REMOVE_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION)
owner.update_transform(0.8)
owner.visible_message(span_danger("[owner] suddenly shrinks!"), span_notice("Everything around you seems to grow.."))

/datum/mutation/human/spastic
name = "Spastic"
desc = "Subject suffers from muscle spasms."
instability = NEGATIVE_STABILITY_MODERATE
quality = NEGATIVE
text_gain_indication = "<span class='warning'>You flinch.</span>"
text_lose_indication = "<span class='notice'>Your flinching subsides.</span>"
Expand All @@ -440,6 +491,7 @@
/datum/mutation/human/extrastun
name = "Two Left Feet"
desc = "A mutation that replaces the right foot with another left foot. Symptoms include kissing the floor when taking a step."
instability = NEGATIVE_STABILITY_MODERATE
quality = NEGATIVE
text_gain_indication = "<span class='warning'>Your right foot feels... left.</span>"
text_lose_indication = "<span class='notice'>Your right foot feels alright.</span>"
Expand Down Expand Up @@ -471,6 +523,7 @@
/datum/mutation/human/martyrdom
name = "Internal Martyrdom"
desc = "A mutation that makes the body destruct when near death. Not damaging, but very, VERY disorienting."
instability = NEGATIVE_STABILITY_MAJOR // free stability >:)
locked = TRUE
quality = POSITIVE //not that cloning will be an option a lot but generally lets keep this around i guess?
text_gain_indication = "<span class='warning'>You get an intense feeling of heartburn.</span>"
Expand Down Expand Up @@ -518,6 +571,7 @@
/datum/mutation/human/headless
name = "H.A.R.S."
desc = "A mutation that makes the body reject the head, the brain receding into the chest. Stands for Head Allergic Rejection Syndrome. Warning: Removing this mutation is very dangerous, though it will regenerate non-vital head organs."
instability = NEGATIVE_STABILITY_MAJOR
difficulty = 12 //pretty good for traitors
quality = NEGATIVE //holy shit no eyes or tongue or ears
text_gain_indication = "<span class='warning'>Something feels off.</span>"
Expand Down
2 changes: 1 addition & 1 deletion code/datums/mutations/chameleon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
difficulty = 16
text_gain_indication = "<span class='notice'>You feel one with your surroundings.</span>"
text_lose_indication = "<span class='notice'>You feel oddly exposed.</span>"
instability = 25
instability = POSITIVE_INSTABILITY_MAJOR
power_coeff = 1

/datum/mutation/human/chameleon/on_acquiring(mob/living/carbon/human/owner)
Expand Down
4 changes: 2 additions & 2 deletions code/datums/mutations/cold.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
desc = "Allows the user to concentrate moisture and sub-zero forces into snow."
quality = POSITIVE
text_gain_indication = "<span class='notice'>Your hand feels cold.</span>"
instability = 10
instability = POSITIVE_INSTABILITY_MINOR
difficulty = 10
synchronizer_coeff = 1
power_path = /datum/action/cooldown/spell/conjure_item/snow
Expand All @@ -25,7 +25,7 @@
desc = "Draws negative energy from the sub-zero void to freeze surrounding temperatures at subject's will."
quality = POSITIVE //upsides and downsides
text_gain_indication = "<span class='notice'>Your hand feels cold.</span>"
instability = 30
instability = POSITIVE_INSTABILITY_MODERATE
difficulty = 12
synchronizer_coeff = 1
energy_coeff = 1
Expand Down
Loading

0 comments on commit 0119b95

Please sign in to comment.