diff --git a/code/modules/mob/living/living_active_block.dm b/code/modules/mob/living/living_active_block.dm index f3034f00f2..f544f2eda9 100644 --- a/code/modules/mob/living/living_active_block.dm +++ b/code/modules/mob/living/living_active_block.dm @@ -205,7 +205,7 @@ active_block_do_stamina_damage(owner, object, stamina_cost, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) block_return[BLOCK_RETURN_ACTIVE_BLOCK_DAMAGE_MITIGATED] = damage_mitigated block_return[BLOCK_RETURN_SET_DAMAGE_TO] = final_damage - . = BLOCK_CHANGE_DAMAGE + . = BLOCK_SHOULD_CHANGE_DAMAGE if(final_damage <= 0) . |= BLOCK_SUCCESS //full block owner.visible_message("[owner] blocks \the [attack_text] with [src]!") diff --git a/code/modules/mob/living/living_block.dm b/code/modules/mob/living/living_block.dm index 498243e00d..027bce863e 100644 --- a/code/modules/mob/living/living_block.dm +++ b/code/modules/mob/living/living_block.dm @@ -40,9 +40,7 @@ // i don't like this too var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example var/results - if(I == active_parry_item) - results = I.active_parry(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) - else if(I == active_block_item) + if(I == active_block_item) results = I.active_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) else results = I.run_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) diff --git a/code/modules/mob/living/living_blocking_parrying.dm b/code/modules/mob/living/living_blocking_parrying.dm index 5c3b8155c0..a96179812a 100644 --- a/code/modules/mob/living/living_blocking_parrying.dm +++ b/code/modules/mob/living/living_blocking_parrying.dm @@ -213,6 +213,7 @@ GLOBAL_LIST_EMPTY(block_parry_data) var/stage = get_parry_stage() if(stage == NOT_PARRYING) return BLOCK_NONE + var/datum/block_parry_data/data = get_block_parry_data() var/efficiency = get_parry_efficiency(attack_type) switch(parrying) if(ITEM_PARRY) @@ -227,7 +228,7 @@ GLOBAL_LIST_EMPTY(block_parry_data) var/current = return_list[BLOCK_RETURN_MITIGATION_PERCENT] || 0 return_list[BLOCK_RETURN_MITIGATION_PERCENT] = 100 - (clamp(100 - current, 0, 100) * clamp(1 - (efficiency / 100), 0, 1)) var/list/effect_text = run_parry_countereffects(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency) - if(parry_default_handle-feedback) + if(data.parry_default_handle_feedback) handle_parry_feedback(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, effect_text) successful_parries |= efficiency @@ -296,7 +297,7 @@ GLOBAL_LIST_EMPTY(block_parry_data) /obj/effect/abstract/parry/main icon_state = "parry_bm_hold" -/obj/effect/abstract/parry/main/proc/run(windup_time = 2, active_time = 5, spindown_time = 3, qdel_end = TRUE) +/obj/effect/abstract/parry/main/proc/run_animation(windup_time = 2, active_time = 5, spindown_time = 3, qdel_end = TRUE) QDEL_IN(src, windup_time + active_time + spindown_time) var/matrix/current = transform transform = matrix(0.1, 0, 0, 0, 0.1, 0)