From fa53b659a4d5efb9c5ceca873ce5614d1f124cb4 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Mon, 17 Oct 2016 16:52:20 -0500 Subject: [PATCH] Should fix the tape thing. --- code/game/objects/items/weapons/tape.dm | 174 +++++++++++++----------- 1 file changed, 97 insertions(+), 77 deletions(-) diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index e41edf47de..b6fc2f4251 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -7,7 +7,7 @@ /obj/item/weapon/tape_roll/attack(var/mob/living/carbon/human/H, var/mob/user) if(istype(H)) - var/can_place + var/can_place = 0 if(istype(user, /mob/living/silicon/robot)) can_place = 1 else @@ -15,87 +15,107 @@ if (G.loc == user && G.state >= GRAB_AGGRESSIVE) can_place = 1 break - if(!can_place) - user << "You need to have a firm grip on [H] before you can use \the [src]!" - else - if(user.zone_sel.selecting == O_EYES) + if(!can_place) + user << "You need to have a firm grip on [H] before you can use \the [src]!" + return + else + if(user.zone_sel.selecting == O_EYES) - if(!H.organs_by_name[BP_HEAD]) - user << "\The [H] doesn't have a head." - return - if(!H.has_eyes()) - user << "\The [H] doesn't have any eyes." - return - if(H.glasses) - user << "\The [H] is already wearing somethign on their eyes." - return - if(H.head && (H.head.body_parts_covered & FACE)) - user << "Remove their [H.head] first." - return - user.visible_message("\The [user] begins taping over \the [H]'s eyes!") + if(!H.organs_by_name[BP_HEAD]) + user << "\The [H] doesn't have a head." + return + if(!H.has_eyes()) + user << "\The [H] doesn't have any eyes." + return + if(H.glasses) + user << "\The [H] is already wearing somethign on their eyes." + return + if(H.head && (H.head.body_parts_covered & FACE)) + user << "Remove their [H.head] first." + return + user.visible_message("\The [user] begins taping over \the [H]'s eyes!") - if(!do_after(user, 30)) - return + if(!do_after(user, 30)) + return - // Repeat failure checks. - 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 + can_place = 0 - if(!can_place) - if(!H || !src || !H.organs_by_name[BP_HEAD] || !H.has_eyes() || H.glasses || (H.head && (H.head.body_parts_covered & FACE))) - return - - user.visible_message("\The [user] has taped up \the [H]'s eyes!") - H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/blindfold/tape(H), slot_glasses) - H.update_inv_glasses() - - else if(user.zone_sel.selecting == O_MOUTH || user.zone_sel.selecting == BP_HEAD) - if(!H.organs_by_name[BP_HEAD]) - user << "\The [H] doesn't have a head." - return - if(!H.check_has_mouth()) - user << "\The [H] doesn't have a mouth." - return - if(H.wear_mask) - user << "\The [H] is already wearing a mask." - return - if(H.head && (H.head.body_parts_covered & FACE)) - user << "Remove their [H.head] first." - return - user.visible_message("\The [user] begins taping up \the [H]'s mouth!") - - if(!do_after(user, 30)) - return - - // Repeat failure checks. - 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(!H || !src || !H.organs_by_name[BP_HEAD] || !H.check_has_mouth() || H.wear_mask || (H.head && (H.head.body_parts_covered & FACE))) - return - - user.visible_message("\The [user] has taped up \the [H]'s mouth!") - - H.equip_to_slot_or_del(new /obj/item/clothing/mask/muzzle/tape(H), slot_wear_mask) - H.update_inv_wear_mask() - - else if(user.zone_sel.selecting == "r_hand" || user.zone_sel.selecting == "l_hand") - var/obj/item/weapon/handcuffs/cable/tape/T = new(user) - if(!T.place_handcuffs(H, user)) - user.unEquip(T) - qdel(T) + if(istype(user, /mob/living/silicon/robot)) + can_place = 1 else - return ..() - return 1 + 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) + return + + if(!H || !src || !H.organs_by_name[BP_HEAD] || !H.has_eyes() || H.glasses || (H.head && (H.head.body_parts_covered & FACE))) + return + + user.visible_message("\The [user] has taped up \the [H]'s eyes!") + H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/blindfold/tape(H), slot_glasses) + H.update_inv_glasses() + + else if(user.zone_sel.selecting == O_MOUTH || user.zone_sel.selecting == BP_HEAD) + if(!H.organs_by_name[BP_HEAD]) + user << "\The [H] doesn't have a head." + return + if(!H.check_has_mouth()) + user << "\The [H] doesn't have a mouth." + return + if(H.wear_mask) + user << "\The [H] is already wearing a mask." + return + if(H.head && (H.head.body_parts_covered & FACE)) + user << "Remove their [H.head] first." + return + user.visible_message("\The [user] begins taping up \the [H]'s mouth!") + + 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) + return + + if(!H || !src || !H.organs_by_name[BP_HEAD] || !H.has_eyes() || H.glasses || (H.head && (H.head.body_parts_covered & FACE))) + return + + user.visible_message("\The [user] has taped up \the [H]'s mouth!") + + H.equip_to_slot_or_del(new /obj/item/clothing/mask/muzzle/tape(H), slot_wear_mask) + H.update_inv_wear_mask() + + 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) + return + + var/obj/item/weapon/handcuffs/cable/tape/T = new(user) + + if(!T.place_handcuffs(H, user)) + user.unEquip(T) + qdel(T) + else + return ..() + return 1 /obj/item/weapon/tape_roll/proc/stick(var/obj/item/weapon/W, mob/user) if(!istype(W, /obj/item/weapon/paper))