From 244c972c38020d4d2f153070ebb58b314a7d78d5 Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:59:01 -0500 Subject: [PATCH 01/15] nya --- code/game/objects/structures/noose.dm | 0 icons/obj/noose.dmi | Bin 0 -> 415 bytes sound/effects/noose_idle.ogg | Bin 0 -> 15466 bytes sound/effects/noosed.ogg | Bin 0 -> 21559 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 code/game/objects/structures/noose.dm create mode 100644 icons/obj/noose.dmi create mode 100644 sound/effects/noose_idle.ogg create mode 100644 sound/effects/noosed.ogg diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/icons/obj/noose.dmi b/icons/obj/noose.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4485007cd2d7b9787c87c69d59642ff70b313b1e GIT binary patch literal 415 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 literal 0 HcmV?d00001 diff --git a/sound/effects/noosed.ogg b/sound/effects/noosed.ogg new file mode 100644 index 0000000000000000000000000000000000000000..276d7f25a8fe5a28567c1d93f09f4ef235439224 GIT binary patch literal 21559 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 Date: Wed, 7 Feb 2024 17:10:37 -0500 Subject: [PATCH 02/15] uh --- code/datums/components/crafting/recipes.dm | 7 + code/game/objects/structures/noose.dm | 151 +++++++++++++++++++++ lobotomy-corp13.dme | 1 + 3 files changed, 159 insertions(+) diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 5216c617009a..0099574fc54c 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -703,6 +703,13 @@ /obj/item/stack/rods = 1) category = CAT_MISC +/datum/crafting_recipe/noose + name = "Noose" + result = /obj/structure/chair/noose + reqs = list(/obj/item/stack/cable_coil = 20) + time = 20 //i mean cmon you gotta attach it to the damn ceiling (fuck you cox its REAAL) + category = CAT_MISC + /datum/crafting_recipe/papersack name = "Paper Sack" result = /obj/item/storage/box/papersack diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index e69de29bb2d1..a813cca50f14 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -0,0 +1,151 @@ +/obj/item/stack/cable_coil/building_checks(datum/stack_recipe/R, multiplier) + if(R.result_type == /obj/structure/chair/noose) + if(!(locate(/obj/structure/chair) in get_turf(usr))) + to_chat(usr, span_warning("You have to be standing on top of a chair to make a noose!")) + return FALSE + return ..() + +/obj/structure/chair/noose //It's a "chair". + name = "noose" + desc = "Hang in there!" + icon_state = "noose" + icon = 'icons/obj/noose.dmi' + layer = FLY_LAYER + flags_1 = NODECONSTRUCT_1 + var/mutable_appearance/overlay + +/obj/structure/chair/noose/attackby(obj/item/W, mob/user, params) + if(W.tool_behaviour == TOOL_WIRECUTTER) + user.visible_message("[user] cuts the noose.", span_notice("You cut the noose.")) + if(has_buckled_mobs()) + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + if(buckled_mob.has_gravity()) + buckled_mob.visible_message(span_warning("[buckled_mob] falls over and hits the ground!")) + to_chat(buckled_mob, span_userdanger("You fall over and hit the ground!")) + buckled_mob.adjustBruteLoss(10) + var/obj/item/stack/cable_coil/C = new(get_turf(src)) + C.amount = 25 + qdel(src) + return + ..() + +/obj/structure/chair/noose/Initialize(mapload) + . = ..() + pixel_y += 16 //Noose looks like it's "hanging" in the air + overlay = image(icon, "noose_overlay") + overlay.layer = FLY_LAYER + add_overlay(overlay) + +/obj/structure/chair/noose/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/structure/chair/noose/post_buckle_mob(mob/living/M) + if(has_buckled_mobs()) + src.layer = MOB_LAYER + START_PROCESSING(SSobj, src) + M.dir = SOUTH + animate(M, pixel_y = initial(pixel_y) + 8, time = 8, easing = LINEAR_EASING) + else + layer = initial(layer) + STOP_PROCESSING(SSobj, src) + M.pixel_x = M.base_pixel_x + pixel_x = base_pixel_x + M.pixel_y = M.body_position_pixel_y_offset + +/obj/structure/chair/noose/user_unbuckle_mob(mob/living/M,mob/living/user) + if(has_buckled_mobs()) + if(M != user) + user.visible_message(span_notice("[user] begins to untie the noose over [M]'s neck...")) + to_chat(user, span_notice("You begin to untie the noose over [M]'s neck...")) + if(!do_after(user, 10 SECONDS, M)) + return + user.visible_message(span_notice("[user] unties the noose over [M]'s neck!")) + to_chat(user, span_notice("You untie the noose over [M]'s neck!")) + M.Knockdown(60) + else + M.visible_message(span_warning("[M] struggles to untie the noose over their neck!")) + to_chat(M, span_notice("You struggle to untie the noose over your neck... (Stay still for 20 seconds.)")) + if(!do_after(M, 200, target = src)) // yeah if you dont try to untie yourself in like 6 seconds you're cooked + if(M && M.buckled) + to_chat(M, span_warning("You fail to untie yourself!")) + return + if(!M.buckled) + return + M.visible_message(span_warning("[M] unties the noose over their neck!")) + to_chat(M,span_notice("You untie the noose over your neck!")) + M.Knockdown(60) + unbuckle_all_mobs(force=1) + M.pixel_z = initial(M.pixel_z) + pixel_z = initial(pixel_z) + M.pixel_x = M.base_pixel_x + pixel_x = base_pixel_x + add_fingerprint(user) + +/obj/structure/chair/noose/user_buckle_mob(mob/living/carbon/human/M, mob/user, check_loc = TRUE) + //if(!in_range(user, src) || user.stat || user.restrained() || !iscarbon(M)) + //return FALSE + + if (!M.get_bodypart("head")) + to_chat(user, span_warning("[M] has no head!")) + return FALSE + + if(M.loc != src.loc) + return FALSE //Can only noose someone if they're on the same tile as noose + + add_fingerprint(user) + log_combat(user, M, "Attempted to Hang", src) + M.visible_message(span_danger("[user] attempts to tie \the [src] over [M]'s neck!")) + if(user != M) + to_chat(user, span_notice("It will take 20 seconds and you have to stand still.")) + if(do_after(user, user == M ? 0:20 SECONDS, M)) + if(buckle_mob(M)) + user.visible_message(span_warning("[user] ties \the [src] over [M]'s neck!")) + if(user == M) + to_chat(M, span_userdanger("You tie \the [src] over your neck!")) + else + to_chat(M, span_userdanger("[user] ties \the [src] over your neck!")) + playsound(user.loc, 'sound/effects/noosed.ogg', 50, 1, -1) + log_combat(user, M, "hanged", src) + return TRUE + user.visible_message(span_warning("[user] fails to tie \the [src] over [M]'s neck!")) + to_chat(user, span_warning("You fail to tie \the [src] over [M]'s neck!")) + return FALSE + + +/obj/structure/chair/noose/process() + if(!has_buckled_mobs()) + STOP_PROCESSING(SSobj, src) + return + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + if(pixel_x >= 0) + animate(src, pixel_x = -3, time = 45, easing = ELASTIC_EASING) + animate(m, pixel_x = -3, time = 45, easing = ELASTIC_EASING) + else + animate(src, pixel_x = 3, time = 45, easing = ELASTIC_EASING) + animate(m, pixel_x = 3, time = 45, easing = ELASTIC_EASING) + if(buckled_mob.has_gravity()) + if(buckled_mob.get_bodypart("head")) + if(buckled_mob.stat != DEAD) + if(!HAS_TRAIT(buckled_mob, TRAIT_NOBREATH)) + buckled_mob.adjustOxyLoss(5) + if(prob(40)) + buckled_mob.emote("gasp") + if(prob(20)) + var/flavor_text = list(span_suicide("[buckled_mob]'s legs flail for anything to stand on."),\ + span_suicide("[buckled_mob]'s hands are desperately clutching the noose."),\ + span_suicide("[buckled_mob]'s limbs sway back and forth with diminishing strength.") + ) + + buckled_mob.visible_message(pick(flavor_text)) + playsound(buckled_mob.loc, 'sound/effects/noose_idle.ogg', 30, 1, -3) + else + buckled_mob.visible_message(span_danger("[buckled_mob] drops from the noose!")) + buckled_mob.Knockdown(60) + buckled_mob.pixel_z = initial(buckled_mob.pixel_z) + pixel_z = initial(pixel_z) + buckled_mob.pixel_x = initial(buckled_mob.pixel_x) + pixel_x = initial(pixel_x) + unbuckle_all_mobs(force=1) diff --git a/lobotomy-corp13.dme b/lobotomy-corp13.dme index 9d8ce9db600d..9841843e9881 100644 --- a/lobotomy-corp13.dme +++ b/lobotomy-corp13.dme @@ -1440,6 +1440,7 @@ #include "code\game\objects\structures\mirror.dm" #include "code\game\objects\structures\mop_bucket.dm" #include "code\game\objects\structures\morgue.dm" +#include "code\game\objects\structures\noose.dm" #include "code\game\objects\structures\noticeboard.dm" #include "code\game\objects\structures\ordealmonitor.dm" #include "code\game\objects\structures\petrified_statue.dm" From 5fb2fec0ade63c09325e646c85ea08db2d25a4c1 Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Wed, 7 Feb 2024 17:23:58 -0500 Subject: [PATCH 03/15] Update code/game/objects/structures/noose.dm Co-authored-by: Gboster-0 <82319946+Gboster-0@users.noreply.github.com> --- code/game/objects/structures/noose.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index a813cca50f14..dc6596d3f700 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -15,7 +15,9 @@ var/mutable_appearance/overlay /obj/structure/chair/noose/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WIRECUTTER) + if(W.tool_behaviour != TOOL_WIRECUTTER) + return ..() + [the rest of code 1 layer thinner] user.visible_message("[user] cuts the noose.", span_notice("You cut the noose.")) if(has_buckled_mobs()) for(var/m in buckled_mobs) From b233b4385ef875689d54faf8a81e34030323960b Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Wed, 7 Feb 2024 19:54:04 -0500 Subject: [PATCH 04/15] Update noose.dm --- code/game/objects/structures/noose.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index dc6596d3f700..57404065402a 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -17,7 +17,6 @@ /obj/structure/chair/noose/attackby(obj/item/W, mob/user, params) if(W.tool_behaviour != TOOL_WIRECUTTER) return ..() - [the rest of code 1 layer thinner] user.visible_message("[user] cuts the noose.", span_notice("You cut the noose.")) if(has_buckled_mobs()) for(var/m in buckled_mobs) @@ -29,8 +28,7 @@ var/obj/item/stack/cable_coil/C = new(get_turf(src)) C.amount = 25 qdel(src) - return - ..() + /obj/structure/chair/noose/Initialize(mapload) . = ..() From 771ffee5c52a46ac8399d5b10fd5da919f75342c Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Wed, 7 Feb 2024 19:57:50 -0500 Subject: [PATCH 05/15] Update noose.dm --- code/game/objects/structures/noose.dm | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index 57404065402a..91b69d3b8600 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -16,19 +16,18 @@ /obj/structure/chair/noose/attackby(obj/item/W, mob/user, params) if(W.tool_behaviour != TOOL_WIRECUTTER) - return ..() - user.visible_message("[user] cuts the noose.", span_notice("You cut the noose.")) - if(has_buckled_mobs()) - for(var/m in buckled_mobs) - var/mob/living/buckled_mob = m - if(buckled_mob.has_gravity()) - buckled_mob.visible_message(span_warning("[buckled_mob] falls over and hits the ground!")) - to_chat(buckled_mob, span_userdanger("You fall over and hit the ground!")) - buckled_mob.adjustBruteLoss(10) - var/obj/item/stack/cable_coil/C = new(get_turf(src)) - C.amount = 25 - qdel(src) - + return ..() + user.visible_message("[user] cuts the noose.", span_notice("You cut the noose.")) + if(has_buckled_mobs()) + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + if(buckled_mob.has_gravity()) + buckled_mob.visible_message(span_warning("[buckled_mob] falls over and hits the ground!")) + to_chat(buckled_mob, span_userdanger("You fall over and hit the ground!")) + buckled_mob.adjustBruteLoss(10) + var/obj/item/stack/cable_coil/C = new(get_turf(src)) + C.amount = 25 + qdel(src) /obj/structure/chair/noose/Initialize(mapload) . = ..() From 4d289ca23a1c77d96325b7b306071c0ea454820c Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Wed, 7 Feb 2024 20:00:56 -0500 Subject: [PATCH 06/15] Update noose.dm --- code/game/objects/structures/noose.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index 91b69d3b8600..5b0b13dbeba2 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -16,7 +16,7 @@ /obj/structure/chair/noose/attackby(obj/item/W, mob/user, params) if(W.tool_behaviour != TOOL_WIRECUTTER) - return ..() + return ..() user.visible_message("[user] cuts the noose.", span_notice("You cut the noose.")) if(has_buckled_mobs()) for(var/m in buckled_mobs) From 4fdffc9b25bbe0f05b250c930e60d99daea8cf6b Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Wed, 7 Feb 2024 20:59:59 -0500 Subject: [PATCH 07/15] Update recipes.dm --- code/datums/components/crafting/recipes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 0099574fc54c..a77a37abd91c 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -707,7 +707,7 @@ name = "Noose" result = /obj/structure/chair/noose reqs = list(/obj/item/stack/cable_coil = 20) - time = 20 //i mean cmon you gotta attach it to the damn ceiling (fuck you cox its REAAL) + time = 20 //womp womp category = CAT_MISC /datum/crafting_recipe/papersack From c031c8fe153d5377ea95b155c197f6d4ec890411 Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Wed, 7 Feb 2024 21:50:35 -0500 Subject: [PATCH 08/15] Update recipes.dm --- code/datums/components/crafting/recipes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index a77a37abd91c..e65497852430 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -707,7 +707,7 @@ name = "Noose" result = /obj/structure/chair/noose reqs = list(/obj/item/stack/cable_coil = 20) - time = 20 //womp womp + time = 20 SECONDS //womp womp category = CAT_MISC /datum/crafting_recipe/papersack From 83ef2503e1d0159eb353caca7547d86efcfc88df Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Fri, 9 Feb 2024 15:15:34 -0500 Subject: [PATCH 09/15] VSC apparently said that welfare core has no newline, so here --- code/modules/suppressions/welfare.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/suppressions/welfare.dm b/code/modules/suppressions/welfare.dm index 4e6f81b65529..ece45057659d 100644 --- a/code/modules/suppressions/welfare.dm +++ b/code/modules/suppressions/welfare.dm @@ -243,3 +243,4 @@ return FALSE L.apply_status_effect(STATUS_EFFECT_WELFARE_REWARD) return TRUE + From 450ee6891562f8a039e1cbb589dec6349ddb9a2d Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Sun, 11 Feb 2024 11:08:54 -0500 Subject: [PATCH 10/15] Update noose.dm --- code/game/objects/structures/noose.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index 5b0b13dbeba2..b47205a069e8 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -83,8 +83,7 @@ add_fingerprint(user) /obj/structure/chair/noose/user_buckle_mob(mob/living/carbon/human/M, mob/user, check_loc = TRUE) - //if(!in_range(user, src) || user.stat || user.restrained() || !iscarbon(M)) - //return FALSE + if (!M.get_bodypart("head")) to_chat(user, span_warning("[M] has no head!")) From e351a946f8f173ed3c33cbcafec5f47eac886965 Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Tue, 13 Feb 2024 17:25:20 -0500 Subject: [PATCH 11/15] makes noose silly --- code/game/objects/structures/noose.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index b47205a069e8..2c6b1bc62256 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -69,6 +69,11 @@ if(!do_after(M, 200, target = src)) // yeah if you dont try to untie yourself in like 6 seconds you're cooked if(M && M.buckled) to_chat(M, span_warning("You fail to untie yourself!")) + + if(user?.mind?.assigned_role != "Records Officer") + !do_after(M, 300, target = src) + if(user?.mind?.assigned_role != "Extraction Officer") + !do_after(M, 300, target = src) return if(!M.buckled) return From 8bb15f59724148154cc7aa163ce66018caf3c50d Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Sun, 7 Apr 2024 01:53:16 -0400 Subject: [PATCH 12/15] Update noose.dm --- code/game/objects/structures/noose.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index 2c6b1bc62256..7b2628f29579 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -71,9 +71,9 @@ to_chat(M, span_warning("You fail to untie yourself!")) if(user?.mind?.assigned_role != "Records Officer") - !do_after(M, 300, target = src) + if(!do_after(M, 300, target = src)) if(user?.mind?.assigned_role != "Extraction Officer") - !do_after(M, 300, target = src) + if(!do_after(M, 300, target = src)) return if(!M.buckled) return From cb240dd9652d054c8f2747fcb8f196eb395c7a60 Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Sun, 7 Apr 2024 15:34:23 -0400 Subject: [PATCH 13/15] Update noose.dm --- code/game/objects/structures/noose.dm | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index 7b2628f29579..b268da2cfb14 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -65,16 +65,23 @@ M.Knockdown(60) else M.visible_message(span_warning("[M] struggles to untie the noose over their neck!")) - to_chat(M, span_notice("You struggle to untie the noose over your neck... (Stay still for 20 seconds.)")) - if(!do_after(M, 200, target = src)) // yeah if you dont try to untie yourself in like 6 seconds you're cooked - if(M && M.buckled) - to_chat(M, span_warning("You fail to untie yourself!")) - - if(user?.mind?.assigned_role != "Records Officer") - if(!do_after(M, 300, target = src)) - if(user?.mind?.assigned_role != "Extraction Officer") - if(!do_after(M, 300, target = src)) - return + var/hanging_time = 50 SECONDS + +var = hanging_time = 50 SECONDS + +// This isn't their first rodeo +if(user?.mind?.assigned_role == "Records Officer" || "Extraction Officer") + to_chat(hanging_mob, span_notice("Your previous expiriences immediatelly come to your mind... you are able to untie yourself faster!")) + hanging_time = 20 SECONDS + +to_chat(hanging_mob, span_notice("You struggle to untie the noose over your neck... (Stay still for [hanging_time / 10] seconds.)")) // yes... stay still +hanging_mob.visible_message(span_warning("[hanging_mob] struggles to untie the noose over their neck!")) + +// yeah if you dont try to untie yourself in like 6 seconds you're cooked +if(!do_after(hanging_mob, hanging_time, target = src)) + if(hanging_mob && hanging_mob.buckled) + to_chat(hanging_mob, span_userdanger("You fail to untie yourself, your hands slipping!")) + return if(!M.buckled) return M.visible_message(span_warning("[M] unties the noose over their neck!")) From adab6dbdb80c3149485ebb1e36747d7d7c079375 Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Sun, 7 Apr 2024 15:34:51 -0400 Subject: [PATCH 14/15] Update noose.dm --- code/game/objects/structures/noose.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index b268da2cfb14..39f1bb5774cd 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -65,7 +65,6 @@ M.Knockdown(60) else M.visible_message(span_warning("[M] struggles to untie the noose over their neck!")) - var/hanging_time = 50 SECONDS var = hanging_time = 50 SECONDS From ce4167a1f455230fb666f2e9e0edde48c0d3b063 Mon Sep 17 00:00:00 2001 From: Litberries <129991883+Litberries@users.noreply.github.com> Date: Sun, 7 Apr 2024 22:31:55 -0400 Subject: [PATCH 15/15] Update noose.dm --- code/game/objects/structures/noose.dm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/code/game/objects/structures/noose.dm b/code/game/objects/structures/noose.dm index 39f1bb5774cd..f241f2122c8f 100644 --- a/code/game/objects/structures/noose.dm +++ b/code/game/objects/structures/noose.dm @@ -66,21 +66,21 @@ else M.visible_message(span_warning("[M] struggles to untie the noose over their neck!")) -var = hanging_time = 50 SECONDS + var = hanging_time = 40 -// This isn't their first rodeo -if(user?.mind?.assigned_role == "Records Officer" || "Extraction Officer") - to_chat(hanging_mob, span_notice("Your previous expiriences immediatelly come to your mind... you are able to untie yourself faster!")) - hanging_time = 20 SECONDS + // This is their first rodeo + if(user?.mind?.assigned_role == "Records Officer" || "Extraction Officer") + to_chat(hanging_mob, span_notice("You have no experience untying a knot... how the hell do you untie this thing?!")) + hanging_time = 50 SECONDS -to_chat(hanging_mob, span_notice("You struggle to untie the noose over your neck... (Stay still for [hanging_time / 10] seconds.)")) // yes... stay still -hanging_mob.visible_message(span_warning("[hanging_mob] struggles to untie the noose over their neck!")) + to_chat(hanging_mob, span_notice("You struggle to untie the noose over your neck... (Stay still for [hanging_time / 10] seconds.)")) // yes... stay still + hanging_mob.visible_message(span_warning("[hanging_mob] struggles to untie the noose over their neck!")) -// yeah if you dont try to untie yourself in like 6 seconds you're cooked -if(!do_after(hanging_mob, hanging_time, target = src)) - if(hanging_mob && hanging_mob.buckled) - to_chat(hanging_mob, span_userdanger("You fail to untie yourself, your hands slipping!")) - return + // yeah if you dont try to untie yourself in like 6 seconds you're cooked + if(!do_after(hanging_mob, hanging_time, target = src)) + if(hanging_mob && hanging_mob.buckled) + to_chat(hanging_mob, span_userdanger("You fail to untie yourself, your hands slipping!")) + return if(!M.buckled) return M.visible_message(span_warning("[M] unties the noose over their neck!"))