From 6d630e86bdb51e11f8f1dbf96df99c5460cd7bd9 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Wed, 10 Nov 2021 15:18:59 +0000 Subject: [PATCH] [MIRROR] RPDs can't place transit tubes directly under dense objects. [MDB IGNORE] (#9359) * Transit tubes can't be placed on turfs with dense objects. (#62387) Right now you can directly place and wrench a transit tube under a few objects that are dense, this opens up a few issues, like you being able to bypass dense objects and get into places that you shouldn't with basically no effort as long as you have a RPD in your bag. The main example of this is the brig cells, the bridge, the AI upload, the luxury area on the luxury shuttle, etc. So a simple check was added to see if the turf has a dense object before placing a tube. This PR #45609 (a5de1c1b5e306a4f49e13223a56124201165ffc2) was IMO one of the best balance changes in the game, before it access was a meme and you could get anywhere in a few seconds by just unwrenching windows. With a RPD you can do the same, but the worse issue is that while it takes 1 second for you to place a tube under a reinforced window, you need to fully deconstruct the window to remove it. While you fix 1 area that the clown turned into free access, they have build 5 more. * RPDs can't place transit tubes directly under dense objects. Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com> --- code/game/objects/items/RPD.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index 2425e533778..5f0dd2827b4 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -611,6 +611,12 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( if(isclosedturf(attack_target)) to_chat(user, span_warning("[src]'s error light flickers; there's something in the way!")) return + + var/turf/target_turf = get_turf(attack_target) + if(target_turf.is_blocked_turf(exclude_mobs = TRUE)) + to_chat(user, span_warning("[src]'s error light flickers; there's something in the way!")) + return + to_chat(user, span_notice("You start building a transit tube...")) playsound(get_turf(src), 'sound/machines/click.ogg', 50, TRUE) if(do_after(user, transit_build_speed, target = attack_target))