From b20f604d0cb28b4c006247a4cc713bd1341fc55d Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sun, 26 Apr 2015 01:48:30 -0400 Subject: [PATCH] Adjusts threshold for limb removal due to damage --- code/modules/organs/organ_external.dm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 650eea751cf..d55015d781f 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)