From f800ffef767e490611cac977058a98e1d0763815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rig=C3=B3=20J=C3=A1nos?= Date: Sat, 24 Jun 2023 13:23:08 +0200 Subject: [PATCH 1/2] Made weed nodes destroyable --- .../carbon/xenomorph/abilities/general_powers.dm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm index dd9051ab0279..edc74a45d998 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm @@ -27,8 +27,16 @@ return var/obj/effect/alien/weeds/node/N = locate() in T - if(N && N.weed_strength >= X.weed_level) - to_chat(X, SPAN_WARNING("There's a pod here already!")) + if(N) + if(N.weed_strength > X.weed_level) + to_chat(X, SPAN_WARNING("There's a pod here already!")) + else + to_chat(X, SPAN_WARNING("You start removing the resin node.")) + if(!do_after(X, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + return + playsound(X.loc, "alien_resin_break", 25) + N.Destroy() + to_chat(X, SPAN_WARNING("You removed the resin node.")) return var/obj/effect/alien/resin/trap/resin_trap = locate() in T From 354f85ef04dd1a159a661aeb883bcf66a144848a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rig=C3=B3=20J=C3=A1nos?= Date: Sat, 24 Jun 2023 13:23:39 +0200 Subject: [PATCH 2/2] Made filled traps destroyable --- code/modules/cm_aliens/structures/trap.dm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/code/modules/cm_aliens/structures/trap.dm b/code/modules/cm_aliens/structures/trap.dm index 1b3d4d414d48..4c087091fca8 100644 --- a/code/modules/cm_aliens/structures/trap.dm +++ b/code/modules/cm_aliens/structures/trap.dm @@ -217,6 +217,20 @@ to_chat(X, SPAN_XENONOTICE("[src] is occupied by a child.")) return XENO_NO_DELAY_ACTION + if(X.a_intent == INTENT_HARM) + to_chat(X, SPAN_XENONOTICE("You start tearing away at the hole.")) + xeno_attack_delay(X) + if(!do_after(X, 30, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, src)) + return XENO_NO_DELAY_ACTION + var/area/A = get_area(src) + if (X.hivenumber == hivenumber) + Destroy() + to_chat(X, SPAN_XENONOTICE("You destroy the trap.")) + for(var/mob/living/carbon/xenomorph/Xeno in GLOB.living_xeno_list) + if(Xeno.hivenumber == hivenumber) + to_chat(Xeno, SPAN_XENOMINORWARNING("One of your Hive's traps at [A.name] has been torn apart by [X]!")) + return XENO_NO_DELAY_ACTION + if((!X.acid_level || trap_type == RESIN_TRAP_GAS) && trap_type != RESIN_TRAP_EMPTY) to_chat(X, SPAN_XENONOTICE("Better not risk setting this off.")) return XENO_NO_DELAY_ACTION