diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index d6429705809..c629e5f114a 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -308,11 +308,11 @@ This function restores all organs. updatehealth() hud_updateflag |= 1 << HEALTH_HUD - //Embedded projectile code. + //Embedded object code. if(!organ) return - if(istype(used_weapon,/obj/item/weapon)) - var/obj/item/weapon/W = used_weapon //Sharp objects will always embed if they do enough damage. - if( (damage > (10*W.w_class)) && ( (sharp && !ismob(W.loc)) || prob(damage/W.w_class) ) ) + if(istype(used_weapon,/obj/item)) + var/obj/item/W = used_weapon //Sharp objects will always embed if they do enough damage. + if((damage > (10*W.w_class)) || ((sharp && !ismob(W.loc)) || prob(damage/W.w_class))) organ.embed(W) return 1 diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index f8ba80e6380..d8aa866fa8b 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -80,8 +80,9 @@ playsound(loc, W.hitsound, 30, 1, -1) src.visible_message("\red [src] has been hit by [O].") var/armor = run_armor_check(zone, "melee", "Your armor has protected your [zone].", "Your armor has softened hit to your [zone].") + if(armor < 2) - apply_damage(O.throwforce*(speed/5), dtype, zone, armor, O, sharp=is_sharp(O), edge=has_edge(O)) + apply_damage(O.throwforce*(speed/5), dtype, zone, armor, is_sharp(O), has_edge(O), O) if(!O.fingerprintslast) return @@ -101,7 +102,7 @@ // Begin BS12 momentum-transfer code. - if(speed >= 20) + if(speed >= 15) var/obj/item/weapon/W = O var/momentum = speed/2 var/dir = get_dir(M,src) @@ -109,6 +110,8 @@ visible_message("\red [src] staggers under the impact!","\red You stagger under the impact!") src.throw_at(get_edge_target_turf(src,dir),1,momentum) + if(!W || !src) return + if(istype(W.loc,/mob/living) && W.sharp) //Projectile is embedded and suitable for pinning. if(!istype(src,/mob/living/carbon/human)) //Handles embedding for non-humans and simple_animals. diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 4bbfcd851a8..d91a0b73a01 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -816,7 +816,6 @@ player's body, though, antitox and spaceacillin are easy enough to get I doubt i H.drop_item() W.loc = owner - /**************************************************** ORGAN DEFINES ****************************************************/