From 60aaaa844abbd4cc8ceefe44b06f40709c6e37a0 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:28:08 +0300 Subject: [PATCH] [MIRROR] Xenomorph stomachs and vore will no longer destroy items directly, refactored it to use acid_act() (#2166) * Xenomorph stomachs and vore will no longer destroy items directly, refactored it to use acid_act() (#81534) ## About The Pull Request senomorph stomachs and vore will no longer destroy items and mobs directly, refactored it to use acid_act() fixes xenomorph vore accidentally destroying mobs it wasn't supposed to destroy, im thinking this was modified list in place shenanigans ## Why It's Good For The Game this shit is jank as hell and better done this way and results in less weird edge cases, and also makes xenomorphs feel less bullshit ## Changelog :cl: balance: xenomorph stomachs will no longer destroy items directly, refactored it to use acid_act() fix: fixes xenomorph vore accidentally destroying mobs it wasn't supposed to destroy, im thinking this was modified list in place shenanigans /:cl: * Xenomorph stomachs and vore will no longer destroy items directly, refactored it to use acid_act() --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: Iamgoofball --- code/modules/mob/living/carbon/alien/organs.dm | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 66f555b639a..a73926b18ae 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -197,13 +197,7 @@ for(var/atom/movable/thing as anything in stomach_contents) if(!digestable_cache[thing.type]) continue - thing.reagents.trans_to(src, 4) - - if(isliving(thing)) - var/mob/living/lad = thing - lad.adjustBruteLoss(6) - else if(!thing.reagents.total_volume) // Mobs can't get dusted like this, too important - qdel(thing) + thing.acid_act(75, 10) /obj/item/organ/internal/stomach/alien/proc/consume_thing(atom/movable/thing) RegisterSignal(thing, COMSIG_MOVABLE_MOVED, PROC_REF(content_moved)) @@ -211,9 +205,6 @@ if(isliving(thing)) var/mob/living/lad = thing RegisterSignal(thing, COMSIG_LIVING_DEATH, PROC_REF(content_died)) - if(lad.stat == DEAD) - qdel(lad) - return stomach_contents += thing thing.forceMove(owner || src) // We assert that if we have no owner, we will not be nullspaced