diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index f8f4a9bfff7..b56b789f8e0 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -707,11 +707,7 @@ Note that amputating the affected organ does in fact remove the infection from t wounds.Cut() if(parent) - var/datum/wound/W - if(clean || max_damage < 50) - W = new/datum/wound/lost_limb/small(max_damage/2) - else - W = new/datum/wound/lost_limb(max_damage) + var/datum/wound/lost_limb/W = new (src, disintegrate, clean) parent.children -= src if(clean) parent.wounds |= W diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm index 1d34ed72845..8f39b91555a 100644 --- a/code/modules/organs/wound.dm +++ b/code/modules/organs/wound.dm @@ -315,12 +315,32 @@ datum/wound/cut/massive /** EXTERNAL ORGAN LOSS **/ /datum/wound/lost_limb - damage_type = CUT - stages = list("ripped stump" = 65, "bloody stump" = 50, "clotted stump" = 25, "scarred stump" = 0) - max_bleeding_stage = 3 - can_merge(var/datum/wound/other) - return 0 //cannot be merged +/datum/wound/lost_limb/New(var/obj/item/organ/external/lost_limb, var/losstype, var/clean) + var/damage_amt = lost_limb.max_damage + if(clean) damage_amt /= 2 + + switch(losstype) + if(DROPLIMB_EDGE, DROPLIMB_BLUNT) + damage_type = CUT + max_bleeding_stage = 3 + stages = list( + "ripped stump" = damage_amt*1.3, + "bloody stump" = damage_amt, + "clotted stump" = damage_amt*0.5, + "scarred stump" = 0 + ) + if(DROPLIMB_BURN) + damage_type = BURN + max_bleeding_stage = 1 + stages = list( + "ripped charred stump" = damage_amt*1.3, + "charred stump" = damage_amt, + "scarred stump" = damage_amt*0.5, + "scarred stump" = 0 + ) + + ..(damage_amt) -/datum/wound/lost_limb/small - stages = list("ripped hole" = 40, "bloody hole" = 30, "clotted hole" = 15, "scarred hole" = 0) +/datum/wound/lost_limb/can_merge(var/datum/wound/other) + return 0 //cannot be merged \ No newline at end of file