From 4db2d546b39eab8b7ddb6d2e5eb7e844a95a7504 Mon Sep 17 00:00:00 2001 From: John Candlebury Date: Sat, 16 Nov 2024 22:58:25 -0600 Subject: [PATCH] Martial Mastery: Defensive Perks (#77405) * New defensive perks * Defer pressure points perk until later. * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Anton Burmistrov --------- Co-authored-by: Anton Burmistrov --- data/mods/Perk_melee/EOC/shrug_off.json | 45 ++++++ data/mods/Perk_melee/PERKS/insight.json | 71 +++++++++ data/mods/Perk_melee/PERKS/momentum.json | 28 ++++ data/mods/Perk_melee/PERKS/perks.json | 76 ++++++++++ data/mods/Perk_melee/PERKS/tempo.json | 35 +++++ data/mods/Perk_melee/enchantments.json | 19 +++ data/mods/Perk_melee/menu.json | 60 ++++++++ data/mods/Perk_melee/perks.json | 177 ----------------------- 8 files changed, 334 insertions(+), 177 deletions(-) create mode 100644 data/mods/Perk_melee/EOC/shrug_off.json create mode 100644 data/mods/Perk_melee/PERKS/insight.json create mode 100644 data/mods/Perk_melee/PERKS/momentum.json create mode 100644 data/mods/Perk_melee/PERKS/perks.json create mode 100644 data/mods/Perk_melee/PERKS/tempo.json delete mode 100644 data/mods/Perk_melee/perks.json diff --git a/data/mods/Perk_melee/EOC/shrug_off.json b/data/mods/Perk_melee/EOC/shrug_off.json new file mode 100644 index 0000000000000..5aa89543703f4 --- /dev/null +++ b/data/mods/Perk_melee/EOC/shrug_off.json @@ -0,0 +1,45 @@ +[ + { + "id": "EOC_PERK_SHRUG_OFF", + "type": "effect_on_condition", + "condition": { "u_using_martial_art": "style_none" }, + "deactivate_condition": { "not": { "u_has_flag": "MELEE_PERK_SHRUG_OFF" } }, + "recurrence": "15 seconds", + "effect": [ { "math": [ "u_shrug_off_ready", "=", "1" ] } ] + }, + { + "type": "enchantment", + "id": "melee_perk_ench_shrug_off", + "condition": { "math": [ "u_shrug_off_ready", "==", "1" ] }, + "name": { "str": "Shrug it off" }, + "description": "You will completely negate the next attack that hits you.", + "values": [ { "value": "FORCEFIELD", "add": 1 } ], + "hit_me_effect": [ + { + "id": "sp_shrug_off_hit", + "hit_self": true, + "message": "You shrug off the attack.", + "npc_message": "%1$s's no sells the incoming attack." + } + ] + }, + { + "id": "sp_shrug_off_hit", + "type": "SPELL", + "name": { "str": "Shrug Off Trigger" }, + "description": { "str": "Shrug off trigger", "//~": "NO_I18N" }, + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "min_range": 1, + "max_range": 1, + "message": "", + "effect": "effect_on_condition", + "effect_str": "EOC_PERK_SHRUG_OFF_TRIGGER" + }, + { + "id": "EOC_PERK_SHRUG_OFF_TRIGGER", + "type": "effect_on_condition", + "effect": [ { "math": [ "u_shrug_off_ready", "=", "0" ] } ] + } +] diff --git a/data/mods/Perk_melee/PERKS/insight.json b/data/mods/Perk_melee/PERKS/insight.json new file mode 100644 index 0000000000000..9139255755373 --- /dev/null +++ b/data/mods/Perk_melee/PERKS/insight.json @@ -0,0 +1,71 @@ +[ + { + "type": "mutation", + "id": "MELEE_PERK_INSIGHT", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Insight I" }, + "description": "You passively accumulate up to 20 insight stacks while near enemies. Each insight stack increases all damage dealt by 1 until your next attack. Insight greatly favors perceptive warriors.", + "flags": "MELEE_PERK_INSIGHT", + "enchantments": [ "melee_perk_ench_insight" ] + }, + { + "type": "mutation", + "id": "MELEE_PERK_INSIGHT_DODGE", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Like Water" }, + "description": "You gain a +25 dodge chance if you have at least 10 insight stacks.", + "flags": "MELEE_PERK_LIKE_WATER", + "enchantments": [ "melee_perk_ench_insight_dodge" ] + }, + { + "type": "mutation", + "id": "MELEE_PERK_SIXTH_SENSE", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Sixth Sense" }, + "description": "You accumulate up to 20 insight stacks even from enemies you can't see. You can perceive unseen enemies within 10 tiles if you have at least 10 insight stacks.", + "flags": "MELEE_PERK_SIXTH_SENSE", + "enchantments": [ "melee_perk_ench_six_sense" ] + }, + { + "type": "mutation", + "id": "MELEE_PERK_INSIGHT_INFINITE", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "The Psychic Sea" }, + "description": "You can accumulate an infinite number of insight stacks.", + "flags": "MELEE_PERK_INSIGHT_INFINITE" + }, + { + "type": "mutation", + "id": "MELEE_PERK_TWILIGHT_FORM", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Twilight Form" }, + "description": "Whenever you kill an enemy in melee, you retain 50% of your insight stacks.", + "flags": "MELEE_PERK_TWILIGHT_FORM" + }, + { + "type": "mutation", + "id": "MELEE_PERK_BLIND_CALCULUS", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Blind Calculus" }, + "description": "If you have been blind for at least 15 turns, every time you would gain an insight stack you instead gain 5.", + "flags": "MELEE_PERK_BLIND_CALCULUS" + }, + { + "type": "mutation", + "id": "MELEE_PERK_MYSTIC_SHOT", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Mystic Shot I" }, + "description": "Insight stacks also increase the accuracy of ranged bow and crossbow attacks by 2% per stack. Ranged attacks will consume insight stacks.", + "flags": "MELEE_PERK_MYSTIC_SHOT", + "enchantments": [ "melee_perk_ench_insight_mystic_shot" ] + }, + { + "type": "mutation", + "id": "MELEE_PERK_MYSTIC_SHOT_2", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Mystic Shot II" }, + "description": "Insight stacks also increase the damage of ranged bow and crossbow attacks by 1% per stack.", + "flags": "MELEE_PERK_MYSTIC_SHOT_2", + "enchantments": [ "melee_perk_ench_insight_mystic_shot_2" ] + } +] diff --git a/data/mods/Perk_melee/PERKS/momentum.json b/data/mods/Perk_melee/PERKS/momentum.json new file mode 100644 index 0000000000000..d7a56aed21bd1 --- /dev/null +++ b/data/mods/Perk_melee/PERKS/momentum.json @@ -0,0 +1,28 @@ +[ + { + "type": "mutation", + "id": "MELEE_PERK_MOMENTUM", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Momentum I" }, + "description": "Rapid movement generates momentum stacks. Momentum greatly favors dextrous warriors.", + "changes_to": [ "MELEE_PERK_MOMENTUM_2" ], + "flags": "MELEE_PERK_MOMENTUM" + }, + { + "type": "mutation", + "id": "MELEE_PERK_MOMENTUM_2", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Momentum II" }, + "description": "Rapid movement generates momentum stacks. As long as momentum is active your attacks gain extra physical damage equal to 10% of your dexterity. You gain a point of dexterity for every 2 momentum stacks.", + "flags": "MELEE_PERK_MOMENTUM" + }, + { + "type": "mutation", + "id": "MELEE_PERK_MOMENTUM_BULLET_DODGE", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Ballistic Evasion" }, + "description": "If you have at least 4 momentum stacks, gain a 5% chance to dodge any ranged attack for every point of dexterity you have. If you have less than 4 momentum stacks, gain a 1% chance to dodge any ranged attack for every point of dexterity you have.", + "flags": "MELEE_PERK_MOMENTUM_BULLET_DODGE", + "enchantments": [ "melee_perk_ench_momentum_bullet_dodge" ] + } +] diff --git a/data/mods/Perk_melee/PERKS/perks.json b/data/mods/Perk_melee/PERKS/perks.json new file mode 100644 index 0000000000000..16b59a7fab27f --- /dev/null +++ b/data/mods/Perk_melee/PERKS/perks.json @@ -0,0 +1,76 @@ +[ + { + "type": "mutation_type", + "id": "perk" + }, + { + "type": "mutation", + "id": "perk_ma_perk_menu", + "name": { "str": "Practice Martial Arts" }, + "points": 0, + "purifiable": false, + "description": "Learn new martial arts techniques and perks.", + "active": true, + "activated_eocs": [ "EOC_open_ma_perk_menu" ] + }, + { + "type": "mutation", + "id": "MELEE_PERK_BASE", + "name": { "str": "Melee Perk" }, + "points": 0, + "description": "We copy from this one.", + "valid": false, + "purifiable": false + }, + { + "type": "mutation", + "id": "MELEE_PERK_CAREFREE_STANCE", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Carefree Stance" }, + "description": "You aren't even trying.\nYou clear all combat buffs whenever you wait.", + "flags": "MELEE_PERK_CAREFREE_STANCE" + }, + { + "type": "mutation", + "id": "MELEE_PERK_MOVING_DODGE", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Flowing Retreat" }, + "description": "You'll attempt to move away from your attackers when you successfully dodge an attack. You'll gain a momentum stack if you can normally gain them.", + "flags": "MELEE_PERK_MOVING_DODGE" + }, + { + "type": "mutation", + "id": "MELEE_PERK_RIPOSTE", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Counter Strikes" }, + "description": "You gain +1 accuracy for two turns after a successful block.", + "flags": "MELEE_PERK_RIPOSTE" + }, + { + "type": "mutation", + "id": "MELEE_PERK_BLOCK", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Stalwart" }, + "description": "You have an extra block attempt per turn.", + "flags": "MELEE_PERK_BLOCK", + "enchantments": [ { "values": [ { "value": "BONUS_BLOCK", "add": 1 } ] } ] + }, + { + "type": "mutation", + "id": "MELEE_PERK_SHRUG_OFF", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Shrug it off" }, + "description": "Automatically block the first attack that hits you every 15 turns.", + "flags": "MELEE_PERK_SHRUG_OFF", + "enchantments": [ "melee_perk_ench_shrug_off" ] + }, + { + "type": "mutation", + "id": "MELEE_PERK_DODGE", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Spry footwork" }, + "description": "You have an extra dodge attempt per turn.", + "flags": "MELEE_PERK_DODGE", + "enchantments": [ { "values": [ { "value": "BONUS_DODGE", "add": 1 } ] } ] + } +] diff --git a/data/mods/Perk_melee/PERKS/tempo.json b/data/mods/Perk_melee/PERKS/tempo.json new file mode 100644 index 0000000000000..7e1bf6e5d9d46 --- /dev/null +++ b/data/mods/Perk_melee/PERKS/tempo.json @@ -0,0 +1,35 @@ +[ + { + "type": "mutation", + "id": "MELEE_PERK_COMBAT_TEMPO", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Combat Tempo I" }, + "description": "Perfect. Now do it again.\nAttacks generate stacks of combat tempo. Tempo greatly favors the strong.", + "flags": "MELEE_PERK_TEMPO" + }, + { + "type": "mutation", + "id": "MELEE_PERK_TEMPO_SHIFT", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Tempo Shift" }, + "description": "Gain a stack of combat tempo whenever you successfully block an attack.", + "flags": "MELEE_PERK_TEMPO_SHIFT" + }, + { + "type": "mutation", + "id": "MELEE_PERK_TEMPO_THROW", + "copy-from": "MELEE_PERK_BASE", + "name": { "str": "Measured Throws" }, + "description": "Your throwing attacks deal 100% more damage for every combat tempo stack you have.", + "enchantments": [ + { + "values": [ + { + "value": "THROW_DAMAGE", + "multiply": { "math": [ "u_effect_intensity('mabuff:buff_perk_tempo') > 0 ? u_effect_intensity('mabuff:buff_perk_tempo') : 0" ] } + } + ] + } + ] + } +] diff --git a/data/mods/Perk_melee/enchantments.json b/data/mods/Perk_melee/enchantments.json index c4cc1fccf0258..e9065ec2fa2b9 100644 --- a/data/mods/Perk_melee/enchantments.json +++ b/data/mods/Perk_melee/enchantments.json @@ -15,6 +15,12 @@ "condition": { "math": [ "u_effect_intensity('perk_insight')", ">", "9" ] }, "values": [ { "value": "MOTION_VISION_RANGE", "add": 10 } ] }, + { + "type": "enchantment", + "id": "melee_perk_ench_insight_dodge", + "condition": { "math": [ "u_effect_intensity('perk_insight')", ">", "9" ] }, + "values": [ { "value": "DODGE_CHANCE", "add": 25 } ] + }, { "type": "enchantment", "id": "melee_perk_ench_insight_mystic_shot", @@ -33,5 +39,18 @@ "id": "melee_perk_ench_insight_mystic_shot_2", "condition": { "and": [ { "u_has_wielded_with_flag": "PRIMITIVE_RANGED_WEAPON" }, { "u_has_effect": "perk_insight" } ] }, "values": [ { "value": "RANGED_DAMAGE", "multiply": { "math": [ "u_effect_intensity('perk_insight')* 0.01" ] } } ] + }, + { + "type": "enchantment", + "id": "melee_perk_ench_momentum_bullet_dodge", + "condition": { "math": [ "u_effect_intensity('perk_insight')", ">", "9" ] }, + "values": [ + { + "value": "RANGE_DODGE", + "add": { + "math": [ "u_effect_intensity('mabuff:buff_perk_momentum') > 4 ? u_val('dexterity') * 0.05 : u_val('dexterity') * 0.01" ] + } + } + ] } ] diff --git a/data/mods/Perk_melee/menu.json b/data/mods/Perk_melee/menu.json index beffa1f85b931..71c813c7d594a 100644 --- a/data/mods/Perk_melee/menu.json +++ b/data/mods/Perk_melee/menu.json @@ -164,6 +164,28 @@ ], "topic": "TALK_MA_PERK_MENU_SELECT" }, + { + "condition": { "not": { "u_has_trait": "MELEE_PERK_MOMENTUM_BULLET_DODGE" } }, + "text": "Learn []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "MELEE_PERK_MOMENTUM_BULLET_DODGE", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Requires Momentum I and Spry Footwork", + "target_var": { "context_val": "trait_requirement_description" }, + "i18n": true + }, + { + "set_condition": "perk_condition", + "condition": { "and": [ { "u_has_trait": "MELEE_PERK_MOMENTUM" }, { "u_has_trait": "MELEE_PERK_DODGE" } ] } + } + ], + "topic": "TALK_MA_PERK_MENU_SELECT" + }, { "condition": { "not": { "u_has_trait": "MELEE_PERK_COILING_STRIKE" } }, "text": "Learn []", @@ -287,6 +309,25 @@ ], "topic": "TALK_MA_PERK_MENU_SELECT" }, + { + "condition": { "not": { "u_has_trait": "MELEE_PERK_INSIGHT_DODGE" } }, + "text": "Learn []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "MELEE_PERK_INSIGHT_DODGE", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Requires Insight I", + "target_var": { "context_val": "trait_requirement_description" }, + "i18n": true + }, + { "set_condition": "perk_condition", "condition": { "u_has_trait": "MELEE_PERK_INSIGHT" } } + ], + "topic": "TALK_MA_PERK_MENU_SELECT" + }, { "condition": { "not": { "u_has_trait": "MELEE_PERK_MYSTIC_SHOT" } }, "text": "Learn []", @@ -410,6 +451,25 @@ ], "topic": "TALK_MA_PERK_MENU_SELECT" }, + { + "condition": { "not": { "u_has_trait": "MELEE_PERK_SHRUG_OFF" } }, + "text": "Learn []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "MELEE_PERK_SHRUG_OFF", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "No Requirements", + "target_var": { "context_val": "trait_requirement_description" }, + "i18n": true + }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_MA_PERK_MENU_SELECT" + }, { "condition": { "not": { "u_has_trait": "MELEE_PERK_RIPOSTE" } }, "text": "Learn []", diff --git a/data/mods/Perk_melee/perks.json b/data/mods/Perk_melee/perks.json deleted file mode 100644 index 69287a1335b6a..0000000000000 --- a/data/mods/Perk_melee/perks.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "type": "mutation_type", - "id": "perk" - }, - { - "type": "mutation", - "id": "perk_ma_perk_menu", - "name": { "str": "Practice Martial Arts" }, - "points": 0, - "purifiable": false, - "description": "Learn new martial arts techniques and perks.", - "active": true, - "activated_eocs": [ "EOC_open_ma_perk_menu" ] - }, - { - "type": "mutation", - "id": "MELEE_PERK_BASE", - "name": { "str": "Melee Perk" }, - "points": 0, - "description": "We copy from this one.", - "valid": false, - "purifiable": false - }, - { - "type": "mutation", - "id": "MELEE_PERK_CAREFREE_STANCE", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Carefree Stance" }, - "description": "You aren't even trying.\nYou clear all combat buffs whenever you wait.", - "flags": "MELEE_PERK_CAREFREE_STANCE" - }, - { - "type": "mutation", - "id": "MELEE_PERK_MOVING_DODGE", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Flowing retreat" }, - "description": "You'll attempt to move away from your attackers when you successfully dodge an attack. You'll gain a momentum stack if you can normally gain them.", - "flags": "MELEE_PERK_MOVING_DODGE" - }, - { - "type": "mutation", - "id": "MELEE_PERK_RIPOSTE", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Counter strikes" }, - "description": "You gain +1 accuracy for two turns after a successful block.", - "flags": "MELEE_PERK_RIPOSTE" - }, - { - "type": "mutation", - "id": "MELEE_PERK_BLOCK", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Stalwart" }, - "description": "You have an extra block attempt per turn.", - "flags": "MELEE_PERK_BLOCK", - "enchantments": [ { "values": [ { "value": "BONUS_BLOCK", "add": 1 } ] } ] - }, - { - "type": "mutation", - "id": "MELEE_PERK_DODGE", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Spry footwork" }, - "description": "You have an extra dodge attempt per turn.", - "flags": "MELEE_PERK_DODGE", - "enchantments": [ { "values": [ { "value": "BONUS_DODGE", "add": 1 } ] } ] - }, - { - "type": "mutation", - "id": "MELEE_PERK_INSIGHT", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Insight I" }, - "description": "You passively accumulate up to 20 insight stacks while near enemies. Each insight stack increases all damage dealt by 1 until your next attack. Insight greatly favors perceptive warriors.", - "flags": "MELEE_PERK_INSIGHT", - "enchantments": [ "melee_perk_ench_insight" ] - }, - { - "type": "mutation", - "id": "MELEE_PERK_SIXTH_SENSE", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Sixth Sense" }, - "description": "You accumulate up to 20 insight stacks even from enemies you can't see. You can perceive unseen enemies within 10 tiles if you have at least 5 insight stacks.", - "flags": "MELEE_PERK_SIXTH_SENSE", - "enchantments": [ "melee_perk_ench_six_sense" ] - }, - { - "type": "mutation", - "id": "MELEE_PERK_INSIGHT_INFINITE", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "The psychic sea" }, - "description": "You can accumulate an infinite number of insight stacks.", - "flags": "MELEE_PERK_INSIGHT_INFINITE" - }, - { - "type": "mutation", - "id": "MELEE_PERK_TWILIGHT_FORM", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Twilight Form" }, - "description": "Whenever you kill an enemy in melee, you retain 50% of your insight stacks.", - "flags": "MELEE_PERK_TWILIGHT_FORM" - }, - { - "type": "mutation", - "id": "MELEE_PERK_BLIND_CALCULUS", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Blind Calculus" }, - "description": "If you have been blind for at least 15 turns, every time you would gain an insight stack you instead gain 5.", - "flags": "MELEE_PERK_BLIND_CALCULUS" - }, - { - "type": "mutation", - "id": "MELEE_PERK_MYSTIC_SHOT", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Mystic Shot I" }, - "description": "Insight stacks also increase the accuracy of ranged bow and crossbow attacks by 2% per stack. Ranged attacks will consume insight stacks.", - "flags": "MELEE_PERK_MYSTIC_SHOT", - "enchantments": [ "melee_perk_ench_insight_mystic_shot" ] - }, - { - "type": "mutation", - "id": "MELEE_PERK_MYSTIC_SHOT_2", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Mystic Shot II" }, - "description": "Insight stacks also increase the damage of ranged bow and crossbow attacks by 1% per stack.", - "flags": "MELEE_PERK_MYSTIC_SHOT_2", - "enchantments": [ "melee_perk_ench_insight_mystic_shot_2" ] - }, - { - "type": "mutation", - "id": "MELEE_PERK_MOMENTUM", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Momentum I" }, - "description": "Rapid movement generates momentum stacks. Momentum greatly favors dextrous warriors.", - "changes_to": [ "MELEE_PERK_MOMENTUM_2" ], - "flags": "MELEE_PERK_MOMENTUM" - }, - { - "type": "mutation", - "id": "MELEE_PERK_MOMENTUM_2", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Momentum II" }, - "description": "Rapid movement generates momentum stacks. As long as momentum is active your attacks gain extra physical damage equal to 10% of your dexterity. You gain a point of dexterity for every 2 momentum stacks.", - "flags": "MELEE_PERK_MOMENTUM" - }, - { - "type": "mutation", - "id": "MELEE_PERK_COMBAT_TEMPO", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Combat Tempo I" }, - "description": "Perfect. Now do it again.\nAttacks generate stacks of combat tempo. Tempo greatly favors the strong.", - "flags": "MELEE_PERK_TEMPO" - }, - { - "type": "mutation", - "id": "MELEE_PERK_TEMPO_SHIFT", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Tempo Shift" }, - "description": "Gain a stack of combat tempo whenever you successfully block an attack.", - "flags": "MELEE_PERK_TEMPO_SHIFT" - }, - { - "type": "mutation", - "id": "MELEE_PERK_TEMPO_THROW", - "copy-from": "MELEE_PERK_BASE", - "name": { "str": "Measured throws" }, - "description": "Your throwing attacks deal 100% more damage for every combat tempo stack you have.", - "enchantments": [ - { - "values": [ - { - "value": "THROW_DAMAGE", - "multiply": { "math": [ "u_effect_intensity('mabuff:buff_perk_tempo') > 0 ? u_effect_intensity('mabuff:buff_perk_tempo') : 0" ] } - } - ] - } - ] - } -]