From d26fe6c877a1de6ec7560cb57c88bc9673bdf0ce Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 25 Jul 2017 17:34:27 -0500 Subject: [PATCH] Attacking yourself always hits the zone you're targeting (#2131) --- code/modules/mob/living/carbon/carbon_defense.dm | 6 +++++- code/modules/mob/living/carbon/human/human_defense.dm | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 780fabe64d..23d89c866f 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -68,7 +68,11 @@ /mob/living/carbon/attacked_by(obj/item/I, mob/living/user) - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) + var/obj/item/bodypart/affecting + if(user == src) + affecting = get_bodypart(check_zone(user.zone_selected)) //we're self-mutilating! yay! + else + affecting = get_bodypart(ran_zone(user.zone_selected)) if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest) affecting = bodyparts[1] send_item_attack_message(I, user, affecting.name) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index e534598e25..7cc7c2f7fc 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -156,8 +156,13 @@ if(!I || !user) return 0 - var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) //what we're actually ending up trying to hit. + var/obj/item/bodypart/affecting + if(user == src) + affecting = get_bodypart(check_zone(user.zone_selected)) //stabbing yourself always hits the right target + else + affecting = get_bodypart(ran_zone(user.zone_selected)) var/target_area = parse_zone(check_zone(user.zone_selected)) //our intended target + SSblackbox.add_details("item_used_for_combat","[I.type]|[I.force]") SSblackbox.add_details("zone_targeted","[target_area]")