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()