diff --git a/code/datums/mutations/chameleon.dm b/code/datums/mutations/chameleon.dm
index 25f2bb5535e..83f2c0fa0f8 100644
--- a/code/datums/mutations/chameleon.dm
+++ b/code/datums/mutations/chameleon.dm
@@ -6,13 +6,16 @@
difficulty = 16
text_gain_indication = "You feel one with your surroundings."
text_lose_indication = "You feel oddly exposed."
+ instability = 25
+ power_coeff = 1
/datum/mutation/human/chameleon/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
/// SKYRAT EDIT BEGIN
- if(HAS_TRAIT(owner,TRAIT_CHAMELEON_SKIN))
+ if(HAS_TRAIT(owner, TRAIT_CHAMELEON_SKIN))
return
+ ADD_TRAIT(owner, TRAIT_CHAMELEON_SKIN, GENETIC_MUTATION)
/// SKYRAT EDIT END
owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY
RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move))
@@ -21,7 +24,7 @@
/datum/mutation/human/chameleon/on_life(delta_time, times_fired)
/// SKYRAT EDIT BEGIN
if(HAS_TRAIT(owner, TRAIT_CHAMELEON_SKIN))
- owner.alpha = max(owner.alpha - (12.5 * delta_time), 0)
+ owner.alpha = max(owner.alpha - (12.5 * (GET_MUTATION_POWER(src)) * delta_time), 0)
/// SKYRAT EDIT END
/**
diff --git a/code/datums/mutations/cold.dm b/code/datums/mutations/cold.dm
index a49dfa26160..7c891b3f211 100644
--- a/code/datums/mutations/cold.dm
+++ b/code/datums/mutations/cold.dm
@@ -24,16 +24,17 @@
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 = "Your hand feels cold."
- instability = 20
+ instability = 30
difficulty = 12
synchronizer_coeff = 1
+ energy_coeff = 1
power_path = /datum/action/cooldown/spell/pointed/projectile/cryo
/datum/action/cooldown/spell/pointed/projectile/cryo
name = "Cryobeam"
desc = "This power fires a frozen bolt at a target."
button_icon_state = "icebeam0"
- cooldown_time = 15 SECONDS
+ cooldown_time = 16 SECONDS
spell_requirements = NONE
antimagic_flags = NONE
diff --git a/code/datums/mutations/touch.dm b/code/datums/mutations/touch.dm
index 2da327c87ff..0964492d1ca 100644
--- a/code/datums/mutations/touch.dm
+++ b/code/datums/mutations/touch.dm
@@ -7,18 +7,43 @@
text_gain_indication = "You feel power flow through your hands."
text_lose_indication = "The energy in your hands subsides."
power_path = /datum/action/cooldown/spell/touch/shock
- instability = 30
+ instability = 35
+ energy_coeff = 1
+ power_coeff = 1
+
+/datum/mutation/human/shock/modify()
+ . = ..()
+ var/datum/action/cooldown/spell/touch/shock/to_modify =.
+
+ if(!istype(to_modify)) // null or invalid
+ return
+
+ if(GET_MUTATION_POWER(src) <= 1)
+ to_modify.chain = initial(to_modify.chain)
+ return
+
+ to_modify.chain = TRUE
/datum/action/cooldown/spell/touch/shock
name = "Shock Touch"
desc = "Channel electricity to your hand to shock people with."
button_icon_state = "zap"
sound = 'sound/weapons/zapbang.ogg'
- cooldown_time = 10 SECONDS
+ cooldown_time = 12 SECONDS
invocation_type = INVOCATION_NONE
spell_requirements = NONE
antimagic_flags = NONE
+ //Vars for zaps made when power chromosome is applied, ripped and toned down from reactive tesla armor code.
+ ///This var decides if the spell should chain, dictated by presence of power chromosome
+ var/chain = FALSE
+ ///Affects damage, should do about 1 per limb
+ var/zap_power = 7500
+ ///Range of tesla shock bounces
+ var/zap_range = 7
+ ///flags that dictate what the tesla shock can interact with, Can only damage mobs, Cannot damage machines or generate energy
+ var/zap_flags = ZAP_MOB_DAMAGE
+
hand_path = /obj/item/melee/touch_attack/shock
draw_message = span_notice("You channel electricity into your hand.")
drop_message = span_notice("You let the electricity from your hand dissipate.")
@@ -34,6 +59,9 @@
span_danger("[caster] electrocutes [victim]!"),
span_userdanger("[caster] electrocutes you!"),
)
+ if(chain)
+ tesla_zap(victim, zap_range, zap_power, zap_flags)
+ carbon_victim.visible_message(span_danger("An arc of electricity explodes out of [victim]!"))
return TRUE
else if(isliving(victim))
@@ -43,6 +71,9 @@
span_danger("[caster] electrocutes [victim]!"),
span_userdanger("[caster] electrocutes you!"),
)
+ if(chain)
+ tesla_zap(victim, zap_range, zap_power, zap_flags)
+ living_victim.visible_message(span_danger("An arc of electricity explodes out of [victim]!"))
return TRUE
to_chat(caster, span_warning("The electricity doesn't seem to affect [victim]..."))
diff --git a/code/datums/mutations/webbing.dm b/code/datums/mutations/webbing.dm
index 2d696938e6c..fb152772db1 100644
--- a/code/datums/mutations/webbing.dm
+++ b/code/datums/mutations/webbing.dm
@@ -6,6 +6,19 @@
text_gain_indication = "Your skin feels webby."
instability = 15
power_path = /datum/action/cooldown/spell/lay_genetic_web
+ energy_coeff = 1
+
+/datum/mutation/human/webbing/modify()
+ . = ..()
+ var/datum/action/cooldown/spell/lay_genetic_web/to_modify =.
+
+ if(!istype(to_modify)) // null or invalid
+ return
+
+ if(GET_MUTATION_ENERGY(src) == 1) //energetic chromosome outputs a value less than 1 when present, 1 by default
+ to_modify.webbing_time = initial(to_modify.webbing_time)
+ return
+ to_modify.webbing_time = 2 SECONDS
/datum/mutation/human/webbing/on_acquiring(mob/living/carbon/human/owner)
if(..())