From ef39964cbd81891576cfc0bf0631d0696aafbaaa Mon Sep 17 00:00:00 2001 From: Decepteor Date: Mon, 6 Jul 2020 12:53:26 +0100 Subject: [PATCH] Small changeling tweaks (#9255) --- code/game/gamemodes/changeling/implements/powers/suck.dm | 5 ++++- code/modules/mob/living/carbon/human/life.dm | 4 ++-- code/modules/mob/mob.dm | 3 +++ html/changelogs/decepter-PR-9255.yml | 9 +++++++++ 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 html/changelogs/decepter-PR-9255.yml diff --git a/code/game/gamemodes/changeling/implements/powers/suck.dm b/code/game/gamemodes/changeling/implements/powers/suck.dm index 19e2744df18..88bec2aaacc 100644 --- a/code/game/gamemodes/changeling/implements/powers/suck.dm +++ b/code/game/gamemodes/changeling/implements/powers/suck.dm @@ -10,6 +10,9 @@ if(!istype(G)) to_chat(src, "We must be grabbing a creature in our active hand to absorb them.") return + if(!src.get_pressure_weakness()) + to_chat(src, "We cannot absorb this creature from inside a sealed environment.") + return var/mob/living/carbon/human/T = G.affecting if(!istype(T)) to_chat(src, "[T] is not compatible with our biology.") @@ -18,7 +21,7 @@ to_chat(src, "We do not know how to parse this creature's DNA!") return if(islesserform(T)) - to_chat(src, "This creature DNA is not compatible with our form!") + to_chat(src, "This creature's DNA is not compatible with our form!") return if(HUSK in T.mutations) to_chat(src, "This creature's DNA is ruined beyond useability!") diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index fc98aa19d32..e096bc1fb48 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -109,7 +109,7 @@ // Calculate how vulnerable the human is to under- and overpressure. // Returns 0 (equals 0 %) if sealed in an undamaged suit, 1 if unprotected (equals 100%). // Suitdamage can modifiy this in 10% steps. -/mob/living/carbon/human/proc/get_pressure_weakness() +/mob/living/carbon/human/get_pressure_weakness() var/pressure_adjustment_coefficient = 1 // Assume no protection at first. if(wear_suit && (wear_suit.item_flags & STOPPRESSUREDAMAGE) && head && (head.item_flags & STOPPRESSUREDAMAGE)) // Complete set of pressure-proof suit worn, assume fully sealed. @@ -727,7 +727,7 @@ return 1 if(hallucination && !(species.flags & (NO_POISON|IS_PLANT))) - handle_hallucinations() + handle_hallucinations() if(get_shock() >= (species.total_health * 0.75)) if(!stat) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d65ca21c0fb..84a92470572 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -987,6 +987,9 @@ /mob/proc/get_species(var/reference = 0) return "" +/mob/proc/get_pressure_weakness() + return 1 + /mob/proc/flash_weak_pain() flick("weak_pain", pain) diff --git a/html/changelogs/decepter-PR-9255.yml b/html/changelogs/decepter-PR-9255.yml new file mode 100644 index 00000000000..63bcfb2de64 --- /dev/null +++ b/html/changelogs/decepter-PR-9255.yml @@ -0,0 +1,9 @@ +# Your name. +author: Decepter + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Changes +changes: + - tweak: "Made it so that Changelings can't absorb DNA if they're inside a sealed void suit." \ No newline at end of file