From cd3f808efed75f1bbf96434f14aeb277d83107ba Mon Sep 17 00:00:00 2001 From: Runa Dacino Date: Fri, 4 Dec 2020 20:28:54 +0100 Subject: [PATCH] Implements Neural hypersensitivity * Adds species trauma_mod for calculating shock * Changes shock calculations to include trauma_mod * Implements negative trait "neural hypersensitivity" --- .../modules/mob/living/carbon/human/species/species.dm | 1 + .../carbon/human/species/station/traits_vr/negative.dm | 8 +++++++- code/modules/mob/living/carbon/shock.dm | 10 ++++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index d4086e1442d..9860b0c0113 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -102,6 +102,7 @@ var/alcohol_mod = 1 // Multiplier to alcohol strength; 0.5 = half, 0 = no effect at all, 2 = double, etc. var/pain_mod = 1 // Multiplier to pain effects; 0.5 = half, 0 = no effect (equal to NO_PAIN, really), 2 = double, etc. var/spice_mod = 1 // Multiplier to spice/capsaicin/frostoil effects; 0.5 = half, 0 = no effect (immunity), 2 = double, etc. + var/trauma_mod = 1 // Affects traumatic shock (how fast pain crit happens). 0 = no effect (immunity to pain crit), 2 = double etc.Overriden by "can_feel_pain" var // set below is EMP interactivity for nonsynth carbons var/emp_sensitivity = 0 // bitflag. valid flags are: EMP_PAIN, EMP_BLIND, EMP_DEAFEN, EMP_CONFUSE, EMP_STUN, and EMP_(BRUTE/BURN/TOX/OXY)_DMG var/emp_dmg_mod = 1 // Multiplier to all EMP damage sustained by the mob, if it's EMP-sensitive diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index b0cf780d66a..e9229b89e69 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -140,4 +140,10 @@ /datum/trait/colorblind/para_taj/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) H.add_modifier(/datum/modifier/trait/colorblind_taj) - \ No newline at end of file + +/datum/trait/neural_hypersensitivity + name = "Neural Hypersensitivity" + desc = "Your nerves are particularly sensitive to physical changes, leading to experiencing twice the intensity of pain and pleasure alike. Doubles traumatic shock." + cost = -1 + var_changes = list("traumatic_mod" = 2) + diff --git a/code/modules/mob/living/carbon/shock.dm b/code/modules/mob/living/carbon/shock.dm index 894a0a98b02..2b8c94e302f 100644 --- a/code/modules/mob/living/carbon/shock.dm +++ b/code/modules/mob/living/carbon/shock.dm @@ -13,8 +13,7 @@ 1.2 * src.getShockFireLoss() + \ 1.2 * src.getShockBruteLoss() + \ 1.7 * src.getCloneLoss() + \ - 2 * src.halloss + \ - -1 * src.chem_effects[CE_PAINKILLER] + 2 * src.halloss if(src.slurring) src.traumatic_shock -= 20 @@ -27,6 +26,13 @@ src.traumatic_shock += 30 else if(organ.is_dislocated()) src.traumatic_shock += 15 + + // Some individuals/species are more or less supectible to pain. Default trauma_mod = 1. Does not affect painkillers + if(istype(src, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = src + H.traumatic_shock *= H.species.trauma_mod + + src.traumatic_shock += -1 * src.chem_effects[CE_PAINKILLER] if(src.traumatic_shock < 0) src.traumatic_shock = 0