diff --git a/code/modules/mob/living/carbon/resist.dm b/code/modules/mob/living/carbon/resist.dm index 775ef920e8b..95ee36b1f6b 100644 --- a/code/modules/mob/living/carbon/resist.dm +++ b/code/modules/mob/living/carbon/resist.dm @@ -1,9 +1,5 @@ -/mob/living/carbon/resist() - //need to allow !canmove, or otherwise neck grabs can't be resisted - //so just check weakened instead. - if(stat || weakened || next_move > world.time) - return +/mob/living/carbon/process_resist() //drop && roll if(on_fire) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index cb36ac853e4..3bf702b872f 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -460,13 +460,20 @@ set name = "Resist" set category = "IC" + if(can_resist()) + next_move = world.time + 20 + process_resist() + +/mob/living/proc/can_resist() //need to allow !canmove, or otherwise neck grabs can't be resisted //so just check weakened instead. - if(stat || weakened || next_move > world.time) - return - - next_move = world.time + 20 + if(stat || weakened) + return 0 + if(next_move > world.time) + return 0 + return 1 +/mob/living/proc/process_resist() //Getting out of someone's inventory. if(istype(src.loc, /obj/item/weapon/holder)) escape_inventory(src.loc) diff --git a/code/modules/mob/living/simple_animal/borer/borer_captive.dm b/code/modules/mob/living/simple_animal/borer/borer_captive.dm index 79e78b4d5e7..25cc18cdd26 100644 --- a/code/modules/mob/living/simple_animal/borer/borer_captive.dm +++ b/code/modules/mob/living/simple_animal/borer/borer_captive.dm @@ -34,7 +34,10 @@ /mob/living/captive_brain/emote(var/message) return -/mob/living/captive_brain/resist() +/mob/living/captive_brain/can_resist() + return !(stat || next_move > world.time) + +/mob/living/captive_brain/process_resist() //Resisting control by an alien mind. if(istype(src.loc,/mob/living/simple_animal/borer)) var/mob/living/simple_animal/borer/B = src.loc