From e8c7ca66cfc9aed8a13fb118447e757146d8a0c2 Mon Sep 17 00:00:00 2001 From: forest2001 <41653574+realforest2001@users.noreply.github.com> Date: Thu, 9 May 2024 21:24:02 +0100 Subject: [PATCH 1/8] Legcuffs work (#5696) # About the pull request Allows legcuffs to function without needing to be beartraps. # Explain why it's good for the game # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: code: Repaths handcuffs and legcuffs to have a shared parent. code: Repaths xeno restraints to reduce confusion from the typepath. add: Legcuffs work appropriately now, and can be found in small numbers within security vendors. add: Cable restraints can now be adjusted via right-click to fit on wrists or ankles. add: Prison shoe chains now require ankle restraints rather than handcuffs. add: Prison shoes that have been chained now have an equp and unequip delay to account for the chains, proportionate to the breakout time of the item used in the chains. /:cl: --- code/game/machinery/autolathe_datums.dm | 2 +- code/game/machinery/vending/vending_types.dm | 7 +- code/game/objects/items.dm | 4 +- code/game/objects/items/handcuffs.dm | 195 ++++++++++-------- code/game/objects/items/legcuffs.dm | 52 ++++- code/game/objects/items/stacks/cable_coil.dm | 2 +- code/game/objects/items/storage/belt.dm | 16 +- code/game/objects/items/storage/boxes.dm | 70 ++++--- .../objects/items/tools/maintenance_tools.dm | 2 +- .../closets/secure/cm_closets.dm | 4 +- code/modules/clothing/shoes/colour.dm | 45 ++-- 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 +- ...ot_in_progress_insert_fiorina_nightmare.dm | 24 +-- .../crashlanding-offices_insert_bigred.dm | 2 +- code/modules/gear_presets/synths.dm | 6 +- code/modules/gear_presets/upp.dm | 28 +-- code/modules/gear_presets/uscm_event.dm | 10 +- code/modules/gear_presets/uscm_police.dm | 4 +- code/modules/gear_presets/wy_goons.dm | 14 +- .../mob/living/carbon/carbon_defines.dm | 2 +- code/modules/mob/mob_defines.dm | 2 +- maps/map_files/BigRed/BigRed.dmm | 10 +- .../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 +- 63 files changed, 454 insertions(+), 349 deletions(-) diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index 01a40b3638f6..71f350ffbd25 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..b69773dbf8bf 100644 --- a/code/game/machinery/vending/vending_types.dm +++ b/code/game/machinery/vending/vending_types.dm @@ -234,8 +234,9 @@ 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/restraint/legcuffs = 3, /obj/item/explosive/grenade/flashbang = 4, /obj/item/weapon/gun/energy/taser = 4, /obj/item/reagent_container/spray/pepper = 4, @@ -263,7 +264,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 fb0103876301..1a632569eccb 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -668,13 +668,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)) return FALSE return TRUE if(WEAR_LEGCUFFS) if(human.legcuffed) return FALSE - if(!istype(src, /obj/item/legcuffs)) + if(!istype(src, /obj/item/restraint)) 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..af71b806ed42 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -1,124 +1,162 @@ -/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)) - var/mob/living/carbon/human/H = target + if(ishuman(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)) + 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 + + return ret -/obj/item/handcuffs/zip +/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 @@ -130,34 +168,30 @@ qdel(src) update_icon(user) - -/obj/item/handcuffs/cyborg - dispenser = 1 - -/obj/item/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/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() -/obj/item/restraints +/obj/item/xeno_restraints name = "xeno restraints" desc = "Use this to hold xenomorphic creatures safely." gender = PLURAL @@ -171,10 +205,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 +220,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 c0dfe44728f0..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,24 +8,66 @@ throwforce = 0 w_class = SIZE_MEDIUM - var/breakouttime = 15 SECONDS + target_zone = SLOT_LEGS -/obj/item/legcuffs/beartrap +/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/human_target = target + + 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 + + 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 [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(human_target.has_limb_for_slot(WEAR_LEGCUFFS)) + user.drop_inv_item_on_ground(src) + 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)) + 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/restraint/legcuffs/beartrap name = "bear trap" throw_speed = SPEED_FAST 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/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 1daffa2908f0..385c22d3a713 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -357,7 +357,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, @@ -402,7 +402,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) @@ -412,7 +412,7 @@ 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/restraint/handcuffs(src) /obj/item/storage/belt/security/MP/UPP name = "\improper Type 43 military police rig" @@ -422,7 +422,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) @@ -439,8 +439,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() @@ -449,8 +449,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 4b7ecc4c5599..3f5e56f85517 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -345,14 +345,28 @@ 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/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" @@ -360,20 +374,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 +395,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..7d6c8ed3d5dc 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -68,32 +68,47 @@ /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 = (cuffs.breakouttime / 4) + time_to_unequip = cuffs.breakouttime + 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) + +/obj/item/clothing/shoes/orange/get_examine_text(mob/user) + . = ..() + if(chained) + . += SPAN_RED("They are chained with [chained].") 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 e2facb987959..78ea29108e68 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 106b09961103..90fb962ffa93 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, @@ -515,7 +515,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, @@ -576,7 +576,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, @@ -611,7 +611,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, @@ -714,7 +714,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, @@ -778,7 +778,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 d568e2838ae2..8be44f94a2e8 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/rubber, 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/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm b/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm index 657439a13f50..3fdbe72c05be 100644 --- a/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm +++ b/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm @@ -50,7 +50,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, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_R_STORE) @@ -63,7 +63,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, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge/rubber, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/buckshot, WEAR_IN_R_STORE) @@ -76,7 +76,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, 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, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) @@ -120,8 +120,8 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord, WEAR_ACCESSORY) 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/device/defibrillator/upgraded, 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/handcuffs/zip, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/candy, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/storage/pill_bottle/imidazoline, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB, WEAR_JACKET) @@ -163,8 +163,8 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/riot_shield, WEAR_IN_HELMET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec, WEAR_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, 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/explosive/grenade/custom/teargas, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_IN_BACK) @@ -240,8 +240,8 @@ /datum/equipment_preset/synth/survivor/cmb/ua_synth/load_gear(mob/living/carbon/human/new_human) //backpack new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec, WEAR_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, 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/explosive/grenade/custom/teargas, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/box/packet/baton_slug, WEAR_IN_BACK) @@ -256,9 +256,9 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord, WEAR_ACCESSORY) 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/handcuffs/zip, 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/handcuffs/zip, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/storage/box/flashbangs, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/explosive/grenade/custom/teargas, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/ua_riot/synth, WEAR_JACKET) 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 4eb674cf3796..9bfa2335e94a 100644 --- a/code/modules/gear_presets/synths.dm +++ b/code/modules/gear_presets/synths.dm @@ -461,8 +461,8 @@ WEAR_EYES = /obj/item/clothing/glasses/sunglasses/sechud, WEAR_BODY = /obj/item/clothing/under/colonist/white_service, WEAR_BACK = /obj/item/storage/backpack/satchel/sec, - WEAR_IN_BACK = /obj/item/handcuffs/zip, - WEAR_IN_BACK = /obj/item/handcuffs/zip, + WEAR_IN_BACK = /obj/item/restraint/handcuffs, + WEAR_IN_BACK = /obj/item/restraint/handcuffs, WEAR_JACKET = /obj/item/clothing/suit/storage/webbing, WEAR_WAIST = /obj/item/storage/belt/security/MP/full/synth, WEAR_IN_JACKET = /obj/item/weapon/telebaton, @@ -800,7 +800,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 cdb955bd9696..450662ba25c3 100644 --- a/code/modules/gear_presets/upp.dm +++ b/code/modules/gear_presets/upp.dm @@ -2671,8 +2671,8 @@ new_human.equip_to_slot_or_del(UPP, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/support/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/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) new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_J_STORE) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY) @@ -3014,8 +3014,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) @@ -3143,8 +3143,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) @@ -3304,8 +3304,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) @@ -3445,8 +3445,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) @@ -3485,8 +3485,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) @@ -3518,8 +3518,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 3ab1dbc99b4e..eb206c8259bf 100644 --- a/code/modules/gear_presets/uscm_event.dm +++ b/code/modules/gear_presets/uscm_event.dm @@ -98,7 +98,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) @@ -174,7 +174,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) @@ -241,7 +241,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 @@ -288,7 +288,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 @@ -329,7 +329,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 7867016491dc..9207b9d55a2d 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) @@ -108,7 +108,7 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/ert, 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/restraint/handcuffs, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle, WEAR_IN_BACK) @@ -145,9 +145,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 82e04ca58330..422a143de94a 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) @@ -16219,7 +16219,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" = ( @@ -16667,7 +16667,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" = ( @@ -26626,7 +26626,7 @@ /area/bigredv2/caves/mining) "cry" = ( /obj/structure/surface/table/reinforced, -/obj/item/handcuffs, +/obj/item/restraint/handcuffs, /turf/open/floor{ dir = 9; icon_state = "redfull" 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 6c179dbc8b2c..28db8fa8831f 100644 --- a/maps/map_files/CORSAT/Corsat.dmm +++ b/maps/map_files/CORSAT/Corsat.dmm @@ -4894,7 +4894,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" @@ -13705,7 +13705,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" }, @@ -27154,7 +27154,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" @@ -28908,7 +28908,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" @@ -29586,8 +29586,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" @@ -33064,8 +33064,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" @@ -33269,7 +33269,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" }, @@ -33308,8 +33308,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" }, @@ -35399,7 +35399,7 @@ dir = 8 }, /obj/structure/surface/table/reinforced, -/obj/item/restraints, +/obj/item/xeno_restraints, /turf/open/floor/corsat{ dir = 8; icon_state = "red" @@ -44668,8 +44668,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" @@ -63062,7 +63062,7 @@ /area/corsat/omega/hangar) "wrd" = ( /obj/structure/surface/rack, -/obj/item/restraints, +/obj/item/xeno_restraints, /turf/open/shuttle/dropship{ icon_state = "rasputin15" }, @@ -63828,7 +63828,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 fff406145a3a..3c4125023686 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 a03946d3c6cf..d1dd76922ee1 100644 --- a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm +++ b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm @@ -3451,10 +3451,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" @@ -13789,7 +13789,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 f6e85338a637..fcbdcc4fdc33 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" @@ -31005,7 +31005,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" }, @@ -38287,7 +38287,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 1514e8023b99..b1ce353976c2 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) @@ -20198,7 +20198,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" @@ -22216,7 +22216,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" @@ -26358,7 +26358,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 bdf58d54fb34..94c7420a6da4 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -17205,8 +17205,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{ @@ -18239,13 +18239,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 46f5a179a50e..a9baa8a1efc7 100644 --- a/maps/map_files/LV624/LV624.dmm +++ b/maps/map_files/LV624/LV624.dmm @@ -9358,7 +9358,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{ @@ -24636,10 +24636,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 34032943b1c1..090ad40084f7 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 1450edbbd180..e0d689cf1c8c 100644 --- a/maps/map_files/New_Varadero/New_Varadero.dmm +++ b/maps/map_files/New_Varadero/New_Varadero.dmm @@ -2317,7 +2317,7 @@ pixel_x = -5; pixel_y = 1 }, -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 2; pixel_y = 16 }, @@ -2875,7 +2875,7 @@ }, /area/varadero/interior/chapel) "bPL" = ( -/obj/item/handcuffs{ +/obj/item/restraint/handcuffs{ pixel_x = 2; pixel_y = 16 }, @@ -21989,7 +21989,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 @@ -28062,7 +28062,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) @@ -33846,7 +33846,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 6b8b6b82e284..db1f07a8b3b1 100644 --- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm +++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm @@ -40149,7 +40149,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 c87ab7b4c09a..40aab722447d 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -33975,9 +33975,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" @@ -54633,7 +54633,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" }, @@ -67491,7 +67491,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 @@ -77926,7 +77926,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 113f6448d3a8..433d9057dc70 100644 --- a/maps/predship/huntership.dmm +++ b/maps/predship/huntership.dmm @@ -2907,30 +2907,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" = ( @@ -3447,12 +3447,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 908f8de06dcb..3aa8c800327f 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" = ( @@ -1817,8 +1817,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 2c9c696d7842..10e175eae24c 100644 --- a/maps/templates/lazy_templates/twe_ert_station.dmm +++ b/maps/templates/lazy_templates/twe_ert_station.dmm @@ -1465,11 +1465,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 8df635a5ae91742a0c0eb3c3d4aff8736d71778c Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Thu, 9 May 2024 21:28:24 +0100 Subject: [PATCH 2/8] Automatic changelog for PR #5696 [ci skip] --- html/changelogs/AutoChangeLog-pr-5696.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5696.yml diff --git a/html/changelogs/AutoChangeLog-pr-5696.yml b/html/changelogs/AutoChangeLog-pr-5696.yml new file mode 100644 index 000000000000..072a82d6a7e5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5696.yml @@ -0,0 +1,9 @@ +author: "realforest2001" +delete-after: True +changes: + - code_imp: "Repaths handcuffs and legcuffs to have a shared parent." + - code_imp: "Repaths xeno restraints to reduce confusion from the typepath." + - rscadd: "Legcuffs work appropriately now, and can be found in small numbers within security vendors." + - rscadd: "Cable restraints can now be adjusted via right-click to fit on wrists or ankles." + - rscadd: "Prison shoe chains now require ankle restraints rather than handcuffs." + - rscadd: "Prison shoes that have been chained now have an equp and unequip delay to account for the chains, proportionate to the breakout time of the item used in the chains." \ No newline at end of file From 2478f9efed6df9042f9b7f5150f3a49a4033ec4a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 10 May 2024 01:12:23 +0000 Subject: [PATCH 3/8] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-5696.yml | 9 --------- html/changelogs/archive/2024-05.yml | 12 ++++++++++++ 2 files changed, 12 insertions(+), 9 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-5696.yml diff --git a/html/changelogs/AutoChangeLog-pr-5696.yml b/html/changelogs/AutoChangeLog-pr-5696.yml deleted file mode 100644 index 072a82d6a7e5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5696.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - code_imp: "Repaths handcuffs and legcuffs to have a shared parent." - - code_imp: "Repaths xeno restraints to reduce confusion from the typepath." - - rscadd: "Legcuffs work appropriately now, and can be found in small numbers within security vendors." - - rscadd: "Cable restraints can now be adjusted via right-click to fit on wrists or ankles." - - rscadd: "Prison shoe chains now require ankle restraints rather than handcuffs." - - rscadd: "Prison shoes that have been chained now have an equp and unequip delay to account for the chains, proportionate to the breakout time of the item used in the chains." \ No newline at end of file diff --git a/html/changelogs/archive/2024-05.yml b/html/changelogs/archive/2024-05.yml index af586d5033c1..ae04a832ea51 100644 --- a/html/changelogs/archive/2024-05.yml +++ b/html/changelogs/archive/2024-05.yml @@ -90,3 +90,15 @@ 2024-05-07: Zonespace, d.1.n.a. (original sprites), esselnek (new sprites): - rscadd: Added the M540-B Armored Recon Carrier as a t1 intel purchase. +2024-05-10: + realforest2001: + - code_imp: Repaths handcuffs and legcuffs to have a shared parent. + - code_imp: Repaths xeno restraints to reduce confusion from the typepath. + - rscadd: Legcuffs work appropriately now, and can be found in small numbers within + security vendors. + - rscadd: Cable restraints can now be adjusted via right-click to fit on wrists + or ankles. + - rscadd: Prison shoe chains now require ankle restraints rather than handcuffs. + - rscadd: Prison shoes that have been chained now have an equp and unequip delay + to account for the chains, proportionate to the breakout time of the item used + in the chains. From bc1ffe813eeceebc4af662907fced7c4457f7aae Mon Sep 17 00:00:00 2001 From: iloveloopers <140007537+iloveloopers@users.noreply.github.com> Date: Fri, 10 May 2024 00:41:44 -0400 Subject: [PATCH 4/8] Smoke Flamer (#6146) # About the pull request adds a new flamer fuel tank that turns any reagent inside into chemsmoke when fired fuel tank obtainable from army lathe (OT lathe) only 1 reagent allowed inside the tank so its not overpowered cannot be used with the nozzle the smoke will always have a set ammount of units in it (somewhat high) so that it works effectively with the on_touch reactions # Explain why it's good for the game more flamer fuel variety new ways to apply anti-xeno chems # Testing Photographs and Procedure https://www.youtube.com/watch?v=ePTXqXiK330 # Changelog :cl: add: Adds in a new incinerator smoke tank that turns any reagent inside it into chemsmoke when fired. /:cl: --------- Co-authored-by: Drathek <76988376+Drulikar@users.noreply.github.com> --- code/game/machinery/autolathe_datums.dm | 5 ++ code/modules/projectiles/gun_attachables.dm | 4 ++ .../modules/projectiles/guns/flamer/flamer.dm | 69 ++++++++++++++++++- code/modules/projectiles/magazines/flamer.dm | 8 ++- 4 files changed, 82 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index 71f350ffbd25..78a8e46b64aa 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -331,6 +331,11 @@ path = /obj/item/ammo_magazine/flamer_tank/custom/large category = AUTOLATHE_CATEGORY_EXPLOSIVES +/datum/autolathe/recipe/armylathe/smoke_tank + name = "Custom M240A1 Smoke Tank" + path = /obj/item/ammo_magazine/flamer_tank/smoke + category = AUTOLATHE_CATEGORY_EXPLOSIVES + //Medilathe recipes /datum/autolathe/recipe/medilathe category = AUTOLATHE_CATEGORY_MEDICAL diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm index 5e2fc8459377..711b53f0fc77 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -3223,6 +3223,10 @@ Defined in conflicts.dm of the #defines folder. to_chat(user, SPAN_WARNING("This chemical will clog the nozzle!")) return + if(istype(gun.current_mag, /obj/item/ammo_magazine/flamer_tank/smoke)) // you can't fire smoke like a projectile! + to_chat(user, SPAN_WARNING("[src] can't be used with this fuel tank!")) + return + gun.last_fired = world.time gun.current_mag.reagents.remove_reagent(flamer_reagent.id, FLAME_REAGENT_USE_AMOUNT * fuel_per_projectile) diff --git a/code/modules/projectiles/guns/flamer/flamer.dm b/code/modules/projectiles/guns/flamer/flamer.dm index 64499a71bb12..0388f5be7aef 100644 --- a/code/modules/projectiles/guns/flamer/flamer.dm +++ b/code/modules/projectiles/guns/flamer/flamer.dm @@ -136,10 +136,13 @@ click_empty(user) else user.track_shot(initial(name)) - if(current_mag.reagents.has_reagent("stablefoam")) - unleash_foam(target, user) + if(istype(current_mag, /obj/item/ammo_magazine/flamer_tank/smoke)) + unleash_smoke(target, user) else - unleash_flame(target, user) + if(current_mag.reagents.has_reagent("stablefoam")) + unleash_foam(target, user) + else + unleash_flame(target, user) return AUTOFIRE_CONTINUE return NONE @@ -229,6 +232,66 @@ new /obj/flamer_fire(to_fire, create_cause_data(initial(name), user), R, max_range, current_mag.reagents, flameshape, target, CALLBACK(src, PROC_REF(show_percentage), user), fuel_pressure, fire_type) +/obj/item/weapon/gun/flamer/proc/unleash_smoke(atom/target, mob/living/user) + last_fired = world.time + if(!current_mag || !current_mag.reagents || !current_mag.reagents.reagent_list.len) + return + + var/source_turf = get_turf(user) + var/smoke_range = 5 // the max range the smoke will travel + var/distance = 0 // the distance traveled + var/use_multiplier = 3 // if you want to increase the ammount of units drained from the tank + var/units_in_smoke = 35 // the smoke overlaps a little so this much is probably already good + + var/datum/reagent/chemical = current_mag.reagents.reagent_list[1] + var/datum/reagents/to_disperse = new() // this is the chemholder that will be used by the chemsmoke + to_disperse.add_reagent(chemical.id, units_in_smoke) + to_disperse.my_atom = src + + var/turf/turfs[] = get_line(user, target, FALSE) + var/turf/first_turf = turfs[1] + var/turf/second_turf = turfs[2] + var/ammount_required = (min(turfs.len, smoke_range) * use_multiplier) // the ammount of units that this click requires + for(var/turf/turf in turfs) + + if(chemical.volume < ammount_required) + smoke_range = round(chemical.volume / use_multiplier) + + if(distance >= smoke_range) + break + + if(turf.density) + break + else + var/obj/effect/particle_effect/smoke/chem/checker = new() + var/atom/blocked = LinkBlocked(checker, source_turf, turf) + if(blocked) + break + + playsound(turf, 'sound/effects/smoke.ogg', 25, 1) + if(turf != first_turf && turf != second_turf) // we skip the first tile and make it small on the second so the smoke doesn't touch the user + var/datum/effect_system/smoke_spread/chem/smoke = new() + smoke.set_up(to_disperse, 5, loca = turf) + smoke.start() + if(turf == second_turf) + var/datum/effect_system/smoke_spread/chem/smoke = new() + smoke.set_up(to_disperse, 1, loca = turf) + smoke.start() + sleep(2) + + distance++ + + var/ammount_used = distance * use_multiplier // the actual ammount of units that we used + + chemical.volume = max(chemical.volume - ammount_used, 0) + + current_mag.reagents.total_volume = chemical.volume // this is needed for show_percentage to work + + if(chemical.volume < use_multiplier) // there aren't enough units left for a single tile of smoke, empty the tank + current_mag.reagents.clear_reagents() + + show_percentage(user) + /obj/item/weapon/gun/flamer/proc/unleash_foam(atom/target, mob/living/user) last_fired = world.time if(!current_mag || !current_mag.reagents || !current_mag.reagents.reagent_list.len) diff --git a/code/modules/projectiles/magazines/flamer.dm b/code/modules/projectiles/magazines/flamer.dm index dfd9eda20d8a..bf5663cad069 100644 --- a/code/modules/projectiles/magazines/flamer.dm +++ b/code/modules/projectiles/magazines/flamer.dm @@ -90,7 +90,7 @@ to_chat(user, SPAN_WARNING("You can't mix fuel mixtures!")) return - if(!to_add.intensityfire && to_add.id != "stablefoam") + if(!to_add.intensityfire && to_add.id != "stablefoam" && !istype(src, /obj/item/ammo_magazine/flamer_tank/smoke)) to_chat(user, SPAN_WARNING("This chemical is not potent enough to be used in a flamethrower!")) return @@ -236,3 +236,9 @@ max_intensity = 60 max_range = 8 max_duration = 50 + +/obj/item/ammo_magazine/flamer_tank/smoke + name = "Custom incinerator smoke tank" + desc = "A tank holding powdered smoke that expands when exposed to an open flame and carries any chemicals along with it." + matter = list("metal" = 3750) + flamer_chem = null From 4b53d3c217073c9ababeca84f27e0276e2433696 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 10 May 2024 05:47:05 +0100 Subject: [PATCH 5/8] Automatic changelog for PR #6146 [ci skip] --- html/changelogs/AutoChangeLog-pr-6146.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6146.yml diff --git a/html/changelogs/AutoChangeLog-pr-6146.yml b/html/changelogs/AutoChangeLog-pr-6146.yml new file mode 100644 index 000000000000..7db05aea65d1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6146.yml @@ -0,0 +1,4 @@ +author: "iloveloopers" +delete-after: True +changes: + - rscadd: "Adds in a new incinerator smoke tank that turns any reagent inside it into chemsmoke when fired." \ No newline at end of file From 8659dffc0d69e90d1d4629ade2ba8fb0f399c2a2 Mon Sep 17 00:00:00 2001 From: cuberound <122645057+cuberound@users.noreply.github.com> Date: Fri, 10 May 2024 06:52:55 +0200 Subject: [PATCH 6/8] fences can be shot through (#6178) # About the pull request gives a flag for fences to make bullets gas and spits (not throwables) pass cades # Explain why it's good for the game being unable to shoot thrue fences is a bit weard, might prove OP so TM first and there might be need for changes or rewert # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: balance: projectiles can pass fences /:cl: Co-authored-by: vincibrv --- code/game/objects/structures/fence.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm index 60a8682a4930..9476f6385ae3 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -3,6 +3,7 @@ desc = "A large metal mesh strewn between two poles. Intended as a cheap way to separate areas, while allowing one to see through it." icon = 'icons/obj/structures/props/fence.dmi' icon_state = "fence0" + throwpass = TRUE density = TRUE anchored = TRUE layer = WINDOW_LAYER From 995e211044896aab7ab2b5c72284998eaf9481ea Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 10 May 2024 05:57:25 +0100 Subject: [PATCH 7/8] Automatic changelog for PR #6178 [ci skip] --- html/changelogs/AutoChangeLog-pr-6178.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6178.yml diff --git a/html/changelogs/AutoChangeLog-pr-6178.yml b/html/changelogs/AutoChangeLog-pr-6178.yml new file mode 100644 index 000000000000..cc86f3ce68a8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6178.yml @@ -0,0 +1,4 @@ +author: "cuberound" +delete-after: True +changes: + - balance: "projectiles can pass fences" \ No newline at end of file From 1f79350ddb991151b55efc83dcd9c831d60cb51a Mon Sep 17 00:00:00 2001 From: Doubleumc Date: Fri, 10 May 2024 01:14:41 -0400 Subject: [PATCH 8/8] floor(x) conversion for 515 (#6263) # About the pull request ![image](https://github.com/cmss13-devs/cmss13/assets/14267245/7d492bcb-f934-4c2f-be5a-c0bf339feab8) https://www.byond.com/docs/ref/#/proc/floor With the move to 515, removes this define in favor of `floor(x)`: `#define Floor(x) (round(x))` Also converts the two-argument `FLOOR(x, y)` to use `floor` internally. # Explain why it's good for the game Less bespoke code means less points of failure. # Testing Photographs and Procedure Boots without obvious issue. # Changelog No player-facing changes. --- code/__DEFINES/_math.dm | 2 +- code/__HELPERS/#maths.dm | 3 +-- code/__HELPERS/_time.dm | 6 +++--- code/__HELPERS/lists.dm | 2 +- code/controllers/subsystem/minimap.dm | 4 ++-- code/datums/entities/player_times.dm | 2 +- code/game/gamemodes/cm_initialize.dm | 2 +- code/game/machinery/computer/research.dm | 2 +- code/game/objects/items/fulton.dm | 4 ++-- code/game/objects/items/toys/cards.dm | 10 +++++----- code/modules/buildmode/buildmode.dm | 2 +- .../clothing/suits/marine_armor/_marine_armor.dm | 2 +- .../modules/cm_aliens/structures/special/pylon_core.dm | 2 +- code/modules/mob/dead/observer/orbit.dm | 4 ++-- .../modules/mob/living/carbon/human/human_abilities.dm | 2 +- .../carbon/xenomorph/abilities/queen/queen_powers.dm | 4 ++-- .../modules/mob/living/carbon/xenomorph/hive_status.dm | 4 ++-- code/modules/mob/living/carbon/xenomorph/life.dm | 2 +- code/modules/mob/mob_helpers.dm | 2 +- code/modules/projectiles/guns/flamer/flameshape.dm | 2 +- code/modules/vehicles/hardpoints/primary/minigun.dm | 4 ++-- code/modules/vehicles/interior/interactable/vendors.dm | 4 ++-- code/modules/vehicles/interior/interior.dm | 4 ++-- code/modules/vehicles/multitile/multitile_bump.dm | 4 ++-- code/modules/vehicles/multitile/multitile_movement.dm | 2 +- 25 files changed, 40 insertions(+), 41 deletions(-) diff --git a/code/__DEFINES/_math.dm b/code/__DEFINES/_math.dm index d7c068237987..ec225515650b 100644 --- a/code/__DEFINES/_math.dm +++ b/code/__DEFINES/_math.dm @@ -17,7 +17,7 @@ #define ROUND_UP(x) ( -round(-(x))) // round() acts like floor(x, 1) by default but can't handle other values -#define FLOOR(x, y) ( round((x) / (y)) * (y) ) +#define FLOOR(x, y) ( floor((x) / (y)) * (y) ) // Real modulus that handles decimals #define MODULUS(x, y) ( (x) - (y) * round((x) / (y)) ) diff --git a/code/__HELPERS/#maths.dm b/code/__HELPERS/#maths.dm index f8a9292d3806..a9b7a527d6cf 100644 --- a/code/__HELPERS/#maths.dm +++ b/code/__HELPERS/#maths.dm @@ -18,7 +18,6 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, #define Csc(x) (1 / sin(x)) #define Default(a, b) ((a) ? (a) : (b)) -#define Floor(x) (round(x)) // Greatest Common Divisor - Euclid's algorithm #define Gcd(a, b) ((b) ? Gcd((b), (a) % (b)) : (a)) @@ -26,7 +25,7 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, #define Inverse(x) (1 / (x)) #define IsEven(x) ((x) % 2 == 0) -#define IsInteger(x) (Floor(x) == (x)) +#define IsInteger(x) (floor(x) == (x)) #define IsOdd(x) (!IsEven(x)) #define IsMultiple(x, y) ((x) % (y) == 0) diff --git a/code/__HELPERS/_time.dm b/code/__HELPERS/_time.dm index 733ca659501b..0831ab50d6e0 100644 --- a/code/__HELPERS/_time.dm +++ b/code/__HELPERS/_time.dm @@ -91,21 +91,21 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) return "right now" if(second < 60) return "[second] second[(second != 1)? "s":""]" - var/minute = Floor(second / 60) + var/minute = floor(second / 60) second = FLOOR(MODULUS(second, 60), round_seconds_to) var/secondT if(second) secondT = " and [second] second[(second != 1)? "s":""]" if(minute < 60) return "[minute] minute[(minute != 1)? "s":""][secondT]" - var/hour = Floor(minute / 60) + var/hour = floor(minute / 60) minute = MODULUS(minute, 60) var/minuteT if(minute) minuteT = " and [minute] minute[(minute != 1)? "s":""]" if(hour < 24) return "[hour] hour[(hour != 1)? "s":""][minuteT][secondT]" - var/day = Floor(hour / 24) + var/day = floor(hour / 24) hour = MODULUS(hour, 24) var/hourT if(hour) diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 9a8528aabcc3..a1b38b48f754 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -597,7 +597,7 @@ if(L.len <= 1) return L - var/middle = Floor(L.len / 2) + var/middle = floor(L.len / 2) var/list/left = custom_mergesort(L.Copy(1, middle + 1)) var/list/right = custom_mergesort(L.Copy(middle + 1)) var/list/result = list() diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm index ff250625043f..8c2cbc7c5ee7 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -88,8 +88,8 @@ SUBSYSTEM_DEF(minimaps) else if(yval < smallest_y) smallest_y = yval - minimaps_by_z["[level]"].x_offset = Floor((SCREEN_PIXEL_SIZE-largest_x-smallest_x) / MINIMAP_SCALE) - minimaps_by_z["[level]"].y_offset = Floor((SCREEN_PIXEL_SIZE-largest_y-smallest_y) / MINIMAP_SCALE) + minimaps_by_z["[level]"].x_offset = floor((SCREEN_PIXEL_SIZE-largest_x-smallest_x) / MINIMAP_SCALE) + minimaps_by_z["[level]"].y_offset = floor((SCREEN_PIXEL_SIZE-largest_y-smallest_y) / MINIMAP_SCALE) icon_gen.Shift(EAST, minimaps_by_z["[level]"].x_offset) icon_gen.Shift(NORTH, minimaps_by_z["[level]"].y_offset) diff --git a/code/datums/entities/player_times.dm b/code/datums/entities/player_times.dm index 2bbd4a3bc39e..4fc28ba2fa5e 100644 --- a/code/datums/entities/player_times.dm +++ b/code/datums/entities/player_times.dm @@ -61,7 +61,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player_time) return list( "job" = role_id, "playtime" = round(total_minutes MINUTES_TO_HOURS, 0.1), - "bgcolor" = "rgb(0, [Floor(128 * playtime_percentage)], [Floor(255 * playtime_percentage)])", + "bgcolor" = "rgb(0, [floor(128 * playtime_percentage)], [floor(255 * playtime_percentage)])", "textcolor" = "#FFFFFF", "icondisplay" = icon_display ) diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm index 400acdcb122a..af63b99e4e57 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -175,7 +175,7 @@ Additional game mode variables. if(pred_candidate) pred_candidate.moveToNullspace() //Nullspace it for garbage collection later. -#define calculate_pred_max (Floor(length(GLOB.player_list) / pred_per_players) + pred_additional_max + pred_start_count) +#define calculate_pred_max (floor(length(GLOB.player_list) / pred_per_players) + pred_additional_max + pred_start_count) /datum/game_mode/proc/check_predator_late_join(mob/pred_candidate, show_warning = 1) diff --git a/code/game/machinery/computer/research.dm b/code/game/machinery/computer/research.dm index d5158cb76451..3a8292ec7d07 100644 --- a/code/game/machinery/computer/research.dm +++ b/code/game/machinery/computer/research.dm @@ -179,7 +179,7 @@ if("purchase_document") if(!photocopier) return - var/purchase_tier = Floor(text2num(params["purchase_document"])) + var/purchase_tier = floor(text2num(params["purchase_document"])) if(purchase_tier <= 0 || purchase_tier > 5) return if(purchase_tier > GLOB.chemical_data.clearance_level) diff --git a/code/game/objects/items/fulton.dm b/code/game/objects/items/fulton.dm index 664c7871ba7f..9cdc2b78b609 100644 --- a/code/game/objects/items/fulton.dm +++ b/code/game/objects/items/fulton.dm @@ -143,8 +143,8 @@ GLOBAL_LIST_EMPTY(deployed_fultons) reservation = SSmapping.request_turf_block_reservation(3, 3, 1, turf_type_override = /turf/open/space) var/turf/bottom_left_turf = reservation.bottom_left_turfs[1] var/turf/top_right_turf = reservation.top_right_turfs[1] - var/middle_x = bottom_left_turf.x + Floor((top_right_turf.x - bottom_left_turf.x) / 2) - var/middle_y = bottom_left_turf.y + Floor((top_right_turf.y - bottom_left_turf.y) / 2) + var/middle_x = bottom_left_turf.x + floor((top_right_turf.x - bottom_left_turf.x) / 2) + var/middle_y = bottom_left_turf.y + floor((top_right_turf.y - bottom_left_turf.y) / 2) var/turf/space_tile = locate(middle_x, middle_y, bottom_left_turf.z) if(!space_tile) visible_message(SPAN_WARNING("[src] begins beeping like crazy. Something is wrong!")) diff --git a/code/game/objects/items/toys/cards.dm b/code/game/objects/items/toys/cards.dm index 39584b2bbb89..f63efd61a615 100644 --- a/code/game/objects/items/toys/cards.dm +++ b/code/game/objects/items/toys/cards.dm @@ -462,7 +462,7 @@ overlays += I return - var/offset = Floor(80/cards_length) + var/offset = floor(80/cards_length) var/matrix/M = matrix() if(direction) @@ -482,13 +482,13 @@ var/image/I = new(src.icon, (concealed ? P.back_icon : P.card_icon)) switch(direction) if(SOUTH) - I.pixel_x = 8 - Floor(offset*i/4) + I.pixel_x = 8 - floor(offset*i/4) if(WEST) - I.pixel_y = -6 + Floor(offset*i/4) + I.pixel_y = -6 + floor(offset*i/4) if(EAST) - I.pixel_y = 8 - Floor(offset*i/4) + I.pixel_y = 8 - floor(offset*i/4) else - I.pixel_x = -7 + Floor(offset*i/4) + I.pixel_x = -7 + floor(offset*i/4) I.transform = M overlays += I i++ diff --git a/code/modules/buildmode/buildmode.dm b/code/modules/buildmode/buildmode.dm index bc20a714027d..4b6d84a5ae40 100644 --- a/code/modules/buildmode/buildmode.dm +++ b/code/modules/buildmode/buildmode.dm @@ -80,7 +80,7 @@ var/pos_idx = 0 for(var/thing in elements) var/x = pos_idx % switch_width - var/y = Floor(pos_idx / switch_width) + var/y = floor(pos_idx / switch_width) var/atom/movable/screen/buildmode/B = new buttontype(src, thing) // extra .5 for a nice offset look B.screen_loc = "NORTH-[(1 + 0.5 + y*1.5)],WEST+[0.5 + x*1.5]" diff --git a/code/modules/clothing/suits/marine_armor/_marine_armor.dm b/code/modules/clothing/suits/marine_armor/_marine_armor.dm index 78ea29108e68..15340bc1aae2 100644 --- a/code/modules/clothing/suits/marine_armor/_marine_armor.dm +++ b/code/modules/clothing/suits/marine_armor/_marine_armor.dm @@ -191,7 +191,7 @@ if(. != CHECKS_PASSED) return set_light_range(initial(light_range)) - set_light_power(Floor(initial(light_power) * 0.5)) + set_light_power(floor(initial(light_power) * 0.5)) set_light_on(toggle_on) flags_marine_armor ^= ARMOR_LAMP_ON diff --git a/code/modules/cm_aliens/structures/special/pylon_core.dm b/code/modules/cm_aliens/structures/special/pylon_core.dm index add9646c56ac..7f0124fa5033 100644 --- a/code/modules/cm_aliens/structures/special/pylon_core.dm +++ b/code/modules/cm_aliens/structures/special/pylon_core.dm @@ -66,7 +66,7 @@ for(var/mob/living/carbon/xenomorph/lesser_drone/lesser in linked_hive.totalXenos) lesser_count++ - . += "Currently holding [SPAN_NOTICE("[Floor(lesser_drone_spawns)]")]/[SPAN_NOTICE("[lesser_drone_spawn_limit]")] lesser drones." + . += "Currently holding [SPAN_NOTICE("[floor(lesser_drone_spawns)]")]/[SPAN_NOTICE("[lesser_drone_spawn_limit]")] lesser drones." . += "There are currently [SPAN_NOTICE("[lesser_count]")] lesser drones in the hive. The hive can support [SPAN_NOTICE("[linked_hive.lesser_drone_limit]")] lesser drones." /obj/effect/alien/resin/special/pylon/attack_ghost(mob/dead/observer/user) diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index 173de5338196..d6b104398f99 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -110,7 +110,7 @@ if(isliving(M)) var/mob/living/player = M - serialized["health"] = Floor(player.health / player.maxHealth * 100) + serialized["health"] = floor(player.health / player.maxHealth * 100) if(isxeno(player)) var/mob/living/carbon/xenomorph/xeno = player @@ -126,7 +126,7 @@ var/obj/item/card/id/id_card = human.get_idcard() var/datum/species/human_species = human.species var/max_health = human_species.total_health != human.maxHealth ? human_species.total_health : human.maxHealth - serialized["health"] = Floor(player.health / max_health * 100) + serialized["health"] = floor(player.health / max_health * 100) serialized["job"] = id_card?.assignment ? id_card.assignment : human.job serialized["nickname"] = human.real_name diff --git a/code/modules/mob/living/carbon/human/human_abilities.dm b/code/modules/mob/living/carbon/human/human_abilities.dm index 2d7f472952cc..76ebbed06de6 100644 --- a/code/modules/mob/living/carbon/human/human_abilities.dm +++ b/code/modules/mob/living/carbon/human/human_abilities.dm @@ -250,7 +250,7 @@ CULT to_send_to = list(H) message_admins("[key_name_admin(H)] called a tech droppod down at [get_area(assigned_droppod)].", T.x, T.y, T.z) for(var/M in to_send_to) - to_chat(M, SPAN_BLUE("SUPPLY DROP REQUEST: Droppod requested at LONGITUDE: [obfuscate_x(T.x)], LATITUDE: [obfuscate_y(T.y)]. ETA [Floor(land_time*0.1)] seconds.")) + to_chat(M, SPAN_BLUE("SUPPLY DROP REQUEST: Droppod requested at LONGITUDE: [obfuscate_x(T.x)], LATITUDE: [obfuscate_y(T.y)]. ETA [floor(land_time*0.1)] seconds.")) RegisterSignal(assigned_droppod, COMSIG_PARENT_QDELETING, PROC_REF(handle_droppod_deleted)) */ diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm index 38e643e0d25c..f5adf2940d6b 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm @@ -819,7 +819,7 @@ return var/list/alerts = list() - for(var/i in RANGE_TURFS(Floor(width/2), T)) + for(var/i in RANGE_TURFS(floor(width/2), T)) alerts += new /obj/effect/warning/alien(i) if(!do_after(Q, time_taken, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY)) @@ -833,7 +833,7 @@ if(!check_and_use_plasma_owner()) return - var/turf/new_turf = locate(max(T.x - Floor(width/2), 1), max(T.y - Floor(height/2), 1), T.z) + var/turf/new_turf = locate(max(T.x - floor(width/2), 1), max(T.y - floor(height/2), 1), T.z) to_chat(Q, SPAN_XENONOTICE("You raise a blockade!")) var/obj/effect/alien/resin/resin_pillar/RP = new pillar_type(new_turf) RP.start_decay(brittle_time, decay_time) diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status.dm b/code/modules/mob/living/carbon/xenomorph/hive_status.dm index baa736382733..19416e7af0aa 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status.dm @@ -832,7 +832,7 @@ if(cycled_xeno.counts_for_slots) countable_xeno_iterator++ - playable_hugger_limit = max(Floor(countable_xeno_iterator / playable_hugger_max_divisor), playable_hugger_minimum) + playable_hugger_limit = max(floor(countable_xeno_iterator / playable_hugger_max_divisor), playable_hugger_minimum) /datum/hive_status/proc/can_spawn_as_hugger(mob/dead/observer/user) if(!GLOB.hive_datum || ! GLOB.hive_datum[hivenumber]) @@ -888,7 +888,7 @@ if(cycled_xeno.counts_for_slots) countable_xeno_iterator++ - lesser_drone_limit = max(Floor(countable_xeno_iterator / playable_lesser_drones_max_divisor), lesser_drone_minimum) + lesser_drone_limit = max(floor(countable_xeno_iterator / playable_lesser_drones_max_divisor), lesser_drone_minimum) /datum/hive_status/proc/can_spawn_as_lesser_drone(mob/dead/observer/user, obj/effect/alien/resin/special/pylon/spawning_pylon) if(!GLOB.hive_datum || ! GLOB.hive_datum[hivenumber]) diff --git a/code/modules/mob/living/carbon/xenomorph/life.dm b/code/modules/mob/living/carbon/xenomorph/life.dm index bbd59a74d8b5..45d0d53a040a 100644 --- a/code/modules/mob/living/carbon/xenomorph/life.dm +++ b/code/modules/mob/living/carbon/xenomorph/life.dm @@ -291,7 +291,7 @@ if(hud_used.alien_armor_display) var/armor_stacks = min((get_armor_integrity_percentage() * 0.01) * HUD_ARMOR_STATES_XENO, HUD_ARMOR_STATES_XENO) - hud_used.alien_armor_display.icon_state = "armor_[Floor(armor_stacks)]0" + hud_used.alien_armor_display.icon_state = "armor_[floor(armor_stacks)]0" return TRUE diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 0f128b5bcb46..db6f9c120591 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -331,7 +331,7 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( while(i < steps) animate(pixel_x = old_X + rand(-(strength), strength), pixel_y = old_y + rand(-(strength), strength), easing = JUMP_EASING, time = time_per_step) i++ - animate(pixel_x = old_X, pixel_y = old_y,time = clamp(Floor(strength/PIXELS_PER_STRENGTH_VAL),2,4))//ease it back + animate(pixel_x = old_X, pixel_y = old_y,time = clamp(floor(strength/PIXELS_PER_STRENGTH_VAL),2,4))//ease it back #undef PIXELS_PER_STRENGTH_VAL diff --git a/code/modules/projectiles/guns/flamer/flameshape.dm b/code/modules/projectiles/guns/flamer/flameshape.dm index 3e5e398c91e8..0b7c01ed0b0b 100644 --- a/code/modules/projectiles/guns/flamer/flameshape.dm +++ b/code/modules/projectiles/guns/flamer/flameshape.dm @@ -67,7 +67,7 @@ return GLOB.alldirs /datum/flameshape/star/handle_fire_spread(obj/flamer_fire/F, fire_spread_amount, burn_dam, fuel_pressure = 1) - fire_spread_amount = Floor(fire_spread_amount * 1.5) // branch 'length' + fire_spread_amount = floor(fire_spread_amount * 1.5) // branch 'length' var/turf/source_turf = get_turf(F.loc) var/list/dirs = dirs_to_use() diff --git a/code/modules/vehicles/hardpoints/primary/minigun.dm b/code/modules/vehicles/hardpoints/primary/minigun.dm index 03d1e7be0077..81b383b3fbc2 100644 --- a/code/modules/vehicles/hardpoints/primary/minigun.dm +++ b/code/modules/vehicles/hardpoints/primary/minigun.dm @@ -77,8 +77,8 @@ return spin_stage = clamp(spin_stage, 1, stage_rate_len) - var/old_stage_rate = stage_rate[Floor(old_spin_stage)] - var/new_stage_rate = stage_rate[Floor(spin_stage)] + var/old_stage_rate = stage_rate[floor(old_spin_stage)] + var/new_stage_rate = stage_rate[floor(spin_stage)] if(old_stage_rate != new_stage_rate) stage_delay_mult = 1 / new_stage_rate diff --git a/code/modules/vehicles/interior/interactable/vendors.dm b/code/modules/vehicles/interior/interactable/vendors.dm index d78764da4d73..c37eb6a5d9ef 100644 --- a/code/modules/vehicles/interior/interactable/vendors.dm +++ b/code/modules/vehicles/interior/interactable/vendors.dm @@ -330,7 +330,7 @@ to_chat(user, SPAN_WARNING("\The [S] are being stored in [SPAN_HELPFUL("stacks of 5")] for convenience. You need \the [S] stack of at least 5 to restock it.")) return FALSE else - stack_restock = Floor(S.amount / 5) + stack_restock = floor(S.amount / 5) //for the ease of finding enough materials to stack, it will be stored in stacks of 10 sheets just like they come in engie vendor else if(S.amount < 10) @@ -338,7 +338,7 @@ to_chat(user, SPAN_WARNING("\The [S] are being stored in [SPAN_HELPFUL("stacks of 10")] for convenience. You need \the [S] stack of at least 10 to restock it.")) return FALSE else - stack_restock = Floor(S.amount / 10) + stack_restock = floor(S.amount / 10) //item we are restocking is a stack and we need to conveniently restock it //instead of demanding user to split it into stacks of appropriate amount diff --git a/code/modules/vehicles/interior/interior.dm b/code/modules/vehicles/interior/interior.dm index 8fb65602c9b3..240c59e46fc5 100644 --- a/code/modules/vehicles/interior/interior.dm +++ b/code/modules/vehicles/interior/interior.dm @@ -309,12 +309,12 @@ /datum/interior/proc/get_middle_coords() var/turf/min = reservation.bottom_left_turfs[1] var/turf/max = reservation.top_right_turfs[1] - return list(Floor(min.x + (max.x - min.x)/2), Floor(min.y + (max.y - min.y)/2), min.z) + return list(floor(min.x + (max.x - min.x)/2), floor(min.y + (max.y - min.y)/2), min.z) /datum/interior/proc/get_middle_turf() var/list/turf/bounds = get_bound_turfs() - var/turf/middle = locate(Floor(bounds[1].x + (bounds[2].x - bounds[1].x)/2), Floor(bounds[1].y + (bounds[2].y - bounds[1].y)/2), bounds[1].z) + var/turf/middle = locate(floor(bounds[1].x + (bounds[2].x - bounds[1].x)/2), floor(bounds[1].y + (bounds[2].y - bounds[1].y)/2), bounds[1].z) return middle diff --git a/code/modules/vehicles/multitile/multitile_bump.dm b/code/modules/vehicles/multitile/multitile_bump.dm index 79789af054fa..70416537ba99 100644 --- a/code/modules/vehicles/multitile/multitile_bump.dm +++ b/code/modules/vehicles/multitile/multitile_bump.dm @@ -744,7 +744,7 @@ return TRUE else if (mob_moved) if(momentum_penalty) - V.move_momentum = Floor(V.move_momentum*0.8) + V.move_momentum = floor(V.move_momentum*0.8) V.update_next_move() playsound(loc, "punch", 25, 1) return TRUE @@ -769,7 +769,7 @@ visible_message(SPAN_DANGER("[src] digs it's claws into the ground, slowing [V]'s movement!"), SPAN_DANGER("You dig your claws into the ground, slowing [V]'s movement!")) var/mob_moved = step(src, V.last_move_dir) - V.move_momentum = Floor(V.move_momentum/3) + V.move_momentum = floor(V.move_momentum/3) V.update_next_move() return mob_moved diff --git a/code/modules/vehicles/multitile/multitile_movement.dm b/code/modules/vehicles/multitile/multitile_movement.dm index b5f308144707..9e2e652c7610 100644 --- a/code/modules/vehicles/multitile/multitile_movement.dm +++ b/code/modules/vehicles/multitile/multitile_movement.dm @@ -159,7 +159,7 @@ // Crashed with something that stopped us if(!can_move) - move_momentum = Floor(move_momentum/2) + move_momentum = floor(move_momentum/2) update_next_move() interior_crash_effect()