From 3dffd7b8d4ef9c71ce424990b0a2e1ff7620f046 Mon Sep 17 00:00:00 2001 From: forest2001 Date: Sat, 10 Feb 2024 21:28:52 +0000 Subject: [PATCH 1/6] wor --- code/game/objects/items/legcuffs.dm | 57 ++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/legcuffs.dm b/code/game/objects/items/legcuffs.dm index c0dfe44728f0..b7201937a290 100644 --- a/code/game/objects/items/legcuffs.dm +++ b/code/game/objects/items/legcuffs.dm @@ -8,7 +8,57 @@ throwforce = 0 w_class = SIZE_MEDIUM - var/breakouttime = 15 SECONDS + var/breakouttime = 1 MINUTES + /// how many deciseconds it takes to cuff someone + var/cuff_delay = 4 SECONDS + /// If can be applied to people manually + var/manual = TRUE + +/obj/item/legcuffs/attack(mob/living/carbon/C, mob/user) + if(!istype(C) || !manual) + return ..() + if (!istype(user, /mob/living/carbon/human)) + to_chat(user, SPAN_DANGER("You don't have the dexterity to do this!")) + return + if(!C.legcuffed) + apply_legcuffs(C, user) + +/obj/item/legcuffs/proc/apply_legcuffs(mob/living/carbon/target, mob/user) + playsound(src.loc, 'sound/weapons/handcuffs.ogg', 25, 1, 4) + + if(user.action_busy) + return FALSE + + if (ishuman(target)) + var/mob/living/carbon/human/H = target + + if (!H.has_limb_for_slot(WEAR_LEGCUFFS)) + to_chat(user, SPAN_DANGER("\The [H] needs two ankles before you can cuff them together!")) + return FALSE + + H.attack_log += text("\[[time_stamp()]\] Has been legcuffed (attempt) by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to legcuff [key_name(H)]") + msg_admin_attack("[key_name(user)] attempted to legcuff [key_name(H)] in [get_area(src)] ([src.loc.x],[src.loc.y],[src.loc.z]).", src.loc.x, src.loc.y, src.loc.z) + + user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [H].")) + if(do_after(user, cuff_delay, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, H, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + if(src == user.get_active_hand() && !H.legcuffed && Adjacent(user)) + if(iscarbon(H)) + if(istype(H.buckled, /obj/structure/bed/roller)) + to_chat(user, SPAN_DANGER("You cannot legcuff someone who is buckled onto a roller bed.")) + return FALSE + if(H.has_limb_for_slot(WEAR_LEGCUFFS)) + user.drop_inv_item_on_ground(src) + H.equip_to_slot_if_possible(src, WEAR_LEGCUFFS, 1, 0, 1, 1) + user.count_niche_stat(STATISTICS_NICHE_HANDCUFF) + + else if (ismonkey(target)) + user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [target].")) + if(do_after(user, 30, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, target, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + if(src == user.get_active_hand() && !target.legcuffed && Adjacent(user)) + user.drop_inv_item_on_ground(src) + target.equip_to_slot_if_possible(src, WEAR_LEGCUFFS, 1, 0, 1, 1) + return TRUE /obj/item/legcuffs/beartrap name = "bear trap" @@ -16,7 +66,12 @@ throw_range = 1 icon_state = "beartrap0" desc = "A trap used to catch bears and other legged creatures." + breakouttime = 20 SECONDS var/armed = FALSE + manual = FALSE + +/obj/item/legcuffs/beartrap/apply_legcuffs(mob/living/carbon/target, mob/user) + return FALSE /obj/item/legcuffs/beartrap/attack_self(mob/user as mob) ..() From 5b1b4c5bb3de32d357c88fce8234692f83c10a30 Mon Sep 17 00:00:00 2001 From: forest2001 Date: Sat, 9 Mar 2024 18:44:56 +0000 Subject: [PATCH 2/6] repathing and changes --- code/game/machinery/autolathe_datums.dm | 2 +- code/game/machinery/vending/vending_types.dm | 6 +- code/game/objects/items.dm | 4 +- code/game/objects/items/handcuffs.dm | 146 +++++++++++------- code/game/objects/items/legcuffs.dm | 55 +++---- code/game/objects/items/stacks/cable_coil.dm | 2 +- code/game/objects/items/storage/belt.dm | 14 +- code/game/objects/items/storage/boxes.dm | 56 +++---- .../objects/items/tools/maintenance_tools.dm | 2 +- .../closets/secure/cm_closets.dm | 4 +- code/modules/clothing/shoes/colour.dm | 40 +++-- code/modules/clothing/spacesuits/captain.dm | 2 +- .../clothing/spacesuits/miscellaneous.dm | 4 +- code/modules/clothing/suits/armor.dm | 8 +- code/modules/clothing/suits/bio.dm | 2 +- code/modules/clothing/suits/jobs.dm | 10 +- code/modules/clothing/suits/labcoat.dm | 4 +- .../suits/marine_armor/_marine_armor.dm | 2 +- .../clothing/suits/marine_armor/ert.dm | 12 +- code/modules/clothing/suits/marine_coat.dm | 2 +- code/modules/clothing/suits/miscellaneous.dm | 10 +- code/modules/clothing/suits/utility.dm | 2 +- code/modules/gear_presets/cmb.dm | 10 +- .../crashlanding-offices_insert_bigred.dm | 2 +- code/modules/gear_presets/synths.dm | 6 +- code/modules/gear_presets/upp.dm | 24 +-- code/modules/gear_presets/uscm_event.dm | 10 +- code/modules/gear_presets/uscm_police.dm | 4 +- code/modules/gear_presets/wy_goons.dm | 12 +- .../mob/living/carbon/carbon_defines.dm | 2 +- code/modules/mob/mob_defines.dm | 2 +- maps/map_files/BigRed/BigRed.dmm | 8 +- .../BigRed/sprinkles/20.etatunnel_open.dmm | 6 +- .../BigRed/sprinkles/40.viro_open.dmm | 2 +- .../BigRed/sprinkles/70.se-checkpoint.dmm | 2 +- .../BigRed/standalone/crashlanding-eva.dmm | 2 +- .../standalone/crashlanding-offices.dmm | 2 +- maps/map_files/CORSAT/Corsat.dmm | 32 ++-- maps/map_files/DesertDam/Desert_Dam.dmm | 6 +- .../sprinkles/10.damtemple_intact.dmm | 2 +- .../FOP_v2_Cellblocks/Prison_Station_FOP.dmm | 10 +- .../FOP_v3_Sciannex/Fiorina_SciAnnex.dmm | 12 +- .../sprinkles/20.yardbasketball.dmm | 2 +- .../sprinkles/25.researchprestine.dmm | 4 +- .../map_files/Ice_Colony_v2/Ice_Colony_v2.dmm | 8 +- .../Ice_Colony_v3/Shivas_Snowball.dmm | 8 +- .../LV522_Chances_Claim.dmm | 10 +- maps/map_files/LV624/LV624.dmm | 6 +- maps/map_files/LV624/maintemple/1.intact.dmm | 2 +- maps/map_files/LV624/standalone/clfship.dmm | 4 +- .../LV624/standalone/corporatedome.dmm | 2 +- maps/map_files/New_Varadero/New_Varadero.dmm | 10 +- .../Sorokyne_Strata/Sorokyne_Strata.dmm | 2 +- maps/map_files/USS_Almayer/USS_Almayer.dmm | 12 +- maps/map_files/generic/Admin_level.dmm | 2 +- maps/predship/huntership.dmm | 36 ++--- maps/predship/regular.dmm | 24 +-- maps/shuttles/ert_shuttle_big.dmm | 6 +- .../lazy_templates/clf_ert_station.dmm | 6 +- .../lazy_templates/freelancer_ert_station.dmm | 2 +- .../lazy_templates/twe_ert_station.dmm | 8 +- .../lazy_templates/upp_ert_station.dmm | 4 +- 62 files changed, 367 insertions(+), 336 deletions(-) diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index e11fc2d4844d..18a553f2ed25 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -269,7 +269,7 @@ /datum/autolathe/recipe/handcuffs name = "handcuffs" - path = /obj/item/handcuffs + path = /obj/item/restraint/handcuffs hidden = TRUE category = AUTOLATHE_CATEGORY_GENERAL diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm index 92ba81af4d94..d0385007ea20 100644 --- a/code/game/machinery/vending/vending_types.dm +++ b/code/game/machinery/vending/vending_types.dm @@ -234,8 +234,8 @@ icon_deny = "sec-deny" req_access = list(ACCESS_MARINE_BRIG) products = list( - /obj/item/handcuffs = 8, - /obj/item/handcuffs/zip = 10, + /obj/item/restraint/handcuffs = 8, + /obj/item/restraint/handcuffs/zip = 10, /obj/item/explosive/grenade/flashbang = 4, /obj/item/weapon/gun/energy/taser = 4, /obj/item/reagent_container/spray/pepper = 4, @@ -263,7 +263,7 @@ hacking_safety = TRUE wrenchable = FALSE products = list( - /obj/item/handcuffs/zip = 40, + /obj/item/restraint/handcuffs/zip = 40, /obj/item/explosive/grenade/flashbang = 20, /obj/item/explosive/grenade/custom/teargas = 40, /obj/item/ammo_magazine/smg/m39/rubber = 40, diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index fcd431c33d26..d0bdb20265ae 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -664,13 +664,13 @@ cases. Override_icon_state should be a list.*/ if(WEAR_HANDCUFFS) if(human.handcuffed) return FALSE - if(!istype(src, /obj/item/handcuffs)) + if(!istype(src, /obj/item/restraint/handcuffs)) return FALSE return TRUE if(WEAR_LEGCUFFS) if(human.legcuffed) return FALSE - if(!istype(src, /obj/item/legcuffs)) + if(!istype(src, /obj/item/restraint/legcuffs)) return FALSE return TRUE if(WEAR_IN_ACCESSORY) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 2137b41d86bf..12b90b14e584 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -1,52 +1,40 @@ -/obj/item/handcuffs - name = "handcuffs" - desc = "Use this to keep prisoners in line." - gender = PLURAL - icon = 'icons/obj/items/items.dmi' - icon_state = "handcuff" - flags_atom = FPRINT|CONDUCT - flags_equip_slot = SLOT_WAIST - throwforce = 5 - w_class = SIZE_SMALL - throw_speed = SPEED_SLOW - throw_range = 5 - matter = list("metal" = 500) - - var/dispenser = 0 +/obj/item/restraint + /// SLOT_HANDS or SLOT_LEGS, for handcuffs or legcuffs + var/target_zone = SLOT_HANDS + /// How long to break out var/breakouttime = 1 MINUTES /// determines if handcuffs will be deleted on removal var/single_use = 0 var/cuff_sound = 'sound/weapons/handcuffs.ogg' /// how many deciseconds it takes to cuff someone var/cuff_delay = 4 SECONDS + /// If can be applied to people manually + var/manual = TRUE -/obj/item/handcuffs/attack(mob/living/carbon/C, mob/user) - if(!istype(C)) +/obj/item/restraint/attack(mob/living/carbon/attacked_carbon, mob/user) + if(!istype(attacked_carbon) || !manual) return ..() - if (!istype(user, /mob/living/carbon/human)) + if (!ishuman(user)) to_chat(user, SPAN_DANGER("You don't have the dexterity to do this!")) return - if(!C.handcuffed) - place_handcuffs(C, user) - -/obj/item/handcuffs/get_mob_overlay(mob/user_mob, slot) - var/image/ret = ..() - - var/image/handcuffs = overlay_image('icons/mob/mob.dmi', "handcuff1", color, RESET_COLOR) - ret.overlays += handcuffs - - return ret - -/obj/item/handcuffs/proc/place_handcuffs(mob/living/carbon/target, mob/user) + switch(target_zone) + if(SLOT_HANDS) + if(!attacked_carbon.handcuffed) + place_handcuffs(attacked_carbon, user) + if(SLOT_LEGS) + if(!attacked_carbon.legcuffed) + apply_legcuffs(attacked_carbon, user) + +/obj/item/restraint/proc/place_handcuffs(mob/living/carbon/target, mob/user) playsound(src.loc, cuff_sound, 25, 1, 4) if(user.action_busy) return - if (ishuman(target)) + if(ishuman(target)) var/mob/living/carbon/human/H = target - if (!H.has_limb_for_slot(WEAR_HANDCUFFS)) + if(!H.has_limb_for_slot(WEAR_HANDCUFFS)) to_chat(user, SPAN_DANGER("\The [H] needs at least two wrists before you can cuff them together!")) return @@ -66,59 +54,109 @@ H.equip_to_slot_if_possible(src, WEAR_HANDCUFFS, 1, 0, 1, 1) user.count_niche_stat(STATISTICS_NICHE_HANDCUFF) - else if (ismonkey(target)) + else if(ismonkey(target)) user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [target].")) if(do_after(user, 30, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, target, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) if(src == user.get_active_hand() && !target.handcuffed && Adjacent(user)) user.drop_inv_item_on_ground(src) target.equip_to_slot_if_possible(src, WEAR_HANDCUFFS, 1, 0, 1, 1) +/obj/item/restraint/handcuffs + name = "handcuffs" + desc = "Use this to keep prisoners in line." + gender = PLURAL + icon = 'icons/obj/items/items.dmi' + icon_state = "handcuff" + flags_atom = FPRINT|CONDUCT + flags_equip_slot = SLOT_WAIST + throwforce = 5 + w_class = SIZE_SMALL + throw_speed = SPEED_SLOW + throw_range = 5 + matter = list("metal" = 500) + +/obj/item/restraint/handcuffs/get_mob_overlay(mob/user_mob, slot) + var/image/ret = ..() + + var/image/handcuffs = overlay_image('icons/mob/mob.dmi', "handcuff1", color, RESET_COLOR) + ret.overlays += handcuffs -/obj/item/handcuffs/zip + return ret + +/obj/item/restraint/handcuffs/zip name = "zip cuffs" desc = "Single-use plastic zip tie handcuffs." w_class = SIZE_TINY icon_state = "cuff_zip" - breakouttime = 600 //Deciseconds = 60s + breakouttime = 60 SECONDS cuff_sound = 'sound/weapons/cablecuff.ogg' cuff_delay = 20 -/obj/item/handcuffs/zip/place_handcuffs(mob/living/carbon/target, mob/user) +/obj/item/restraint/handcuffs/zip/place_handcuffs(mob/living/carbon/target, mob/user) ..() flags_item |= DELONDROP -/obj/item/handcuffs/cable +/obj/item/restraint/adjustable/verb/adjust_restraints() + set category = "Object" + set name = "Adjust Restraints" + set desc = "Adjust the restraint size for wrists or ankles." + set src = usr.contents + + if(!ishuman(usr)) + return FALSE + + if(usr.is_mob_incapacitated()) + to_chat(usr, "Not right now.") + return FALSE + + switch(target_zone) + if(SLOT_HANDS) + target_zone = SLOT_LEGS + to_chat(usr, SPAN_NOTICE("[src] has been adjusted to tie around a subject's ankles.")) + if(SLOT_LEGS) + target_zone = SLOT_HANDS + to_chat(usr, SPAN_NOTICE("[src] has been adjusted to tie around a subject's wrists.")) + +/obj/item/restraint/adjustable/get_examine_text(mob/user) + . = ..() + switch(target_zone) + if(SLOT_HANDS) + . += SPAN_RED("Sized for human hands.") + if(SLOT_LEGS) + . += SPAN_RED("Sized for human ankles.") + +/obj/item/restraint/adjustable/cable name = "cable restraints" desc = "Looks like some cables tied together. Could be used to tie something up." icon_state = "cuff_white" - breakouttime = 300 //Deciseconds = 30s + breakouttime = 30 SECONDS cuff_sound = 'sound/weapons/cablecuff.ogg' -/obj/item/handcuffs/cable/red +/obj/item/restraint/adjustable/cable/red color = "#DD0000" -/obj/item/handcuffs/cable/yellow +/obj/item/restraint/adjustable/cable/yellow color = "#DDDD00" -/obj/item/handcuffs/cable/blue +/obj/item/restraint/adjustable/cable/blue color = "#0000DD" -/obj/item/handcuffs/cable/green +/obj/item/restraint/adjustable/cable/green color = "#00DD00" -/obj/item/handcuffs/cable/pink +/obj/item/restraint/adjustable/cable/pink color = "#DD00DD" -/obj/item/handcuffs/cable/orange +/obj/item/restraint/adjustable/cable/orange color = "#DD8800" -/obj/item/handcuffs/cable/cyan +/obj/item/restraint/adjustable/cable/cyan color = "#00DDDD" -/obj/item/handcuffs/cable/white +/obj/item/restraint/adjustable/cable/white color = "#FFFFFF" -/obj/item/handcuffs/cable/attackby(obj/item/I, mob/user as mob) +/obj/item/restraint/adjustable/cable/attackby(obj/item/I, mob/user as mob) ..() if(istype(I, /obj/item/stack/rods)) var/obj/item/stack/rods/R = I @@ -131,10 +169,7 @@ update_icon(user) -/obj/item/handcuffs/cyborg - dispenser = 1 - -/obj/item/handcuffs/cyborg/attack(mob/living/carbon/C as mob, mob/user as mob) +/obj/item/restraint/handcuffs/cyborg/attack(mob/living/carbon/C as mob, mob/user as mob) if(!C.handcuffed) var/turf/p_loc = user.loc var/turf/p_loc_m = C.loc @@ -150,14 +185,14 @@ spawn(30) if(!C) return if(p_loc == user.loc && p_loc_m == C.loc) - C.handcuffed = new /obj/item/handcuffs(C) + C.handcuffed = new /obj/item/restraint/handcuffs(C) C.handcuff_update() -/obj/item/restraints +/obj/item/xeno_restraints name = "xeno restraints" desc = "Use this to hold xenomorphic creatures safely." gender = PLURAL @@ -171,10 +206,9 @@ throw_range = 5 matter = list("metal" = 500) - var/dispenser = 0 var/breakouttime = 2 MINUTES -/obj/item/restraints/attack(mob/living/carbon/C as mob, mob/user as mob) +/obj/item/xeno_restraints/attack(mob/living/carbon/C as mob, mob/user as mob) if(!istype(C, /mob/living/carbon/xenomorph)) to_chat(user, SPAN_DANGER("The cuffs do not fit!")) return @@ -187,7 +221,7 @@ spawn(30) if(!C) return if(p_loc == user.loc && p_loc_m == C.loc) - C.handcuffed = new /obj/item/restraints(C) + C.handcuffed = new /obj/item/xeno_restraints(C) C.handcuff_update() C.visible_message(SPAN_DANGER("[C] has been successfully restrained by [user]!")) qdel(src) diff --git a/code/game/objects/items/legcuffs.dm b/code/game/objects/items/legcuffs.dm index b7201937a290..1d216e6556e2 100644 --- a/code/game/objects/items/legcuffs.dm +++ b/code/game/objects/items/legcuffs.dm @@ -1,4 +1,4 @@ -/obj/item/legcuffs +/obj/item/restraint/legcuffs name = "legcuffs" desc = "Use this to keep prisoners in line." gender = PLURAL @@ -8,48 +8,35 @@ throwforce = 0 w_class = SIZE_MEDIUM - var/breakouttime = 1 MINUTES - /// how many deciseconds it takes to cuff someone - var/cuff_delay = 4 SECONDS - /// If can be applied to people manually - var/manual = TRUE + target_zone = SLOT_LEGS -/obj/item/legcuffs/attack(mob/living/carbon/C, mob/user) - if(!istype(C) || !manual) - return ..() - if (!istype(user, /mob/living/carbon/human)) - to_chat(user, SPAN_DANGER("You don't have the dexterity to do this!")) - return - if(!C.legcuffed) - apply_legcuffs(C, user) - -/obj/item/legcuffs/proc/apply_legcuffs(mob/living/carbon/target, mob/user) - playsound(src.loc, 'sound/weapons/handcuffs.ogg', 25, 1, 4) +/obj/item/restraint/proc/apply_legcuffs(mob/living/carbon/target, mob/user) + playsound(loc, 'sound/weapons/handcuffs.ogg', 25, 1, 4) if(user.action_busy) return FALSE if (ishuman(target)) - var/mob/living/carbon/human/H = target + var/mob/living/carbon/human/human_target = target - if (!H.has_limb_for_slot(WEAR_LEGCUFFS)) - to_chat(user, SPAN_DANGER("\The [H] needs two ankles before you can cuff them together!")) + if (!human_target.has_limb_for_slot(WEAR_LEGCUFFS)) + to_chat(user, SPAN_DANGER("\The [human_target] needs two ankles before you can cuff them together!")) return FALSE - H.attack_log += text("\[[time_stamp()]\] Has been legcuffed (attempt) by [key_name(user)]") - user.attack_log += text("\[[time_stamp()]\] Attempted to legcuff [key_name(H)]") - msg_admin_attack("[key_name(user)] attempted to legcuff [key_name(H)] in [get_area(src)] ([src.loc.x],[src.loc.y],[src.loc.z]).", src.loc.x, src.loc.y, src.loc.z) + human_target.attack_log += text("\[[time_stamp()]\] Has been legcuffed (attempt) by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to legcuff [key_name(human_target)]") + msg_admin_attack("[key_name(user)] attempted to legcuff [key_name(human_target)] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) - user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [H].")) - if(do_after(user, cuff_delay, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, H, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(src == user.get_active_hand() && !H.legcuffed && Adjacent(user)) - if(iscarbon(H)) - if(istype(H.buckled, /obj/structure/bed/roller)) + user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [human_target].")) + if(do_after(user, cuff_delay, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, human_target, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + if(src == user.get_active_hand() && !human_target.legcuffed && Adjacent(user)) + if(iscarbon(human_target)) + if(istype(human_target.buckled, /obj/structure/bed/roller)) to_chat(user, SPAN_DANGER("You cannot legcuff someone who is buckled onto a roller bed.")) return FALSE - if(H.has_limb_for_slot(WEAR_LEGCUFFS)) + if(human_target.has_limb_for_slot(WEAR_LEGCUFFS)) user.drop_inv_item_on_ground(src) - H.equip_to_slot_if_possible(src, WEAR_LEGCUFFS, 1, 0, 1, 1) + human_target.equip_to_slot_if_possible(src, WEAR_LEGCUFFS, 1, 0, 1, 1) user.count_niche_stat(STATISTICS_NICHE_HANDCUFF) else if (ismonkey(target)) @@ -60,7 +47,7 @@ target.equip_to_slot_if_possible(src, WEAR_LEGCUFFS, 1, 0, 1, 1) return TRUE -/obj/item/legcuffs/beartrap +/obj/item/restraint/legcuffs/beartrap name = "bear trap" throw_speed = SPEED_FAST throw_range = 1 @@ -70,17 +57,17 @@ var/armed = FALSE manual = FALSE -/obj/item/legcuffs/beartrap/apply_legcuffs(mob/living/carbon/target, mob/user) +/obj/item/restraint/legcuffs/beartrap/apply_legcuffs(mob/living/carbon/target, mob/user) return FALSE -/obj/item/legcuffs/beartrap/attack_self(mob/user as mob) +/obj/item/restraint/legcuffs/beartrap/attack_self(mob/user as mob) ..() if(ishuman(user) && !user.stat && !user.is_mob_restrained()) armed = !armed icon_state = "beartrap[armed]" to_chat(user, SPAN_NOTICE("[src] is now [armed ? "armed" : "disarmed"]")) -/obj/item/legcuffs/beartrap/Crossed(atom/movable/AM) +/obj/item/restraint/legcuffs/beartrap/Crossed(atom/movable/AM) if(armed) if(ismob(AM)) var/mob/M = AM diff --git a/code/game/objects/items/stacks/cable_coil.dm b/code/game/objects/items/stacks/cable_coil.dm index 077cb801c90d..1dd95464ddd5 100644 --- a/code/game/objects/items/stacks/cable_coil.dm +++ b/code/game/objects/items/stacks/cable_coil.dm @@ -70,7 +70,7 @@ if(src.amount <= 14) to_chat(usr, SPAN_WARNING("You need at least 15 lengths to make restraints!")) return - var/obj/item/handcuffs/cable/B = new /obj/item/handcuffs/cable(usr.loc) + var/obj/item/restraint/adjustable/cable/B = new /obj/item/restraint/adjustable/cable(usr.loc) B.color = color to_chat(usr, SPAN_NOTICE("You wind some cable together to make some restraints.")) src.use(15) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index a977eb880ff5..64053272fe2f 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -334,7 +334,7 @@ /obj/item/explosive/grenade/flashbang, /obj/item/explosive/grenade/custom/teargas, /obj/item/reagent_container/spray/pepper, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/flash, /obj/item/clothing/glasses, /obj/item/ammo_magazine/pistol, @@ -379,7 +379,7 @@ new /obj/item/weapon/gun/energy/taser(src) new /obj/item/device/flash(src) new /obj/item/weapon/baton(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/device/clue_scanner(src) @@ -392,7 +392,7 @@ new /obj/item/weapon/gun/energy/taser(src) new /obj/item/device/flash(src) new /obj/item/weapon/baton(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/ammo_magazine/revolver/upp/shrapnel(src) @@ -409,8 +409,8 @@ new /obj/item/weapon/baton(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/device/clue_scanner(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/explosive/grenade/flashbang(src) /obj/item/storage/belt/security/MP/CMB/synth/fill_preset_inventory() @@ -419,8 +419,8 @@ new /obj/item/weapon/baton(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/device/clue_scanner(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/explosive/grenade/flashbang(src) /obj/item/storage/belt/marine diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 8e4ffb90d2bd..088150508af2 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -345,13 +345,13 @@ icon_state = "handcuff" /obj/item/storage/box/handcuffs/fill_preset_inventory() - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) + new /obj/item/restraint/handcuffs(src) /obj/item/storage/box/zipcuffs @@ -360,20 +360,20 @@ icon_state = "handcuff" /obj/item/storage/box/zipcuffs/fill_preset_inventory() - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) /obj/item/storage/box/zipcuffs/small name = "small box of zip cuffs" @@ -381,13 +381,13 @@ w_class = SIZE_MEDIUM /obj/item/storage/box/zipcuffs/fill_preset_inventory() - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) - new /obj/item/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) + new /obj/item/restraint/handcuffs/zip(src) /obj/item/storage/box/tapes name = "box of regulation tapes" diff --git a/code/game/objects/items/tools/maintenance_tools.dm b/code/game/objects/items/tools/maintenance_tools.dm index 574d08e6a15b..de85ad682731 100644 --- a/code/game/objects/items/tools/maintenance_tools.dm +++ b/code/game/objects/items/tools/maintenance_tools.dm @@ -141,7 +141,7 @@ icon_state = "tac_cutters" /obj/item/tool/wirecutters/attack(mob/living/carbon/C, mob/user) - if((C.handcuffed) && (istype(C.handcuffed, /obj/item/handcuffs/cable))) + if((C.handcuffed) && (istype(C.handcuffed, /obj/item/restraint/adjustable/cable))) user.visible_message("\The [usr] cuts \the [C]'s restraints with \the [src]!",\ "You cut \the [C]'s restraints with \the [src]!",\ "You hear cable being cut.") diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm index 6c711a7bcabe..baa9e9bd8cc9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm @@ -170,7 +170,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) new /obj/item/weapon/gun/energy/taser(src) new /obj/item/weapon/baton(src) new /obj/item/device/flash(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/reagent_container/spray/pepper(src) new /obj/item/storage/pouch/general/medium(src) if(prob(50)) @@ -205,7 +205,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) new /obj/item/storage/backpack/satchel/sec(src) new /obj/item/device/flash(src) new /obj/item/reagent_container/spray/pepper(src) - new /obj/item/handcuffs(src) + new /obj/item/restraint/handcuffs(src) new /obj/item/storage/pouch/general/large(src) /obj/structure/closet/secure_closet/military_officer_spare diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index 4318e1a3b184..0ea035679172 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -68,32 +68,42 @@ /obj/item/clothing/shoes/orange name = "orange shoes" icon_state = "orange" - var/obj/item/handcuffs/chained = null + var/obj/item/restraint/handcuffs/chained = null -/obj/item/clothing/shoes/orange/proc/attach_cuffs(obj/item/handcuffs/cuffs, mob/user as mob) - if (src.chained) return +/obj/item/clothing/shoes/orange/proc/attach_cuffs(obj/item/restraint/cuffs, mob/user as mob) + if(chained) + return FALSE user.drop_held_item() cuffs.forceMove(src) - src.chained = cuffs - src.slowdown = 15 - src.icon_state = "orange1" + chained = cuffs + slowdown = 15 + icon_state = "orange1" + time_to_equip = 2 SECONDS + time_to_unequip = 5 SECONDS + return TRUE /obj/item/clothing/shoes/orange/proc/remove_cuffs(mob/user as mob) - if (!src.chained) return + if(!chained) + return FALSE - user.put_in_hands(src.chained) - src.chained.add_fingerprint(user) + user.put_in_hands(chained) + chained.add_fingerprint(user) - src.slowdown = initial(slowdown) - src.icon_state = "orange" - src.chained = null + slowdown = initial(slowdown) + icon_state = "orange" + chained = null + time_to_equip = initial(time_to_equip) + time_to_unequip = initial(time_to_unequip) + return TRUE /obj/item/clothing/shoes/orange/attack_self(mob/user as mob) ..() remove_cuffs(user) -/obj/item/clothing/shoes/orange/attackby(H as obj, mob/user as mob) +/obj/item/clothing/shoes/orange/attackby(attacking_object as obj, mob/user as mob) ..() - if (istype(H, /obj/item/handcuffs)) - attach_cuffs(H, user) + if(istype(attacking_object, /obj/item/restraint)) + var/obj/item/restraint/cuffs = attacking_object + if(cuffs.target_zone == SLOT_LEGS) + attach_cuffs(cuffs, user) diff --git a/code/modules/clothing/spacesuits/captain.dm b/code/modules/clothing/spacesuits/captain.dm index 26bc03eed608..2643e43b2b6a 100644 --- a/code/modules/clothing/spacesuits/captain.dm +++ b/code/modules/clothing/spacesuits/captain.dm @@ -24,7 +24,7 @@ gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS - allowed = list(/obj/item/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun, /obj/item/ammo_magazine, /obj/item/weapon/baton,/obj/item/handcuffs) + allowed = list(/obj/item/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun, /obj/item/ammo_magazine, /obj/item/weapon/baton,/obj/item/restraint/handcuffs) slowdown = 1.5 armor_melee = CLOTHING_ARMOR_MEDIUMHIGH armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index dd540033b2a2..36dd5f4f04c8 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -43,7 +43,7 @@ icon_state = "pirate" item_state = "pirate" w_class = SIZE_MEDIUM - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen) + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/restraint/handcuffs,/obj/item/tank/emergency_oxygen) slowdown = 0 armor_melee = CLOTHING_ARMOR_MEDIUM armor_bullet = CLOTHING_ARMOR_MEDIUM @@ -93,7 +93,7 @@ /obj/item/clothing/suit/space/compression/uscm name = "\improper MK.50 compression suit" desc = "A heavy, bulky civilian space suit, fitted with armored plates. This specific suit has found its way into the ragtag inventory of the USCM's patrol boat requisitions system." - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/handcuffs,/obj/item/tank) + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/restraint/handcuffs,/obj/item/tank) // Souto man diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 82d461c5ca55..7e9a41c6becc 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -47,7 +47,7 @@ /obj/item/device/flashlight, /obj/item/ammo_magazine/, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/storage/large_holster/machete, /obj/item/storage/belt/gun/m4a3, @@ -81,7 +81,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/explosive/grenade, /obj/item/device/binoculars, /obj/item/attachable/bayonet, @@ -250,7 +250,7 @@ gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen) + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/baton,/obj/item/restraint/handcuffs,/obj/item/tank/emergency_oxygen) slowdown = 1 armor_melee = CLOTHING_ARMOR_HIGH armor_bullet = CLOTHING_ARMOR_HIGH @@ -355,7 +355,7 @@ item_state = "centcom" w_class = SIZE_LARGE//bulky item flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS - allowed = list(/obj/item/weapon/gun,/obj/item/weapon/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen) + allowed = list(/obj/item/weapon/gun,/obj/item/weapon/baton,/obj/item/restraint/handcuffs,/obj/item/tank/emergency_oxygen) flags_inventory = NO_FLAGS flags_inv_hide = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 59e0918550ed..eb99005328bc 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -51,7 +51,7 @@ item_state = "bio_suit" allowed = list( /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 5b97051852a6..589fb3b97221 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -181,11 +181,11 @@ /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, @@ -245,7 +245,7 @@ /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, @@ -310,7 +310,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, @@ -409,7 +409,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 1bdb4ca31176..d0f6d1cc868a 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -20,7 +20,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, @@ -185,7 +185,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, diff --git a/code/modules/clothing/suits/marine_armor/_marine_armor.dm b/code/modules/clothing/suits/marine_armor/_marine_armor.dm index fd926c4ffd50..d4a355055485 100644 --- a/code/modules/clothing/suits/marine_armor/_marine_armor.dm +++ b/code/modules/clothing/suits/marine_armor/_marine_armor.dm @@ -270,7 +270,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/explosive/grenade, /obj/item/device/binoculars, /obj/item/attachable/bayonet, diff --git a/code/modules/clothing/suits/marine_armor/ert.dm b/code/modules/clothing/suits/marine_armor/ert.dm index 19009606db35..429133657267 100644 --- a/code/modules/clothing/suits/marine_armor/ert.dm +++ b/code/modules/clothing/suits/marine_armor/ert.dm @@ -41,7 +41,7 @@ /obj/item/device/flashlight, /obj/item/ammo_magazine/, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/explosive/grenade, @@ -500,7 +500,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/device/flashlight, @@ -561,7 +561,7 @@ /obj/item/device/flashlight, /obj/item/ammo_magazine/, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/explosive/grenade, @@ -596,7 +596,7 @@ /obj/item/device/flashlight, /obj/item/ammo_magazine/, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/explosive/grenade, @@ -699,7 +699,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/explosive/grenade, /obj/item/device/binoculars, /obj/item/attachable/bayonet, @@ -747,7 +747,7 @@ /obj/item/device/flashlight, /obj/item/ammo_magazine/, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/explosive/grenade, diff --git a/code/modules/clothing/suits/marine_coat.dm b/code/modules/clothing/suits/marine_coat.dm index 2dd93eb66aee..78c8154e1810 100644 --- a/code/modules/clothing/suits/marine_coat.dm +++ b/code/modules/clothing/suits/marine_coat.dm @@ -24,7 +24,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, /obj/item/storage/belt/gun/m4a3, diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 54148d4f7076..252b99e124bc 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -128,7 +128,7 @@ /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/device/taperecorder, @@ -153,7 +153,7 @@ /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/device/taperecorder, @@ -290,7 +290,7 @@ item_state = "webbing" allowed = list( /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, @@ -318,7 +318,7 @@ item_state = "synth_utility_vest" allowed = list( /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, @@ -455,7 +455,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/tool/lighter, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/binoculars, /obj/item/attachable/bayonet, diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 133265b34b7e..3b415cf0f9e8 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -112,7 +112,7 @@ allowed = list( /obj/item/weapon/gun, /obj/item/weapon/baton, - /obj/item/handcuffs, + /obj/item/restraint/handcuffs, /obj/item/device/flashlight, /obj/item/device/healthanalyzer, diff --git a/code/modules/gear_presets/cmb.dm b/code/modules/gear_presets/cmb.dm index 7bf6cbb8325d..bf49ef84bf20 100644 --- a/code/modules/gear_presets/cmb.dm +++ b/code/modules/gear_presets/cmb.dm @@ -96,7 +96,7 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, WEAR_J_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_R_STORE) @@ -112,7 +112,7 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/highpower, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, WEAR_J_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_R_STORE) @@ -128,7 +128,7 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/mp5, WEAR_J_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector, WEAR_L_HAND) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) @@ -278,8 +278,8 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full, WEAR_L_HAND) //pouches new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/flashbang, WEAR_IN_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical, WEAR_R_STORE) diff --git a/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm index 8cd72c58ad80..44d029d44c87 100644 --- a/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm +++ b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm @@ -159,7 +159,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/droppouch, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/scalpel/manager, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/weylandyutani, WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/nailgun, WEAR_IN_JACKET) diff --git a/code/modules/gear_presets/synths.dm b/code/modules/gear_presets/synths.dm index 9a181c817020..af96c1ed4f9a 100644 --- a/code/modules/gear_presets/synths.dm +++ b/code/modules/gear_presets/synths.dm @@ -427,8 +427,8 @@ WEAR_BODY = /obj/item/clothing/under/marine/veteran/pmc, WEAR_ACCESSORY = /obj/item/clothing/accessory/storage/droppouch, WEAR_IN_ACCESSORY = /obj/item/explosive/grenade/flashbang, - WEAR_IN_ACCESSORY = /obj/item/handcuffs/zip, - WEAR_IN_ACCESSORY = /obj/item/handcuffs/zip, + WEAR_IN_ACCESSORY = /obj/item/restraint/handcuffs/zip, + WEAR_IN_ACCESSORY = /obj/item/restraint/handcuffs/zip, WEAR_BACK = /obj/item/storage/backpack/lightpack, WEAR_IN_BACK = /obj/item/device/binoculars, WEAR_JACKET = /obj/item/clothing/suit/storage/hazardvest/black, @@ -703,7 +703,7 @@ new_human.equip_to_slot_or_del(new /obj/item/stack/nanopaste(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/stack/nanopaste(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/tranquilizer(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm index e73db8431f32..846fbd3c0e40 100644 --- a/code/modules/gear_presets/upp.dm +++ b/code/modules/gear_presets/upp.dm @@ -2945,8 +2945,8 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 8) @@ -3076,8 +3076,8 @@ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 5) @@ -3239,8 +3239,8 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/box/handcuffs, WEAR_IN_BACK) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 7) @@ -3381,8 +3381,8 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 8) @@ -3420,8 +3420,8 @@ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_JACKET) spawn_weapon(/obj/item/weapon/gun/rifle/type71/carbine/commando, /obj/item/ammo_magazine/rifle/type71, new_human, 0, 5) @@ -3452,8 +3452,8 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/box/handcuffs, WEAR_IN_BACK) //*****************************************************************************************************/ diff --git a/code/modules/gear_presets/uscm_event.dm b/code/modules/gear_presets/uscm_event.dm index ce36f1fd807f..a68f15bd497f 100644 --- a/code/modules/gear_presets/uscm_event.dm +++ b/code/modules/gear_presets/uscm_event.dm @@ -94,7 +94,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/general(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/cotablet(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/mateba_case/general(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human.back), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human.back), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/flash, WEAR_IN_JACKET) @@ -166,7 +166,7 @@ //TODO: preload all of those items before equipping the backpack //Otherwise, if you spawn the spy next to other people //they will see messages for them putting guns and explosives into their backpack... - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/np92/suppressed/tranq(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92/tranq(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92/tranq(new_human.back), WEAR_IN_BACK) @@ -229,7 +229,7 @@ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/flash(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/combat(new_human), WEAR_J_STORE) /datum/equipment_preset/uscm_event/provost/tml @@ -272,7 +272,7 @@ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/flash(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human), WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/combat(new_human), WEAR_J_STORE) /datum/equipment_preset/uscm_event/provost/inspector @@ -309,7 +309,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/MP/provost/light/flexi(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/flash(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human), WEAR_IN_JACKET) /datum/equipment_preset/uscm_event/provost/inspector/advisor name = "Provost Advisor" diff --git a/code/modules/gear_presets/uscm_police.dm b/code/modules/gear_presets/uscm_police.dm index 14e35d990348..76df4d6de2be 100644 --- a/code/modules/gear_presets/uscm_police.dm +++ b/code/modules/gear_presets/uscm_police.dm @@ -226,8 +226,8 @@ new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large/beanbag/riot(new_human), WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large/beanbag/riot(new_human), WEAR_R_STORE) if(new_human.disabilities & NEARSIGHTED) diff --git a/code/modules/gear_presets/wy_goons.dm b/code/modules/gear_presets/wy_goons.dm index a8f3a443311e..586963db16fa 100644 --- a/code/modules/gear_presets/wy_goons.dm +++ b/code/modules/gear_presets/wy_goons.dm @@ -74,9 +74,9 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST) @@ -111,9 +111,9 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST) diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 6ff2a96b72f0..03a8abef22af 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -5,7 +5,7 @@ var/life_tick = 0 // The amount of life ticks that have processed on this mob. - var/obj/item/handcuffs/handcuffed = null //Whether or not the mob is handcuffed + var/obj/item/restraint/handcuffs/handcuffed = null //Whether or not the mob is handcuffed var/overeat_cooldown = 0 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 44286b5fabe0..4b3d2257eb9e 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -163,7 +163,7 @@ var/datum/skills/skills = null //the knowledge you have about certain abilities and actions (e.g. do you how to do surgery?) //see skills.dm in #define folder and code/datums/skills.dm for more info - var/obj/item/legcuffs/legcuffed = null //Same as handcuffs but for legs. Bear traps use this. + var/obj/item/restraint/legcuffs/legcuffed = null //Same as handcuffs but for legs. Bear traps use this. var/list/viruses = list() //List of active diseases diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index b605e7115c10..5992516c4987 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -2905,7 +2905,7 @@ /area/bigredv2/outside/marshal_office) "aiG" = ( /obj/structure/surface/table, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/structure/transmitter/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_color = "red"; @@ -2955,7 +2955,7 @@ /area/bigredv2/outside/marshal_office) "aiM" = ( /obj/structure/surface/table, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/marshal_office) @@ -16599,7 +16599,7 @@ /area/bigredv2/outside/general_store) "aVL" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/handcuffs/cable, +/obj/item/restraint/adjustable/cable, /turf/open/floor, /area/bigredv2/outside/general_store) "aVM" = ( @@ -17047,7 +17047,7 @@ /area/bigredv2/outside/general_store) "aWY" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/handcuffs/cable/cyan, +/obj/item/restraint/adjustable/cable/cyan, /turf/open/floor, /area/bigredv2/outside/general_store) "aXb" = ( diff --git a/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm b/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm index 633a79f6acb9..8f155a1eabef 100644 --- a/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm +++ b/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm @@ -250,7 +250,7 @@ pixel_x = -11; pixel_y = 1 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 1; pixel_y = 5 }, @@ -432,7 +432,7 @@ /area/bigredv2/caves_sw) "OV" = ( /obj/structure/surface/rack, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 1; pixel_y = 5 }, @@ -509,7 +509,7 @@ "Ue" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bundle, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_y = -3 }, /turf/open/floor/plating{ diff --git a/maps/map_files/BigRed/sprinkles/40.viro_open.dmm b/maps/map_files/BigRed/sprinkles/40.viro_open.dmm index 05e058c4071a..f58cfc3b7977 100644 --- a/maps/map_files/BigRed/sprinkles/40.viro_open.dmm +++ b/maps/map_files/BigRed/sprinkles/40.viro_open.dmm @@ -493,7 +493,7 @@ /area/bigredv2/outside/virology) "bH" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor{ dir = 6; icon_state = "asteroidwarning" diff --git a/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm b/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm index 8907ab630fcb..7a3bdb9df798 100644 --- a/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm +++ b/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm @@ -44,7 +44,7 @@ /area/bigredv2/outside/filtration_cave_cas) "el" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor, /area/bigred/ground/security) "ge" = ( diff --git a/maps/map_files/BigRed/standalone/crashlanding-eva.dmm b/maps/map_files/BigRed/standalone/crashlanding-eva.dmm index 33eefe09518f..ad059bf053f2 100644 --- a/maps/map_files/BigRed/standalone/crashlanding-eva.dmm +++ b/maps/map_files/BigRed/standalone/crashlanding-eva.dmm @@ -448,7 +448,7 @@ /area/bigredv2/outside/general_offices) "cb" = ( /obj/structure/surface/rack, -/obj/item/restraints, +/obj/item/xeno_restraints, /turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "cc" = ( diff --git a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm index 48bac15b3127..0a52f3f9d17d 100644 --- a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm +++ b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm @@ -254,7 +254,7 @@ /area/bigredv2/outside/office_complex) "aU" = ( /obj/structure/surface/rack, -/obj/item/restraints, +/obj/item/xeno_restraints, /turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "aV" = ( diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm index 9c09a95e9f94..c70ff34cc7ef 100644 --- a/maps/map_files/CORSAT/Corsat.dmm +++ b/maps/map_files/CORSAT/Corsat.dmm @@ -4896,7 +4896,7 @@ /area/corsat/gamma/airlock/north) "aoq" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/corsat{ dir = 4; icon_state = "red" @@ -13708,7 +13708,7 @@ /area/corsat/omega/airlocknorth/id) "aMA" = ( /obj/structure/surface/table/reinforced, -/obj/item/restraints, +/obj/item/xeno_restraints, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -27158,7 +27158,7 @@ /area/corsat/gamma/medbay) "byJ" = ( /obj/structure/surface/rack, -/obj/item/restraints, +/obj/item/xeno_restraints, /turf/open/floor/corsat{ dir = 1; icon_state = "purplewhite" @@ -28911,7 +28911,7 @@ /area/corsat/sigma/south/security) "bDu" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/corsat{ dir = 8; icon_state = "red" @@ -29590,8 +29590,8 @@ /area/corsat/gamma/security) "bFF" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/corsat{ dir = 8; icon_state = "red" @@ -33069,8 +33069,8 @@ /area/corsat/omega/checkpoint) "bRn" = ( /obj/structure/surface/rack, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/corsat{ dir = 4; icon_state = "red" @@ -33274,7 +33274,7 @@ "bSb" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, -/obj/item/handcuffs/zip, +/obj/item/restraint/handcuffs/zip, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -33313,8 +33313,8 @@ name = "riot cabinet"; req_access_txt = "100" }, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/corsat{ icon_state = "red" }, @@ -35406,7 +35406,7 @@ dir = 8 }, /obj/structure/surface/table/reinforced, -/obj/item/restraints, +/obj/item/xeno_restraints, /turf/open/floor/corsat{ dir = 8; icon_state = "red" @@ -44677,8 +44677,8 @@ name = "riot cabinet"; req_access_txt = "100" }, -/obj/item/restraints, -/obj/item/restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, /turf/open/floor/corsat{ dir = 6; icon_state = "red" @@ -63075,7 +63075,7 @@ /area/corsat/omega/hangar) "wrd" = ( /obj/structure/surface/rack, -/obj/item/restraints, +/obj/item/xeno_restraints, /turf/open/shuttle/dropship{ icon_state = "rasputin15" }, @@ -63841,7 +63841,7 @@ /area/corsat/omega/complex) "wUd" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/corsat{ dir = 8; icon_state = "red" diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm index a86fb326152d..19b3b9199ce2 100644 --- a/maps/map_files/DesertDam/Desert_Dam.dmm +++ b/maps/map_files/DesertDam/Desert_Dam.dmm @@ -18539,7 +18539,7 @@ }, /area/desert_dam/interior/dam_interior/north_tunnel) "bfk" = ( -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton, /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/interior/wood/alt, @@ -26207,7 +26207,7 @@ /area/desert_dam/exterior/valley/valley_mining) "bFf" = ( /obj/structure/surface/table, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/prison{ dir = 10; icon_state = "darkred2" @@ -37633,7 +37633,7 @@ /area/desert_dam/building/warehouse/breakroom) "cqj" = ( /obj/structure/surface/table, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/prison{ icon_state = "darkred2" }, diff --git a/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm b/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm index d0ebbc5039d5..6c7e859826db 100644 --- a/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm +++ b/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm @@ -139,7 +139,7 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/legcuffs/beartrap{ +/obj/item/restraint/legcuffs/beartrap{ pixel_x = -1; pixel_y = 8 }, diff --git a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm index 97f0248ff6e8..02d55ee717a9 100644 --- a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm +++ b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm @@ -3454,10 +3454,10 @@ /area/prison/research/secret) "aiZ" = ( /obj/structure/surface/rack, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/prison{ dir = 8; icon_state = "darkpurple2" @@ -13800,7 +13800,7 @@ /area/prison/command/secretary_office) "aMK" = ( /obj/structure/closet, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/clothing/mask/muzzle, /obj/item/weapon/chainofcommand, /turf/open/floor/prison{ diff --git a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm index f81f67e45a80..0f3c1352b993 100644 --- a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm +++ b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm @@ -444,7 +444,7 @@ "anl" = ( /obj/item/pamphlet/engineer, /obj/structure/closet, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ icon_state = "darkredfull2" @@ -2947,7 +2947,7 @@ /area/fiorina/lz/near_lzI) "bMG" = ( /obj/structure/surface/rack, -/obj/item/handcuffs/zip, +/obj/item/restraint/handcuffs/zip, /turf/open/floor/prison{ icon_state = "darkredfull2" }, @@ -18049,7 +18049,7 @@ /area/fiorina/tumor/civres) "kWv" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/prison, /area/fiorina/station/security) "kWx" = ( @@ -19576,7 +19576,7 @@ }, /area/fiorina/station/lowsec) "lNv" = ( -/obj/item/handcuffs/cable/pink, +/obj/item/restraint/adjustable/cable/pink, /turf/open/floor/prison/chapel_carpet{ dir = 1; icon_state = "doubleside" @@ -31004,7 +31004,7 @@ /area/fiorina/tumor/ice_lab) "sQC" = ( /obj/structure/surface/rack, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/prison{ icon_state = "darkredfull2" }, @@ -38286,7 +38286,7 @@ /area/fiorina/station/chapel) "xoK" = ( /obj/structure/closet, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/clothing/mask/muzzle, /obj/item/weapon/chainofcommand, /turf/open/floor/wood, diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm index 6662ebf081f0..ce60474959f1 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.yardbasketball.dmm @@ -36,7 +36,7 @@ "f" = ( /obj/effect/landmark/corpsespawner/ua_riot, /obj/effect/decal/cleanable/blood, -/obj/item/handcuffs/zip{ +/obj/item/restraint/handcuffs/zip{ pixel_y = -12 }, /turf/open/floor/wood, diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/25.researchprestine.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/25.researchprestine.dmm index 8df7c92de478..9ff0e6e4a246 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/25.researchprestine.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/25.researchprestine.dmm @@ -696,11 +696,11 @@ dir = 1; pixel_y = 21 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = -3; pixel_y = 10 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 4 }, /turf/open/floor/prison{ diff --git a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm index 74d5921e30de..5326d72de2a8 100644 --- a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm +++ b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm @@ -12163,7 +12163,7 @@ /area/ice_colony/surface/command/crisis) "aIv" = ( /obj/structure/surface/table/woodentable, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/tool/stamp, /turf/open/floor/wood, /area/ice_colony/surface/command/crisis) @@ -28871,7 +28871,7 @@ /area/ice_colony/underground/security/interrogation) "bJH" = ( /obj/structure/surface/table/reinforced, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/structure/machinery/flasher_button{ id = "sec_checkpoint"; pixel_y = 24 @@ -30138,7 +30138,7 @@ "bMX" = ( /obj/item/book/manual/marine_law, /obj/structure/surface/table/reinforced, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -33966,7 +33966,7 @@ /area/ice_colony/underground/medical/storage) "bXR" = ( /obj/structure/surface/table/woodentable, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton, /turf/open/floor/wood, /area/ice_colony/underground/security/marshal) diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm index 7ff89252a916..583fabc57da8 100644 --- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm +++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm @@ -2249,7 +2249,7 @@ /area/shiva/interior/colony/medseceng) "akT" = ( /obj/structure/surface/table/woodentable, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton, /turf/open/floor/wood, /area/shiva/interior/colony/medseceng) @@ -20197,7 +20197,7 @@ "pCJ" = ( /obj/item/book/manual/marine_law, /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/shiva{ dir = 1; icon_state = "red" @@ -22215,7 +22215,7 @@ /area/shiva/interior/colony/medseceng) "rMe" = ( /obj/structure/surface/table, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/tool/stamp, /turf/open/floor/shiva{ icon_state = "bluefull" @@ -26357,7 +26357,7 @@ /turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_left_to_right, /area/shiva/interior/aerodrome) "vWf" = ( -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/shiva{ dir = 8; icon_state = "redfull" diff --git a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm index 6bc30f573dd2..f72925005207 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -17303,8 +17303,8 @@ /area/lv522/atmos/cargo_intake) "hlH" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs/cable/white, -/obj/item/handcuffs/cable/white{ +/obj/item/restraint/adjustable/cable/white, +/obj/item/restraint/adjustable/cable/white{ pixel_y = 4 }, /turf/open/floor/strata{ @@ -18339,13 +18339,13 @@ /area/lv522/indoors/c_block/casino) "hIz" = ( /obj/structure/surface/table/almayer, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_y = 12 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_y = 6 }, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/classic_baton, /turf/open/floor/prison{ icon_state = "darkredfull2" diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm index ffe928acf3ae..b5fcadc5f1d5 100644 --- a/maps/map_files/LV624/LV624.dmm +++ b/maps/map_files/LV624/LV624.dmm @@ -9434,7 +9434,7 @@ /area/lv624/lazarus/security) "aPv" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/storage/firstaid/adv, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor{ @@ -24733,10 +24733,10 @@ /area/lv624/ground/caves/east_caves) "xwQ" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs/cable/white{ +/obj/item/restraint/adjustable/cable/white{ pixel_y = 4 }, -/obj/item/handcuffs/cable/white, +/obj/item/restraint/adjustable/cable/white, /turf/open/floor{ icon_state = "whiteyellow" }, diff --git a/maps/map_files/LV624/maintemple/1.intact.dmm b/maps/map_files/LV624/maintemple/1.intact.dmm index 8f7c741d80c6..ea69a6c4c787 100644 --- a/maps/map_files/LV624/maintemple/1.intact.dmm +++ b/maps/map_files/LV624/maintemple/1.intact.dmm @@ -515,7 +515,7 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/restraints, +/obj/item/xeno_restraints, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/strata{ color = "#5e5d5d"; diff --git a/maps/map_files/LV624/standalone/clfship.dmm b/maps/map_files/LV624/standalone/clfship.dmm index c24a511cfc29..82acdb4096e0 100644 --- a/maps/map_files/LV624/standalone/clfship.dmm +++ b/maps/map_files/LV624/standalone/clfship.dmm @@ -1328,11 +1328,11 @@ "IP" = ( /obj/structure/bed, /obj/item/bedsheet/yellow, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 4; pixel_y = 4 }, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/almayer{ dir = 6; icon_state = "green" diff --git a/maps/map_files/LV624/standalone/corporatedome.dmm b/maps/map_files/LV624/standalone/corporatedome.dmm index 0778d0c61564..9c3eddbac441 100644 --- a/maps/map_files/LV624/standalone/corporatedome.dmm +++ b/maps/map_files/LV624/standalone/corporatedome.dmm @@ -1216,7 +1216,7 @@ "ZG" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/scientist, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor{ icon_state = "dark" }, diff --git a/maps/map_files/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm index fbcba0174790..6c2620333831 100644 --- a/maps/map_files/New_Varadero/New_Varadero.dmm +++ b/maps/map_files/New_Varadero/New_Varadero.dmm @@ -2319,7 +2319,7 @@ pixel_x = -5; pixel_y = 1 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 2; pixel_y = 16 }, @@ -2877,7 +2877,7 @@ }, /area/varadero/interior/chapel) "bPL" = ( -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 2; pixel_y = 16 }, @@ -22001,7 +22001,7 @@ /area/varadero/interior/hall_SE) "ohi" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/structure/machinery/flasher_button{ id = "sec_checkpoint"; pixel_y = 24 @@ -28073,7 +28073,7 @@ /area/varadero/interior/caves/east) "rTu" = ( /obj/structure/surface/table/woodentable, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton, /turf/open/floor/wood, /area/varadero/interior/security) @@ -33857,7 +33857,7 @@ "vEa" = ( /obj/structure/closet/crate/medical, /obj/item/tool/wirecutters/clippers, -/obj/item/handcuffs/zip, +/obj/item/restraint/handcuffs/zip, /obj/item/tool/surgery/surgicaldrill, /obj/item/storage/firstaid/adv, /turf/open/floor/shiva{ diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm index c781fdff23cc..803e5fc2529b 100644 --- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm +++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm @@ -40148,7 +40148,7 @@ "ulv" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/pistol/t73, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/strata{ icon_state = "red1" }, diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index 0d15799978a9..59bb9d852c26 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -34330,9 +34330,9 @@ /area/almayer/hallways/lower/port_midship_hallway) "hAG" = ( /obj/structure/closet/crate/internals, -/obj/item/handcuffs/cable/blue, -/obj/item/handcuffs/cable/blue, -/obj/item/handcuffs/cable/cyan, +/obj/item/restraint/adjustable/cable/blue, +/obj/item/restraint/adjustable/cable/blue, +/obj/item/restraint/adjustable/cable/cyan, /obj/effect/spawner/random/toolbox, /turf/open/shuttle/dropship{ icon_state = "rasputin3" @@ -54537,7 +54537,7 @@ "oFn" = ( /obj/structure/surface/table/almayer, /obj/item/tool/wirecutters/clippers, -/obj/item/handcuffs/zip, +/obj/item/restraint/handcuffs/zip, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -67189,7 +67189,7 @@ pixel_x = -5; pixel_y = 5 }, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/storage/firstaid/regular, /obj/structure/machinery/light{ dir = 8 @@ -77538,7 +77538,7 @@ pixel_y = 5 }, /obj/item/paper, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/clothing/mask/cigarette/cigar/classic, /obj/item/coin/silver{ desc = "A small coin, bearing the falling falcons insignia."; diff --git a/maps/map_files/generic/Admin_level.dmm b/maps/map_files/generic/Admin_level.dmm index d085d7a99b0c..36538b22cb60 100644 --- a/maps/map_files/generic/Admin_level.dmm +++ b/maps/map_files/generic/Admin_level.dmm @@ -1264,7 +1264,7 @@ "Dw" = ( /obj/structure/closet/secure_closet/brig, /obj/item/book/manual/marine_law, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/almayer{ dir = 4; icon_state = "red" diff --git a/maps/predship/huntership.dmm b/maps/predship/huntership.dmm index 7c5d633286f0..b4499208ebee 100644 --- a/maps/predship/huntership.dmm +++ b/maps/predship/huntership.dmm @@ -2636,30 +2636,30 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/legcuffs{ +/obj/item/restraint/legcuffs{ pixel_y = 5 }, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/shuttle/predship, /area/yautja) "GM" = ( @@ -3146,12 +3146,12 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/restraints, -/obj/item/restraints, -/obj/item/restraints, -/obj/item/restraints, -/obj/item/restraints, -/obj/item/restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, +/obj/item/xeno_restraints, /turf/open/shuttle/predship, /area/yautja) "VT" = ( diff --git a/maps/predship/regular.dmm b/maps/predship/regular.dmm index 895e8ae84c91..984bd4e7c65a 100644 --- a/maps/predship/regular.dmm +++ b/maps/predship/regular.dmm @@ -1136,12 +1136,12 @@ /area/yautja) "dk" = ( /obj/structure/surface/table/reinforced, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/holofloor{ dir = 2; icon_state = "cult" @@ -1149,12 +1149,12 @@ /area/yautja) "dl" = ( /obj/structure/surface/table/reinforced, -/obj/item/legcuffs, -/obj/item/legcuffs, -/obj/item/legcuffs, -/obj/item/legcuffs, -/obj/item/legcuffs, -/obj/item/legcuffs, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, +/obj/item/restraint/legcuffs, /turf/open/floor/holofloor{ dir = 2; icon_state = "cult" diff --git a/maps/shuttles/ert_shuttle_big.dmm b/maps/shuttles/ert_shuttle_big.dmm index f3983899e249..a07c57e00a20 100644 --- a/maps/shuttles/ert_shuttle_big.dmm +++ b/maps/shuttles/ert_shuttle_big.dmm @@ -84,9 +84,9 @@ pixel_x = -2; pixel_y = 3 }, -/obj/item/handcuffs, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/almayer{ icon_state = "plate" }, diff --git a/maps/templates/lazy_templates/clf_ert_station.dmm b/maps/templates/lazy_templates/clf_ert_station.dmm index 7347be914da2..23d8c64eb299 100644 --- a/maps/templates/lazy_templates/clf_ert_station.dmm +++ b/maps/templates/lazy_templates/clf_ert_station.dmm @@ -804,7 +804,7 @@ "sx" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "sC" = ( @@ -1803,8 +1803,8 @@ "Ro" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/handcuffs, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/wood, /area/adminlevel/ert_station/clf_station) "Rr" = ( diff --git a/maps/templates/lazy_templates/freelancer_ert_station.dmm b/maps/templates/lazy_templates/freelancer_ert_station.dmm index bf9709e2150d..74c368e4f0b6 100644 --- a/maps/templates/lazy_templates/freelancer_ert_station.dmm +++ b/maps/templates/lazy_templates/freelancer_ert_station.dmm @@ -811,7 +811,7 @@ "Hg" = ( /obj/structure/closet/secure_closet/brig, /obj/item/book/manual/marine_law, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/almayer{ dir = 4; icon_state = "red" diff --git a/maps/templates/lazy_templates/twe_ert_station.dmm b/maps/templates/lazy_templates/twe_ert_station.dmm index 78c98b4d16a9..037f20845e33 100644 --- a/maps/templates/lazy_templates/twe_ert_station.dmm +++ b/maps/templates/lazy_templates/twe_ert_station.dmm @@ -1468,11 +1468,11 @@ }, /area/adminlevel/ert_station/royal_marines_station) "Cm" = ( -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_y = 12 }, /obj/structure/surface/table/almayer, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/item/weapon/baton{ pixel_x = -12 }, @@ -2658,11 +2658,11 @@ "VL" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/suit/straight_jacket, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = -4; pixel_y = 1 }, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ icon_state = "redfull" diff --git a/maps/templates/lazy_templates/upp_ert_station.dmm b/maps/templates/lazy_templates/upp_ert_station.dmm index ae2a8ad40c47..fd1e6186bf73 100644 --- a/maps/templates/lazy_templates/upp_ert_station.dmm +++ b/maps/templates/lazy_templates/upp_ert_station.dmm @@ -828,11 +828,11 @@ "me" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clothing/suit/straight_jacket, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = -4; pixel_y = 1 }, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor/strata{ icon_state = "red1" }, From 667cf9b73c8a09e5e02a77271467ccdb28c8bc9a Mon Sep 17 00:00:00 2001 From: forest2001 Date: Sat, 9 Mar 2024 18:54:07 +0000 Subject: [PATCH 3/6] var names x --- code/game/objects/items/handcuffs.dm | 55 ++++++++++++++-------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 12b90b14e584..af71b806ed42 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -32,26 +32,26 @@ return if(ishuman(target)) - var/mob/living/carbon/human/H = target + var/mob/living/carbon/human/human_mob = target - if(!H.has_limb_for_slot(WEAR_HANDCUFFS)) - to_chat(user, SPAN_DANGER("\The [H] needs at least two wrists before you can cuff them together!")) + if(!human_mob.has_limb_for_slot(WEAR_HANDCUFFS)) + to_chat(user, SPAN_DANGER("\The [human_mob] needs at least two wrists before you can cuff them together!")) return - H.attack_log += text("\[[time_stamp()]\] Has been handcuffed (attempt) by [key_name(user)]") - user.attack_log += text("\[[time_stamp()]\] Attempted to handcuff [key_name(H)]") - msg_admin_attack("[key_name(user)] attempted to handcuff [key_name(H)] in [get_area(src)] ([src.loc.x],[src.loc.y],[src.loc.z]).", src.loc.x, src.loc.y, src.loc.z) + human_mob.attack_log += text("\[[time_stamp()]\] Has been handcuffed (attempt) by [key_name(user)]") + user.attack_log += text("\[[time_stamp()]\] Attempted to handcuff [key_name(human_mob)]") + msg_admin_attack("[key_name(user)] attempted to handcuff [key_name(human_mob)] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) - user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [H].")) - if(do_after(user, cuff_delay, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, H, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - if(src == user.get_active_hand() && !H.handcuffed && Adjacent(user)) - if(iscarbon(H)) - if(istype(H.buckled, /obj/structure/bed/roller)) + user.visible_message(SPAN_NOTICE("[user] tries to put [src] on [human_mob].")) + if(do_after(user, cuff_delay, INTERRUPT_MOVED, BUSY_ICON_HOSTILE, human_mob, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + if(src == user.get_active_hand() && !human_mob.handcuffed && Adjacent(user)) + if(iscarbon(human_mob)) + if(istype(human_mob.buckled, /obj/structure/bed/roller)) to_chat(user, SPAN_DANGER("You cannot handcuff someone who is buckled onto a roller bed.")) return - if(H.has_limb_for_slot(WEAR_HANDCUFFS)) + if(human_mob.has_limb_for_slot(WEAR_HANDCUFFS)) user.drop_inv_item_on_ground(src) - H.equip_to_slot_if_possible(src, WEAR_HANDCUFFS, 1, 0, 1, 1) + human_mob.equip_to_slot_if_possible(src, WEAR_HANDCUFFS, 1, 0, 1, 1) user.count_niche_stat(STATISTICS_NICHE_HANDCUFF) else if(ismonkey(target)) @@ -168,25 +168,24 @@ qdel(src) update_icon(user) - -/obj/item/restraint/handcuffs/cyborg/attack(mob/living/carbon/C as mob, mob/user as mob) - if(!C.handcuffed) +/obj/item/restraint/handcuffs/cyborg/attack(mob/living/carbon/carbon_mob as mob, mob/user as mob) + if(!carbon_mob.handcuffed) var/turf/p_loc = user.loc - var/turf/p_loc_m = C.loc - playsound(src.loc, cuff_sound, 25, 1, 4) - user.visible_message(SPAN_DANGER("[user] is trying to put handcuffs on [C]!")) - - if (ishuman(C)) - var/mob/living/carbon/human/H = C - if (!H.has_limb_for_slot(WEAR_HANDCUFFS)) - to_chat(user, SPAN_DANGER("\The [H] needs at least two wrists before you can cuff them together!")) + var/turf/p_loc_m = carbon_mob.loc + playsound(loc, cuff_sound, 25, 1, 4) + user.visible_message(SPAN_DANGER("[user] is trying to put handcuffs on [carbon_mob]!")) + + if(ishuman(carbon_mob)) + var/mob/living/carbon/human/human_mob = carbon_mob + if (!human_mob.has_limb_for_slot(WEAR_HANDCUFFS)) + to_chat(user, SPAN_DANGER("\The [human_mob] needs at least two wrists before you can cuff them together!")) return spawn(30) - if(!C) return - if(p_loc == user.loc && p_loc_m == C.loc) - C.handcuffed = new /obj/item/restraint/handcuffs(C) - C.handcuff_update() + if(!carbon_mob) return + if(p_loc == user.loc && p_loc_m == carbon_mob.loc) + carbon_mob.handcuffed = new /obj/item/restraint/handcuffs(carbon_mob) + carbon_mob.handcuff_update() From 620af1ab3267266d76d3acb09c655fefdb6e720f Mon Sep 17 00:00:00 2001 From: forest2001 Date: Sat, 9 Mar 2024 19:00:00 +0000 Subject: [PATCH 4/6] tweak --- code/modules/clothing/shoes/colour.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index 0ea035679172..3817aecdaf98 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -79,8 +79,8 @@ chained = cuffs slowdown = 15 icon_state = "orange1" - time_to_equip = 2 SECONDS - time_to_unequip = 5 SECONDS + time_to_equip = (cuffs.breakouttime / 4) + time_to_unequip = cuffs.breakouttime return TRUE /obj/item/clothing/shoes/orange/proc/remove_cuffs(mob/user as mob) From b07163d27c2a2b2e597ecc318077c0dc2f95a8d1 Mon Sep 17 00:00:00 2001 From: forest2001 Date: Sat, 9 Mar 2024 19:03:57 +0000 Subject: [PATCH 5/6] shoe examine --- code/modules/clothing/shoes/colour.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index 3817aecdaf98..7d6c8ed3d5dc 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -107,3 +107,8 @@ var/obj/item/restraint/cuffs = attacking_object if(cuffs.target_zone == SLOT_LEGS) attach_cuffs(cuffs, user) + +/obj/item/clothing/shoes/orange/get_examine_text(mob/user) + . = ..() + if(chained) + . += SPAN_RED("They are chained with [chained].") From 67672626a936bb17c4f8c30ae2dc5a66f3e41e2a Mon Sep 17 00:00:00 2001 From: forest2001 Date: Sun, 10 Mar 2024 15:40:03 +0000 Subject: [PATCH 6/6] cable tie fix and legcuff availables --- code/game/machinery/vending/vending_types.dm | 1 + code/game/objects/items.dm | 4 ++-- code/game/objects/items/storage/boxes.dm | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm index d0385007ea20..b69773dbf8bf 100644 --- a/code/game/machinery/vending/vending_types.dm +++ b/code/game/machinery/vending/vending_types.dm @@ -236,6 +236,7 @@ products = list( /obj/item/restraint/handcuffs = 8, /obj/item/restraint/handcuffs/zip = 10, + /obj/item/restraint/legcuffs = 3, /obj/item/explosive/grenade/flashbang = 4, /obj/item/weapon/gun/energy/taser = 4, /obj/item/reagent_container/spray/pepper = 4, diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index d0bdb20265ae..fc9da9bf0ebb 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -664,13 +664,13 @@ cases. Override_icon_state should be a list.*/ if(WEAR_HANDCUFFS) if(human.handcuffed) return FALSE - if(!istype(src, /obj/item/restraint/handcuffs)) + if(!istype(src, /obj/item/restraint)) return FALSE return TRUE if(WEAR_LEGCUFFS) if(human.legcuffed) return FALSE - if(!istype(src, /obj/item/restraint/legcuffs)) + if(!istype(src, /obj/item/restraint)) return FALSE return TRUE if(WEAR_IN_ACCESSORY) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 088150508af2..d9a60779d830 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -354,6 +354,20 @@ new /obj/item/restraint/handcuffs(src) +/obj/item/storage/box/legcuffs + name = "box of legcuffs" + desc = "A box full of legcuffs." + icon_state = "handcuff" + +/obj/item/storage/box/legcuffs/fill_preset_inventory() + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + new /obj/item/restraint/legcuffs(src) + /obj/item/storage/box/zipcuffs name = "box of zip cuffs" desc = "A box full of zip cuffs."