From 63124ed27ced87644c26573e6a8ebf303afbab08 Mon Sep 17 00:00:00 2001
From: SabreML <57483089+SabreML@users.noreply.github.com>
Date: Tue, 19 Dec 2023 14:52:29 +0000
Subject: [PATCH 1/3] The fix
---
code/modules/mob/living/living_verbs.dm | 17 ++++-------------
1 file changed, 4 insertions(+), 13 deletions(-)
diff --git a/code/modules/mob/living/living_verbs.dm b/code/modules/mob/living/living_verbs.dm
index 3a97725a6fc4..3f5f5403818a 100644
--- a/code/modules/mob/living/living_verbs.dm
+++ b/code/modules/mob/living/living_verbs.dm
@@ -170,25 +170,16 @@
return
//breaking out of handcuffs & putting out fires
- if(!is_mob_incapacitated(TRUE))
+ if(mobility_flags & MOBILITY_MOVE)
if(on_fire)
resist_fire()
-
- var/on_acid = FALSE
- for(var/datum/effects/acid/A in effects_list)
- on_acid = TRUE
- break
- if(on_acid)
+ if(is_type_in_list(/datum/effects/acid, effects_list))
resist_acid()
+ if(last_special <= world.time)
+ resist_restraints()
SEND_SIGNAL(src, COMSIG_MOB_RESISTED)
- if(!iscarbon(src))
- return
- var/mob/living/carbon/C = src
- if((C.handcuffed || C.legcuffed) && (C.mobility_flags & MOBILITY_MOVE) && (C.last_special <= world.time))
- resist_restraints()
-
/mob/living/proc/resist_buckle()
buckled.manual_unbuckle(src)
From 0a22633490ec02b1e89741e05a1b34a1b24b65eb Mon Sep 17 00:00:00 2001
From: SabreML <57483089+SabreML@users.noreply.github.com>
Date: Tue, 19 Dec 2023 14:52:37 +0000
Subject: [PATCH 2/3] Fixing the fix
---
code/modules/mob/living/carbon/xenomorph/Xenomorph.dm | 2 ++
1 file changed, 2 insertions(+)
diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
index 3095e805be6a..4af842da0f47 100644
--- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
@@ -1011,6 +1011,8 @@
SPAN_NOTICE("We extinguish ourselves."), null, 5)
/mob/living/carbon/xenomorph/resist_restraints()
+ if(!legcuffed)
+ return
var/breakouttime = legcuffed.breakouttime
next_move = world.time + 100
From 1b17fe9216378c617a1ac0fe2e0e406a865b5ed0 Mon Sep 17 00:00:00 2001
From: SabreML <57483089+SabreML@users.noreply.github.com>
Date: Tue, 19 Dec 2023 14:52:46 +0000
Subject: [PATCH 3/3] Plus a bit extra
---
.../mob/living/carbon/xenomorph/Xenomorph.dm | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
index 4af842da0f47..e54383a07b9d 100644
--- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
@@ -1015,20 +1015,17 @@
return
var/breakouttime = legcuffed.breakouttime
- next_move = world.time + 100
- last_special = world.time + 10
+ next_move = world.time + 10 SECONDS
+ last_special = world.time + 1 SECONDS
var/displaytime = max(1, round(breakouttime / 600)) //Minutes
- to_chat(src, SPAN_WARNING("We attempt to remove [legcuffed]. (This will take around [displaytime] minute(s) and we must stand still)"))
- for(var/mob/O in viewers(src))
- O.show_message(SPAN_DANGER("[usr] attempts to remove [legcuffed]!"), SHOW_MESSAGE_VISIBLE)
- if(!do_after(src, breakouttime, INTERRUPT_NO_NEEDHAND^INTERRUPT_RESIST, BUSY_ICON_HOSTILE))
+ visible_message(SPAN_DANGER("[src] attempts to remove [legcuffed]!"),
+ SPAN_WARNING("We attempt to remove [legcuffed]. (This will take around [displaytime] minute\s and we must stand still)"))
+ if(!do_after(src, breakouttime, INTERRUPT_NO_NEEDHAND ^ INTERRUPT_RESIST, BUSY_ICON_HOSTILE))
return
if(!legcuffed || buckled)
- return // time leniency for lag which also might make this whole thing pointless but the server
- for(var/mob/O in viewers(src))// lags so hard that 40s isn't lenient enough - Quarxink
- O.show_message(SPAN_DANGER("[src] manages to remove [legcuffed]!"), SHOW_MESSAGE_VISIBLE)
- to_chat(src, SPAN_NOTICE(" We successfully remove [legcuffed]."))
+ return
+ visible_message(SPAN_DANGER("[src] manages to remove [legcuffed]!"), SPAN_NOTICE("We successfully remove [legcuffed]."))
drop_inv_item_on_ground(legcuffed)
/mob/living/carbon/xenomorph/IgniteMob()