diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index 90b62ed07b7..b24f24d2feb 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -8,19 +8,21 @@ toolspeed = 2 //It is now used in surgery as a not awful, but probably dangerous option, due to speed. +/obj/item/weapon/tape_roll/proc/can_place(var/mob/living/carbon/human/H, var/mob/user) + if(istype(user, /mob/living/silicon/robot) || user == H) + return TRUE + + for (var/obj/item/weapon/grab/G in H.grabbed_by) + if (G.loc == user && G.state >= GRAB_AGGRESSIVE) + return TRUE + + return FALSE + /obj/item/weapon/tape_roll/attack(var/mob/living/carbon/human/H, var/mob/user) if(istype(H)) if(user.a_intent == I_HELP) return - var/can_place = 0 - if(istype(user, /mob/living/silicon/robot)) - can_place = 1 - else - for (var/obj/item/weapon/grab/G in H.grabbed_by) - if (G.loc == user && G.state >= GRAB_AGGRESSIVE) - can_place = 1 - break - if(!can_place) + if(!can_place(H, user)) to_chat(user, "You need to have a firm grip on [H] before you can use \the [src]!") return else @@ -43,16 +45,7 @@ if(!do_after(user, 30)) return - can_place = 0 - - if(istype(user, /mob/living/silicon/robot)) - can_place = 1 - else - for (var/obj/item/weapon/grab/G in H.grabbed_by) - if (G.loc == user && G.state >= GRAB_AGGRESSIVE) - can_place = 1 - - if(!can_place) + if(!can_place(H, user)) return if(!H || !src || !H.organs_by_name[BP_HEAD] || !H.has_eyes() || H.glasses || (H.head && (H.head.body_parts_covered & FACE))) @@ -81,16 +74,7 @@ if(!do_after(user, 30)) return - can_place = 0 - - if(istype(user, /mob/living/silicon/robot)) - can_place = 1 - else - for (var/obj/item/weapon/grab/G in H.grabbed_by) - if (G.loc == user && G.state >= GRAB_AGGRESSIVE) - can_place = 1 - - if(!can_place) + if(!can_place(H, user)) return if(!H || !src || !H.organs_by_name[BP_HEAD] || !H.check_has_mouth() || (H.head && (H.head.body_parts_covered & FACE))) @@ -103,16 +87,7 @@ playsound(src, 'sound/effects/tape.ogg',25) else if(user.zone_sel.selecting == "r_hand" || user.zone_sel.selecting == "l_hand") - can_place = 0 - - if(istype(user, /mob/living/silicon/robot)) - can_place = 1 - else - for (var/obj/item/weapon/grab/G in H.grabbed_by) - if (G.loc == user && G.state >= GRAB_AGGRESSIVE) - can_place = 1 - - if(!can_place) + if(!can_place(H, user)) return var/obj/item/weapon/handcuffs/cable/tape/T = new(user) diff --git a/html/changelogs/meghan rossi - duct tape.yml b/html/changelogs/meghan rossi - duct tape.yml new file mode 100644 index 00000000000..9134bc395c3 --- /dev/null +++ b/html/changelogs/meghan rossi - duct tape.yml @@ -0,0 +1,4 @@ +author: Meghan Rossi +delete-after: True +changes: + - bugfix: "You can now use duct tape on yourself."