diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 221c66df6e..61a011e594 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -214,17 +214,21 @@ //If limb took enough damage, try to cut or tear it off if(owner && loc == owner) if(!cannot_amputate && config.limbs_can_break && (brute_dam + burn_dam) >= (max_damage * config.organ_health_multiplier)) - var/threshold = max_damage/3 + var/threshold = max_damage var/dropped if((burn >= threshold) && prob(burn/3)) dropped = 1 droplimb(0,DROPLIMB_BURN) if(!dropped && prob(brute)) - if(brute >= threshold) - if((sharp || edge) && istype(used_weapon,/obj/item)) - var/obj/item/W = used_weapon - if(W.w_class >= 3) - droplimb(0,DROPLIMB_EDGE) + var/edge_eligible = 0 + if(edge && istype(used_weapon,/obj/item)) + var/obj/item/W = used_weapon + if(W.w_class >= 3) + edge_eligible = 1 + + if(brute >= threshold || (edge_eligible && brute >= threshold/3)) + if((sharp || edge)) + droplimb(0,DROPLIMB_EDGE) else droplimb(0,DROPLIMB_BLUNT)