From dd003c1ada1c1bdc957bbe195a1fb6790b5ec1d3 Mon Sep 17 00:00:00 2001 From: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com> Date: Thu, 22 May 2025 21:19:38 +0300 Subject: [PATCH] Adding a few checks for machines that use disks (#91278) ## About The Pull Request Fixes a bug(?) where you, being non-carbon, could teleport disks from various machines to your location (for example, playing as an AI or cyborg, carbons with telekinesis too) ## Why It's Good For The Game teleporting disks is bad... ## Changelog :cl: fix: Now if you are not near the console the disk will drop in its place instead of your location /:cl: --- .../modules/modular_computers/computers/item/computer_ui.dm | 5 ++++- code/modules/research/ordnance/doppler_array.dm | 6 +++--- code/modules/research/ordnance/tank_compressor.dm | 6 +++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index 608a12a2183..bf429ecfaf7 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -193,7 +193,10 @@ if(!inserted_disk) return - user.put_in_hands(inserted_disk) + if(!user || !Adjacent(user)) + inserted_disk.forceMove(drop_location()) + else + user.put_in_hands(inserted_disk) inserted_disk = null playsound(src, 'sound/machines/card_slide.ogg', 50) return TRUE diff --git a/code/modules/research/ordnance/doppler_array.dm b/code/modules/research/ordnance/doppler_array.dm index 1f1d4600938..3e4757e1675 100644 --- a/code/modules/research/ordnance/doppler_array.dm +++ b/code/modules/research/ordnance/doppler_array.dm @@ -207,10 +207,10 @@ /obj/machinery/doppler_array/proc/eject_disk(mob/user) if(!inserted_disk) return FALSE - if(user) - user.put_in_hands(inserted_disk) - else + if(!user || !Adjacent(user)) inserted_disk.forceMove(drop_location()) + else + user.put_in_hands(inserted_disk) playsound(src, 'sound/machines/card_slide.ogg', 50) return TRUE diff --git a/code/modules/research/ordnance/tank_compressor.dm b/code/modules/research/ordnance/tank_compressor.dm index f78114d6ff1..06069123f94 100644 --- a/code/modules/research/ordnance/tank_compressor.dm +++ b/code/modules/research/ordnance/tank_compressor.dm @@ -220,10 +220,10 @@ /obj/machinery/atmospherics/components/binary/tank_compressor/proc/eject_disk(mob/user) if(!inserted_disk) return FALSE - if(user) - user.put_in_hands(inserted_disk) - else + if(!user || !Adjacent(user)) inserted_disk.forceMove(drop_location()) + else + user.put_in_hands(inserted_disk) playsound(src, 'sound/machines/card_slide.ogg', 50) return TRUE