From 88578f3471f6f5f424225c3a22a34576b47db882 Mon Sep 17 00:00:00 2001
From: kyunkyunkyun <120701975+kyunkyunkyun@users.noreply.github.com>
Date: Wed, 16 Apr 2025 22:02:16 +0500
Subject: [PATCH] Fixes some acid procs (#28828)
* sane
* oh wow
* isnull
---
code/game/objects/effects/alien_acid.dm | 2 --
code/modules/mob/living/carbon/carbon_procs.dm | 8 ++++----
code/modules/mob/living/carbon/human/human_defense.dm | 2 ++
code/modules/mob/living/living.dm | 2 ++
code/modules/reagents/chemistry/reagents/toxins.dm | 10 +++++-----
5 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/code/game/objects/effects/alien_acid.dm b/code/game/objects/effects/alien_acid.dm
index a00b1c65ce0..2d301f6161f 100644
--- a/code/game/objects/effects/alien_acid.dm
+++ b/code/game/objects/effects/alien_acid.dm
@@ -67,8 +67,6 @@
var/acid_used = min(acid_level * 0.05, 20)
if(L.acid_act(10, acid_used, "feet"))
acid_level = max(0, acid_level - acid_used * 10)
- playsound(L, 'sound/weapons/sear.ogg', 50, TRUE)
- to_chat(L, "[src] burns you!")
//xenomorph corrosive acid
/obj/effect/acid/alien
diff --git a/code/modules/mob/living/carbon/carbon_procs.dm b/code/modules/mob/living/carbon/carbon_procs.dm
index c00a6cc75a2..b76824dce3d 100644
--- a/code/modules/mob/living/carbon/carbon_procs.dm
+++ b/code/modules/mob/living/carbon/carbon_procs.dm
@@ -1235,13 +1235,13 @@ so that different stomachs can handle things in different ways VB*/
. |= LH.GetAccess()
/mob/living/carbon/proc/can_breathe_gas()
- if(!wear_mask)
+ if(isnull(internal)) // no internals - breath from environment
return TRUE
- if(!(wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT) && internal == null)
- return TRUE
+ if(wear_mask?.flags & BLOCK_GAS_SMOKE_EFFECT || head?.flags & BLOCK_GAS_SMOKE_EFFECT)
+ return FALSE
- return FALSE
+ return TRUE
//to recalculate and update the mob's total tint from tinted equipment it's wearing.
/mob/living/carbon/proc/update_tint()
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 2dbea5e84da..a743749c3e6 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -407,6 +407,8 @@ emp_act
//DAMAGE//
for(var/obj/item/organ/external/affecting in damaged)
affecting.receive_damage(acidity, 2 * acidity)
+ to_chat(src, "The acid burns you!")
+ playsound(src, 'sound/weapons/sear.ogg', 50, TRUE)
if(istype(affecting, /obj/item/organ/external/head))
var/obj/item/organ/external/head/head_organ = affecting
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index fdf3aee0c27..f6aaa2ede31 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -350,6 +350,8 @@
/mob/living/acid_act(acidpwr, acid_volume)
take_organ_damage(acidpwr * min(1, acid_volume * 0.1))
+ to_chat(src, "The acid burns you!")
+ playsound(src, 'sound/weapons/sear.ogg', 50, TRUE)
return 1
/mob/living/welder_act(mob/user, obj/item/I)
diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm
index ace0353d07b..b9b684746e9 100644
--- a/code/modules/reagents/chemistry/reagents/toxins.dm
+++ b/code/modules/reagents/chemistry/reagents/toxins.dm
@@ -362,11 +362,11 @@
H.adjustFireLoss(clamp((volume - 5) * 3, 8, 75))
return
- var/has_melted_something = FALSE
- if(H.wear_mask && !(H.wear_mask.resistance_flags & ACID_PROOF))
+ var/protected = TRUE
+ if(H.wear_mask && !(H.wear_mask.resistance_flags & ACID_PROOF) && !(H.head?.resistance_flags & ACID_PROOF))
to_chat(H, "Your [H.wear_mask.name] melts away!")
qdel(H.wear_mask)
- has_melted_something = TRUE
+ protected = FALSE
if(H.head && !(H.head.resistance_flags & ACID_PROOF))
if(istype(H.head, /obj/item/clothing/head/mod) && ismodcontrol(H.back))
@@ -378,9 +378,9 @@
else
to_chat(H, "Your [H.head.name] melts away!")
qdel(H.head)
- has_melted_something = TRUE
+ protected = FALSE
- if(has_melted_something)
+ if(protected)
return
if(volume >= 5)