[MIRROR] Adds chromosome effects to Cryokinesis, Shocktouch, Chameleon, and Webbing mutations. (#17688)

* Adds chromosome effects to Cryokinesis, Shocktouch, Chameleon, and Webbing mutations. (#71118)

Cryokinesis instability up by 10 (from 20 to 30)
Cryokinesis base cooldown up by 1 second (from 15 to 16) now accepts
energetic chromosomes (8 seconds when applied)

Shock touch instability up by 5 (from 30 to 35) now accepts both
energetic and power chromosomes

Shock touch cooldown up by 2 (from 10 to 12) (cooldown of 6 when
energetic is applied)

If a power chromosome is applied Shock touch does a weak 7500 power
(I`ve seen it hit from 5-7 damage) tesla shock with range of 7 when used
on a viable target (extra damage does not apply to target, no you cant
use it on yourself, no you cant use it on someone that is shock immune,
yes you have to put yourself in harms way to apply the tesla shock.)

(The vars for the tesla shock can be edited by admins for events/abuse)

Chameleon now accepts power chromosomes to fully stealth about 3 seconds
faster.

Webbing now accepts energetic chromosomes

* ty snakebitten

Co-authored-by: moocowswag <62126254+moocowswag@users.noreply.github.com>
This commit is contained in:
Zonespace
2022-11-23 13:08:55 -05:00
committed by GitHub
co-authored by moocowswag
parent 8db803e724
commit 68be85c58a
4 changed files with 54 additions and 6 deletions
+5 -2
View File
@@ -6,13 +6,16 @@
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
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
/**
+3 -2
View File
@@ -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 = "<span class='notice'>Your hand feels cold.</span>"
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
+33 -2
View File
@@ -7,18 +7,43 @@
text_gain_indication = "<span class='notice'>You feel power flow through your hands.</span>"
text_lose_indication = "<span class='notice'>The energy in your hands subsides.</span>"
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]..."))
+13
View File
@@ -6,6 +6,19 @@
text_gain_indication = "<span class='notice'>Your skin feels webby.</span>"
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(..())