From 92a537da63eb8bb591546808fffd8e633798147e Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 29 May 2020 19:12:46 -0700 Subject: [PATCH] Damage fix --- code/modules/mob/living/carbon/human/human_defense.dm | 2 +- .../mob/living/carbon/monkey/monkey_defense.dm | 2 +- code/modules/mob/living/living_defense.dm | 11 +++++++---- code/modules/mob/living/silicon/silicon_defense.dm | 2 +- .../mob/living/simple_animal/animal_defense.dm | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 3a2d0535e6..f1281171a1 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -214,7 +214,7 @@ /mob/living/carbon/human/attack_animal(mob/living/simple_animal/M) . = ..() if(.) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/damage = . var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) if(!dam_zone) //Dismemberment successful return TRUE diff --git a/code/modules/mob/living/carbon/monkey/monkey_defense.dm b/code/modules/mob/living/carbon/monkey/monkey_defense.dm index 50793eb821..8f862af8fa 100644 --- a/code/modules/mob/living/carbon/monkey/monkey_defense.dm +++ b/code/modules/mob/living/carbon/monkey/monkey_defense.dm @@ -141,7 +141,7 @@ /mob/living/carbon/monkey/attack_animal(mob/living/simple_animal/M) . = ..() if(.) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/damage = . var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) if(!dam_zone) //Dismemberment successful return TRUE diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 02bc88d286..e8faa7b3ec 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -337,13 +337,16 @@ M.visible_message("\The [M] [M.friendly_verb_continuous] [src]!", "You [M.friendly_verb_simple] [src]!", target = src, target_message = "\The [M] [M.friendly_verb_continuous] you!") - return FALSE + return 0 else if(HAS_TRAIT(M, TRAIT_PACIFISM)) to_chat(M, "You don't want to hurt anyone!") return FALSE - if(mob_run_block(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS) - return FALSE + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/list/return_list = list() + if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), return_list) & BLOCK_SUCCESS) + return 0 + damage = block_calculate_resultant_damage(damage, return_list) if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) M.do_attack_animation(src) @@ -351,7 +354,7 @@ "\The [M] [M.attack_verb_continuous] you!", null, COMBAT_MESSAGE_RANGE, null, M, "You [M.attack_verb_simple] [src]!") log_combat(M, src, "attacked") - return TRUE + return damage /mob/living/attack_paw(mob/living/carbon/monkey/M) if (M.a_intent == INTENT_HARM) diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index f3cedf43cf..e5b487d510 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -33,7 +33,7 @@ /mob/living/silicon/attack_animal(mob/living/simple_animal/M) . = ..() if(.) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/damage = . if(prob(damage)) for(var/mob/living/N in buckled_mobs) N.DefaultCombatKnockdown(20) diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index 1e56e91ae1..278bb37d0d 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -94,7 +94,7 @@ /mob/living/simple_animal/attack_animal(mob/living/simple_animal/M) . = ..() if(.) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/damage = . return attack_threshold_check(damage, M.melee_damage_type) /mob/living/simple_animal/attack_slime(mob/living/simple_animal/slime/M)