From 0b1b8866fc81dcb81bc4f378f9322ad9fb0c7513 Mon Sep 17 00:00:00 2001
From: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
Date: Sun, 23 Nov 2025 03:05:34 +0000
Subject: [PATCH] The Service Borg RSF Can Put Stuff in People's Hands (#30974)
* Update RSF.dm
* Update RSF.dm
* Update RSF.dm
---------
Co-authored-by: Fordoxia <143041327+Fordoxia@users.noreply.github.com>
---
code/game/objects/items/RSF.dm | 25 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/code/game/objects/items/RSF.dm b/code/game/objects/items/RSF.dm
index 00359c05236..f1227222a42 100644
--- a/code/game/objects/items/RSF.dm
+++ b/code/game/objects/items/RSF.dm
@@ -85,8 +85,8 @@
if(!currently_dispensing)
return ITEM_INTERACT_COMPLETE
- if(!istype(target, /obj/structure/table) && !isfloorturf(target))
- to_chat(user, "The RSF can only create service items on tables or floors!")
+ if(!istype(target, /obj/structure/table) && !isfloorturf(target) && !ishuman(target))
+ to_chat(user, "The RSF can only create service items on tables, floors, or people's hands!")
return ITEM_INTERACT_COMPLETE
if(isrobot(user))
@@ -97,8 +97,25 @@
return ITEM_INTERACT_COMPLETE
var/turf/T = get_turf(target)
- new currently_dispensing(T)
- playsound(loc, 'sound/machines/click.ogg', 10, TRUE)
+ if(!ishuman(target))
+ new currently_dispensing(T)
+ playsound(loc, 'sound/machines/click.ogg', 10, TRUE)
+ return ITEM_INTERACT_COMPLETE
+
+ if(do_after_once(user, DEFAULT_ITEM_PUTON_DELAY, target = target))
+ var/mob/living/carbon/human/esteemed_individual = target
+ var/dispensed_item = new currently_dispensing(T)
+ if(esteemed_individual.put_in_hands(dispensed_item))
+ target.visible_message(
+ "[user] hands [target] \a [dispensed_item].",
+ "[user] hands you \a [dispensed_item]."
+ )
+ else
+ target.visible_message(
+ "[user] tries to hand [target] \a [dispensed_item], but it tumbles down onto the floor!",
+ "[user] tries to hand you \a [dispensed_item], but it tumbles down onto the floor!"
+ )
+ playsound(loc, 'sound/machines/click.ogg', 10, TRUE)
return ITEM_INTERACT_COMPLETE
/obj/item/rsf/proc/get_radial_contents()