From bf79a0f35ac54f66caae223f904ac46c940d8269 Mon Sep 17 00:00:00 2001 From: Christer2222 <25958019+Christer2222@users.noreply.github.com> Date: Fri, 12 Dec 2025 16:30:50 +0100 Subject: [PATCH] Fixes shelter capsules being blocked by large rocks and not removing wall plants + attack chain (#31135) * attack chain + deletes rocks and plants * comments * lint * casting * as anything. Check return value --- code/modules/mining/equipment/survival_pod.dm | 13 ++++++++++++- code/modules/mining/shelters.dm | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index e6be08c8252..7076fe25fd9 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -15,6 +15,7 @@ var/template_id = "shelter_alpha" var/datum/map_template/shelter/template var/used = FALSE + new_attack_chain = TRUE /obj/item/survivalcapsule/emag_act() if(!emagged) @@ -37,7 +38,10 @@ . += "This capsule has the [template.name] stored." . += template.description -/obj/item/survivalcapsule/attack_self__legacy__attackchain() +/obj/item/survivalcapsule/activate_self(mob/user) + if(..()) + return + // Can't grab when capsule is New() because templates aren't loaded then get_template() if(!used) @@ -72,6 +76,13 @@ log_admin("[key_name(usr)] activated a bluespace capsule away from the mining level at [T.x], [T.y], [T.z]") template.load(deploy_location, centered = TRUE) new /obj/effect/particle_effect/smoke(get_turf(src)) + + // get structures on turf, then delete large rocks and plants + var/affected_turfs = template.get_affected_turfs(deploy_location, TRUE) + for(var/turf/selected_turf as anything in affected_turfs) + for(var/obj/structure/flora/ash/found_flora in selected_turf) + qdel(found_flora) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_SHELTER_PLACED, T) qdel(src) diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm index 01e883aefab..b809c6db9da 100644 --- a/code/modules/mining/shelters.dm +++ b/code/modules/mining/shelters.dm @@ -24,7 +24,7 @@ return SHELTER_DEPLOY_BAD_TURFS for(var/obj/O in T) - if(O.density && O.anchored) + if(O.density && O.anchored && !istype(O, /obj/structure/flora/ash)) // ignore large rocks return SHELTER_DEPLOY_ANCHORED_OBJECTS return SHELTER_DEPLOY_ALLOWED