diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 54398901afa..f51824d7108 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -6,6 +6,7 @@ #define DROPLIMB_THRESHOLD_EDGE 5 #define DROPLIMB_THRESHOLD_TEAROFF 2 #define DROPLIMB_THRESHOLD_DESTROY 1 +#define DROPLIMB_THRESHOLD_DESTROY_PROJECTILE 2 #define FRACTURE_AND_TENDON_DAM_THRESHOLD 30 // if a weapon does more than this amount of damage, it's powerful enough to sever the tendon AND fracture the bone, if it's a sharp weapon @@ -403,10 +404,11 @@ var/edge_eligible = FALSE var/blunt_eligible = FALSE var/maim_bonus = 0 - + var/dam_flags = 0 + if(isitem(used_weapon)) var/obj/item/W = used_weapon - var/dam_flags = W.damage_flags() + dam_flags = W.damage_flags() if(isprojectile(W)) var/obj/item/projectile/P = W if(dam_flags & DAM_BULLET) @@ -417,9 +419,9 @@ if(!blunt_eligible && edge_eligible && (brute >= max_damage / (DROPLIMB_THRESHOLD_EDGE + maim_bonus))) droplimb(0, DROPLIMB_EDGE) - else if(burn >= max_damage / (DROPLIMB_THRESHOLD_DESTROY + maim_bonus)) + else if(burn >= max_damage / ((dam_flags & DAM_LASER ? DROPLIMB_THRESHOLD_DESTROY_PROJECTILE : DROPLIMB_THRESHOLD_DESTROY) + maim_bonus)) droplimb(0, DROPLIMB_BURN) - else if(brute >= max_damage / (DROPLIMB_THRESHOLD_DESTROY + maim_bonus)) + else if(blunt_eligible && brute >= max_damage / ((dam_flags & DAM_BULLET ? DROPLIMB_THRESHOLD_DESTROY_PROJECTILE : DROPLIMB_THRESHOLD_DESTROY) + maim_bonus)) droplimb(0, DROPLIMB_BLUNT) else if(brute >= max_damage / (DROPLIMB_THRESHOLD_TEAROFF + maim_bonus)) droplimb(0, DROPLIMB_EDGE) diff --git a/html/changelogs/mattatlas-gibs.yml b/html/changelogs/mattatlas-gibs.yml new file mode 100644 index 00000000000..b4624aca1c0 --- /dev/null +++ b/html/changelogs/mattatlas-gibs.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Bullets now gib limbs instead of cleanly delimbing them, as they were intended to." + - bugfix: "Fixed lasers being unable to delimb most of the time."