From 98d305e5f69df32da1b38bda2d410dd47bfc9b02 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Sat, 8 Aug 2020 14:11:47 -0500 Subject: [PATCH 1/7] bokken nerfs, desword deflects --- code/game/objects/items/dualsaber.dm | 20 +++++++++++++++----- code/game/objects/items/weaponry.dm | 9 +++++---- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index 9db9449fcb..d4709b4b1a 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -51,6 +51,10 @@ // no attacking while blocking block_lock_attacking = TRUE block_projectile_mitigation = 75 + // more efficient vs projectiles + block_stamina_efficiency_override = list( + TEXT_ATTACK_TYPE_PROJECTILE = 4 + ) parry_time_windup = 0 parry_time_active = 8 @@ -65,14 +69,20 @@ parry_imperfect_falloff_percent = 10 parry_efficiency_to_counterattack = 100 parry_efficiency_considered_successful = 25 // VERY generous - parry_efficiency_perfect = 90 parry_failed_stagger_duration = 3 SECONDS parry_failed_clickcd_duration = CLICK_CD_MELEE - // more efficient vs projectiles - block_stamina_efficiency_override = list( - TEXT_ATTACK_TYPE_PROJECTILE = 4 - ) +/obj/item/dualsaber/active_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction) + if((attack_type & ATTACK_TYPE_PROJECTILE) && is_energy_reflectable_projectile(object)) + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER + return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT + return ..() + +/obj/item/dualsaber/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/block_return, parry_efficiency, parry_time) + . = ..() + if(parry_efficiency >= 90) // perfect parry + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER + . |= BLOCK_SHOULD_REDIRECT /obj/item/dualsaber/Initialize() . = ..() diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 0ab1f1b4fd..04711b31c6 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -283,7 +283,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 parry_time_perfect = 1.5 parry_time_perfect_leeway = 1 parry_imperfect_falloff_percent = 7.5 - parry_efficiency_to_counterattack = 100 + parry_efficiency_to_counterattack = 120 parry_efficiency_considered_successful = 65 // VERY generous parry_efficiency_perfect = 120 parry_efficiency_perfect_override = list( @@ -294,11 +294,12 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /datum/block_parry_data/bokken/quick_parry // emphasizing REALLY SHORT PARRIES parry_stamina_cost = 6 // still more costly than most parries, but less than a full bokken parry - parry_time_active = 5 // REALLY small parry window - parry_time_perfect = 2.5 // however... - parry_time_perfect_leeway = 2.5 // the entire time, the parry is perfect + parry_time_active = 4 // REALLY small parry window + parry_time_perfect = 2 // however... + parry_time_perfect_leeway = 2 // the entire time, the parry is perfect parry_failed_stagger_duration = 1 SECONDS parry_failed_clickcd_duration = 1 SECONDS // more forgiving punishments for missed parries + parry_cooldown = 1 SECONDS // make your parries count // still, don't fucking miss your parries or you're down stamina and staggered to shit /obj/item/melee/bokken/Initialize() From c7e850ae1981e6c7cb92b395e63c0eaf361261f4 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Sat, 8 Aug 2020 14:14:47 -0500 Subject: [PATCH 2/7] longparry stagger reduced, cooldown made universal --- code/game/objects/items/weaponry.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 04711b31c6..d13e9ed794 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -289,7 +289,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 parry_efficiency_perfect_override = list( TEXT_ATTACK_TYPE_PROJECTILE = 30, ) - parry_failed_stagger_duration = 3 SECONDS + parry_failed_stagger_duration = 2 SECONDS + parry_cooldown = 1 SECONDS // make your parries count parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5) // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25 /datum/block_parry_data/bokken/quick_parry // emphasizing REALLY SHORT PARRIES @@ -299,7 +300,6 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 parry_time_perfect_leeway = 2 // the entire time, the parry is perfect parry_failed_stagger_duration = 1 SECONDS parry_failed_clickcd_duration = 1 SECONDS // more forgiving punishments for missed parries - parry_cooldown = 1 SECONDS // make your parries count // still, don't fucking miss your parries or you're down stamina and staggered to shit /obj/item/melee/bokken/Initialize() From a496588171831cebb7cf3271c5b8e767539f6137 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Sat, 8 Aug 2020 14:31:45 -0500 Subject: [PATCH 3/7] bokken cooldown nerf but slightly --- code/game/objects/items/weaponry.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index d13e9ed794..c48fa5a3ba 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -290,7 +290,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 TEXT_ATTACK_TYPE_PROJECTILE = 30, ) parry_failed_stagger_duration = 2 SECONDS - parry_cooldown = 1 SECONDS // make your parries count + parry_cooldown = 1.5 SECONDS // make your parries count parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5) // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25 /datum/block_parry_data/bokken/quick_parry // emphasizing REALLY SHORT PARRIES From 301adc6769bf38870f9865d63bfda0a5048bf2b6 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Sun, 9 Aug 2020 23:58:12 -0500 Subject: [PATCH 4/7] ung --- code/game/objects/items/weaponry.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index c48fa5a3ba..2a7bba2f0c 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -290,7 +290,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 TEXT_ATTACK_TYPE_PROJECTILE = 30, ) parry_failed_stagger_duration = 2 SECONDS - parry_cooldown = 1.5 SECONDS // make your parries count + parry_cooldown = 1.1 SECONDS // slightly longer than click cooldown parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5) // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25 /datum/block_parry_data/bokken/quick_parry // emphasizing REALLY SHORT PARRIES From f4f88123186367f248abc115084bfb43ef85bd45 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Mon, 10 Aug 2020 11:30:36 -0500 Subject: [PATCH 5/7] whitespace (tm) --- code/game/objects/items/weaponry.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 8fa6fcfd4a..3431b73042 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -305,7 +305,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 parry_failed_stagger_duration = 3 SECONDS parry_data = list( PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5, // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25 - ) + ) /datum/block_parry_data/bokken/quick_parry // emphasizing REALLY SHORT PARRIES parry_stamina_cost = 6 // still more costly than most parries, but less than a full bokken parry From d5b788a655892036bc953ea50afd0fca82d7da76 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Wed, 12 Aug 2020 23:33:59 -0500 Subject: [PATCH 6/7] shortparry window restored, glaive parry req wield --- code/game/objects/items/weaponry.dm | 4 ++-- code/modules/mining/equipment/kinetic_crusher.dm | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 3431b73042..e1007b3d7f 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -309,8 +309,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /datum/block_parry_data/bokken/quick_parry // emphasizing REALLY SHORT PARRIES parry_stamina_cost = 6 // still more costly than most parries, but less than a full bokken parry - parry_time_active = 4 // REALLY small parry window - parry_time_perfect = 2 // however... + parry_time_active = 5 // REALLY small parry window + parry_time_perfect = 2.5 // however... parry_time_perfect_leeway = 2 // the entire time, the parry is perfect parry_failed_stagger_duration = 1 SECONDS parry_failed_clickcd_duration = 1 SECONDS // more forgiving punishments for missed parries diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index a09d890f69..a6f456ce6f 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -183,7 +183,6 @@ attack_verb = list("stabbed", "diced", "sliced", "cleaved", "chopped", "lacerated", "cut", "jabbed", "punctured") icon_state = "crusher-glaive" item_state = "crusher0-glaive" - item_flags = ITEM_CAN_PARRY block_parry_data = /datum/block_parry_data/crusherglaive //ideas: altclick that lets you pummel people with the handguard/handle? //parrying functionality? @@ -217,6 +216,16 @@ if(owner.Adjacent(attacker) && (!attacker.anchored || ismegafauna(attacker))) // free backstab, if you perfect parry attacker.dir = get_dir(owner,attacker) +/// triggered on wield of two handed item +/obj/item/kinetic_crusher/glaive/on_wield(obj/item/source, mob/user) + wielded = TRUE + item_flags |= (ITEM_CAN_PARRY) + +/// triggered on unwield of two handed item +/obj/item/kinetic_crusher/glaive/on_unwield(obj/item/source, mob/user) + wielded = FALSE + item_flags &= ~(ITEM_CAN_PARRY) + /obj/item/kinetic_crusher/glaive/update_icon_state() item_state = "crusher[wielded]-glaive" // this is not icon_state and not supported by 2hcomponent From bc0ca30647ea80c68e3c2102edab0637ae555069 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Sun, 16 Aug 2020 15:45:11 -0500 Subject: [PATCH 7/7] there is no cooldown, press G --- code/game/objects/items/weaponry.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index e1007b3d7f..d6d0147c94 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -301,7 +301,6 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 parry_efficiency_perfect_override = list( TEXT_ATTACK_TYPE_PROJECTILE = 30, ) - parry_cooldown = 1.1 SECONDS // slightly longer than click cooldown parry_failed_stagger_duration = 3 SECONDS parry_data = list( PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5, // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25