diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 82790c1304..a1b74942e0 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -248,11 +248,12 @@ /obj/item/bodypart/proc/set_disabled(new_disabled) if(disabled == new_disabled) - return + return FALSE disabled = new_disabled owner.update_health_hud() //update the healthdoll owner.update_body() owner.update_canmove() + return TRUE //Updates an organ's brute/burn states for use by update_damage_overlays() //Returns 1 if we need to update overlays. 0 otherwise. @@ -654,20 +655,17 @@ /obj/item/bodypart/l_arm/set_disabled(new_disabled) . = ..() - if(disabled == new_disabled) + if(!.) return - if(disabled == BODYPART_DISABLED_DAMAGE) - if(owner.stat > UNCONSCIOUS) - owner.emote("scream") - if(. && (owner.stat > DEAD)) - to_chat(owner, "Your [name] is too damaged to function!") - if(held_index) - owner.dropItemToGround(owner.get_item_for_held_index(held_index)) - else if(disabled == BODYPART_DISABLED_PARALYSIS) - if(. && (owner.stat > DEAD)) - to_chat(owner, "You can't feel your [name]!") - if(held_index) - owner.dropItemToGround(owner.get_item_for_held_index(held_index)) + if(owner.stat < UNCONSCIOUS) + switch(disabled) + if(BODYPART_DISABLED_DAMAGE) + owner.emote("scream") + to_chat(owner, "Your [name] is too damaged to function!") + if(BODYPART_DISABLED_PARALYSIS) + to_chat(owner, "You can't feel your [name]!") + if(held_index) + owner.dropItemToGround(owner.get_item_for_held_index(held_index)) if(owner.hud_used) var/obj/screen/inventory/hand/L = owner.hud_used.hand_slots["[held_index]"] if(L) @@ -718,20 +716,17 @@ /obj/item/bodypart/r_arm/set_disabled(new_disabled) . = ..() - if(disabled == new_disabled) + if(!.) return - if(disabled == BODYPART_DISABLED_DAMAGE) - if(owner.stat > UNCONSCIOUS) - owner.emote("scream") - if(. && (owner.stat > DEAD)) - to_chat(owner, "Your [name] is too damaged to function!") - if(held_index) - owner.dropItemToGround(owner.get_item_for_held_index(held_index)) - else if(disabled == BODYPART_DISABLED_PARALYSIS) - if(. && (owner.stat > DEAD)) - to_chat(owner, "You can't feel your [name]!") - if(held_index) - owner.dropItemToGround(owner.get_item_for_held_index(held_index)) + if(owner.stat < UNCONSCIOUS) + switch(disabled) + if(BODYPART_DISABLED_DAMAGE) + owner.emote("scream") + to_chat(owner, "Your [name] is too damaged to function!") + if(BODYPART_DISABLED_PARALYSIS) + to_chat(owner, "You can't feel your [name]!") + if(held_index) + owner.dropItemToGround(owner.get_item_for_held_index(held_index)) if(owner.hud_used) var/obj/screen/inventory/hand/R = owner.hud_used.hand_slots["[held_index]"] if(R) @@ -783,15 +778,13 @@ /obj/item/bodypart/l_leg/set_disabled(new_disabled) . = ..() - if(disabled == new_disabled) + if(!. || owner.stat >= UNCONSCIOUS) return - if(disabled == BODYPART_DISABLED_DAMAGE) - if(owner.stat > UNCONSCIOUS) + switch(disabled) + if(BODYPART_DISABLED_DAMAGE) owner.emote("scream") - if(. && (owner.stat > DEAD)) to_chat(owner, "Your [name] is too damaged to function!") - else if(disabled == BODYPART_DISABLED_PARALYSIS) - if(. && (owner.stat > DEAD)) + if(BODYPART_DISABLED_PARALYSIS) to_chat(owner, "You can't feel your [name]!") @@ -845,15 +838,13 @@ /obj/item/bodypart/r_leg/set_disabled(new_disabled) . = ..() - if(disabled == new_disabled) + if(!. || owner.stat >= UNCONSCIOUS) return - if(disabled == BODYPART_DISABLED_DAMAGE) - if(owner.stat > UNCONSCIOUS) + switch(disabled) + if(BODYPART_DISABLED_DAMAGE) owner.emote("scream") - if(. && (owner.stat > DEAD)) to_chat(owner, "Your [name] is too damaged to function!") - else if(disabled == BODYPART_DISABLED_PARALYSIS) - if(. && (owner.stat > DEAD)) + if(BODYPART_DISABLED_PARALYSIS) to_chat(owner, "You can't feel your [name]!") /obj/item/bodypart/r_leg/digitigrade