diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index 3095e805be6a..e54383a07b9d 100644 --- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm +++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm @@ -1011,22 +1011,21 @@ 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 - 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() 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)