From ace1fa8c246e40b8f10f132178e1edc234e92481 Mon Sep 17 00:00:00 2001 From: Aleksandr Sakrukin <99011379+JustSanyK@users.noreply.github.com> Date: Sun, 10 Aug 2025 17:55:35 +0300 Subject: [PATCH] Allow the cyborgs to place objects on tables and in closets using the gripper (#29893) * Add exception if item is in gripper * Add transformation from list to params, for corret work of melee_attack_chain function --- code/game/objects/items/robot/cyborg_gripper.dm | 2 +- code/game/objects/structures/crates_lockers/closets.dm | 2 +- code/game/objects/structures/tables_racks.dm | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/robot/cyborg_gripper.dm b/code/game/objects/items/robot/cyborg_gripper.dm index a656ae92a10..393c8d8e112 100644 --- a/code/game/objects/items/robot/cyborg_gripper.dm +++ b/code/game/objects/items/robot/cyborg_gripper.dm @@ -90,7 +90,7 @@ // Pass the attack on to the target. This might delete/relocate gripped_item. if(!target.item_interaction(user, gripped_item, modifiers)) - gripped_item.melee_attack_chain(user, target, modifiers) + gripped_item.melee_attack_chain(user, target, list2params(modifiers)) // Check to see if there is still an item in the gripper (stackable items trigger this). if(!gripped_item && length(contents)) gripped_item = contents[1] diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index dac03e147c6..ce70b199c2d 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -301,7 +301,7 @@ return FALSE if(user.a_intent != INTENT_HELP) // Stops you from putting your baton in the closet on accident return - if(isrobot(user)) + if(isrobot(user) && !istype(W.loc, /obj/item/gripper)) return if(!user.drop_item()) //couldn't drop the item to_chat(user, "\The [W] is stuck to your hand, you cannot put it in \the [src]!") diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index ac0e649cea6..8dc548e7be8 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -232,7 +232,7 @@ tablepush(I, user) return - if(isrobot(user)) + if(isrobot(user) && !istype(I.loc, /obj/item/gripper)) return if(user.a_intent == INTENT_HELP && !(I.flags & ABSTRACT)) @@ -945,7 +945,7 @@ return TRUE /obj/structure/rack/attackby__legacy__attackchain(obj/item/W, mob/user, params) - if(isrobot(user)) + if(isrobot(user) && !istype(W.loc, /obj/item/gripper)) return if(user.a_intent == INTENT_HARM) return ..()