From 9e24725e8d2576292a3513da68ba2b83a4c88278 Mon Sep 17 00:00:00 2001 From: Runa Dacino Date: Mon, 5 Sep 2022 22:43:36 +0200 Subject: [PATCH] Adds framework for synths to feel pain --- code/modules/mob/living/carbon/human/life_vr.dm | 5 +++++ code/modules/organs/pain.dm | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life_vr.dm b/code/modules/mob/living/carbon/human/life_vr.dm index fc4f6134189..8e52e3daafa 100644 --- a/code/modules/mob/living/carbon/human/life_vr.dm +++ b/code/modules/mob/living/carbon/human/life_vr.dm @@ -78,3 +78,8 @@ // Moving around increases germ_level faster if(germ_level < GERM_LEVEL_MOVE_CAP && prob(8)) germ_level++ + + +/mob/living/carbon + var/synth_cosmetic_pain = FALSE + diff --git a/code/modules/organs/pain.dm b/code/modules/organs/pain.dm index 6cf236bc193..b65b3fc2fbd 100644 --- a/code/modules/organs/pain.dm +++ b/code/modules/organs/pain.dm @@ -9,7 +9,7 @@ // power decides how much painkillers will stop the message // force means it ignores anti-spam timer /mob/living/carbon/proc/custom_pain(message, power, force) - if(!message || stat || !can_feel_pain() || chem_effects[CE_PAINKILLER] > power) + if((!message || stat || !can_feel_pain() || chem_effects[CE_PAINKILLER] > power) && !synth_cosmetic_pain) return 0 message = "[message]" if(power >= 50) @@ -25,7 +25,7 @@ if(stat) return - if(!can_feel_pain()) + if(!can_feel_pain() && !synth_cosmetic_pain) return if(world.time < next_pain_time) @@ -33,7 +33,7 @@ var/maxdam = 0 var/obj/item/organ/external/damaged_organ = null for(var/obj/item/organ/external/E in organs) - if(!E.organ_can_feel_pain()) continue + if(!E.organ_can_feel_pain() && !synth_cosmetic_pain) continue var/dam = E.get_damage() // make the choice of the organ depend on damage, // but also sometimes use one of the less damaged ones