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