[
  {
    "type": "technique",
    "id": "tec_perk_feint",
    "name": "Feint",
    "messages": [ "You fake a strike at %s", "<npcname> fakes a strike at %s" ],
    "required_char_flags_all": [ "MELEE_PERK_FEINT" ],
    "melee_allowed": true,
    "defensive": true,
    "miss_recovery": true,
    "mult_bonuses": [ { "stat": "movecost", "scale": 0.8 } ]
  },
  {
    "type": "technique",
    "id": "tec_perk_stagger_strike",
    "name": "Staggering Strike",
    "weapon_damage_requirements": [ { "type": "bash", "min": 12 } ],
    "melee_allowed": true,
    "crit_ok": true,
    "stun_dur": 3,
    "weighting": 1,
    "required_char_flags_all": [ "MELEE_PERK_STAGGER_STRIKE" ],
    "condition": {
      "and": [
        { "math": [ "u_val('size') + 1 >= n_val('size')" ] },
        { "math": [ "u_effect_intensity('mabuff:buff_perk_tempo') > 2" ] },
        { "not": { "npc_has_effect": "stunned" } }
      ]
    },
    "messages": [ "You deliver a stunning strike to %s", "<npcname> delivers a stunning strike to %s" ],
    "condition_desc": "* Only works on a <info>non-stunned</info> target of <info>similar or smaller</info> size.",
    "description": "Stun for 1 turn",
    "attack_vectors": [ "vector_null" ],
    "mult_bonuses": [ { "stat": "movecost", "scale": 0.5 } ]
  },
  {
    "type": "technique",
    "id": "tec_perk_fore",
    "name": "Brutal Swing",
    "required_char_flags_all": [ "MELEE_PERK_FORE" ],
    "weapon_damage_requirements": [ { "type": "bash", "min": 15 } ],
    "melee_allowed": true,
    "crit_ok": true,
    "knockback_dist": 3,
    "weighting": -4,
    "messages": [ "You send %s reeling with a brutal strike", "<npcname> sends %s reeling" ],
    "description": "Three tile knockback",
    "attack_vectors": [ "vector_null" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_fore_stunned",
    "name": "Brutal Swing (Stunned target)",
    "required_char_flags_all": [ "MELEE_PERK_FORE" ],
    "weapon_damage_requirements": [ { "type": "bash", "min": 15 } ],
    "melee_allowed": true,
    "crit_ok": true,
    "condition": { "and": [ { "npc_has_effect": "stunned" } ] },
    "knockback_dist": 3,
    "weighting": 100,
    "messages": [ "You send %s reeling with a brutal strike", "<npcname> sends %s reeling" ],
    "description": "Three tile knockback",
    "attack_vectors": [ "vector_null" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_shoulder_tackle",
    "name": "Shoulder tackle",
    "messages": [ "You ground %s with a shoulder bash", "<npcname> drops %s with a shoulder bash" ],
    "required_char_flags_all": [ "MELEE_PERK_TACKLE" ],
    "required_buffs_any": [ "buff_perk_momentum" ],
    "weighting": 100,
    "crit_ok": true,
    "melee_allowed": true,
    "unarmed_allowed": true,
    "condition": {
      "and": [
        { "math": [ "u_val('size') + 1 >= n_val('size')" ] },
        { "math": [ "u_effect_intensity('mabuff:buff_perk_momentum') > 2" ] },
        { "not": { "npc_has_effect": "downed" } },
        { "or": [ { "npc_bodytype": "human" }, { "npc_bodytype": "angel" } ] },
        { "or": [ { "not": { "npc_has_flag": "FLIES" } }, { "npc_has_flag": "DISABLE_FLIGHT" } ] }
      ]
    },
    "mult_bonuses": [ { "stat": "movecost", "scale": 0.75 }, { "stat": "damage", "type": "bash", "scale": 0.8 } ],
    "condition_desc": "* Only works on a <info>non-downed humanoid</info> target of <info>similar or smaller</info> size incapable of flight. Requires <info>momentum(3)</info> or higher to trigger.",
    "down_dur": 2,
    "eocs": [ "EOC_CLEAR_MOMENTUM" ],
    "attack_vectors": [ "vector_shoulder" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_vulgar_opening",
    "name": "Vulgar Opening",
    "messages": [ "You cleave into %s with a mighty strike", "<npcname> cleaves into %s with a powerful blow" ],
    "required_char_flags_all": [ "MELEE_PERK_JUST_HIT_IT" ],
    "melee_allowed": true,
    "condition": {
      "and": [
        { "not": { "u_has_effect": "mabuff:buff_perk_tempo" } },
        { "not": { "u_has_effect": "mabuff:buff_perk_momentum" } },
        { "not": { "u_has_effect": "perk_insight" } }
      ]
    },
    "crit_ok": true,
    "weapon_categories_allowed": [ "GREAT_AXES", "GREAT_SWORDS", "GREAT_HAMMERS", "AXE", "MEDIUM-SWORDS", "LONG_SWORDS", "MACES", "AXES", "FLAILS" ],
    "weighting": 100,
    "flat_bonuses": [
      { "stat": "arpen", "type": "bash", "scaling-stat": "str", "scale": 2.25 },
      { "stat": "arpen", "type": "cut", "scaling-stat": "str", "scale": 2.25 },
      { "stat": "arpen", "type": "stab", "scaling-stat": "str", "scale": 2.25 }
    ],
    "attack_vectors": [ "vector_null" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_coiling_strike",
    "name": "Coiling strike",
    "weapon_categories_allowed": [ "QUARTERSTAVES", "SPEARS", "POLEARMS" ],
    "required_buffs_any": [ "buff_perk_momentum" ],
    "melee_allowed": true,
    "reach_tec": true,
    "required_char_flags_all": [ "MELEE_PERK_COILING_STRIKE" ],
    "flat_bonuses": [
      { "stat": "damage", "type": "bash", "scaling-stat": "per", "scale": 0.5 },
      { "stat": "damage", "type": "cut", "scaling-stat": "per", "scale": 0.5 },
      { "stat": "damage", "type": "stab", "scaling-stat": "per", "scale": 0.5 }
    ],
    "mult_bonuses": [
      { "stat": "movecost", "scale": 0.5 },
      { "stat": "damage", "type": "bash", "scale": 0.25 },
      { "stat": "damage", "type": "cut", "scale": 0.66 },
      { "stat": "damage", "type": "stab", "scale": 0.66 }
    ],
    "messages": [ "You quickly stab %s with a sideways thrust", "<npcname> stabs %s with a quick thrust" ],
    "description": "A quick reach attack that scales heavily with perception.",
    "attack_vectors": [ "vector_null" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_make_way",
    "name": "Make Way",
    "required_char_flags_all": [ "MELEE_PERK_MAKE_WAY" ],
    "weapon_categories_allowed": [ "QUARTERSTAVES", "SPEARS", "POLEARMS" ],
    "melee_allowed": true,
    "weighting": 2,
    "condition": { "and": [ { "math": [ "u_monsters_nearby('radius': 1) > 1" ] } ] },
    "mult_bonuses": [
      { "stat": "damage", "type": "bash", "scale": 0.5 },
      { "stat": "damage", "type": "cut", "scale": 0.25 },
      { "stat": "damage", "type": "stab", "scale": 0.01 }
    ],
    "messages": [
      "You swing through %s and everything nearby with an overhead attack",
      "<npcname> swings at %s and everything nearby with an overhead attack"
    ],
    "eocs": [ { "id": "EOC_tec_perk_make_way", "effect": [ { "u_cast_spell": { "id": "make_way_push" } } ] } ],
    "attack_vectors": [ "vector_null" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_staff_kick",
    "name": "Fulcrum Kick",
    "required_char_flags_all": [ "MELEE_PERK_STAFF_KICK" ],
    "weapon_categories_allowed": [ "QUARTERSTAVES", "SPEARS", "POLEARMS" ],
    "weighting": -2,
    "knockback_dist": 2,
    "crit_ok": true,
    "melee_allowed": true,
    "condition": {
      "and": [
        { "math": [ "u_val('size') + 1 >= n_val('size')" ] },
        { "not": { "npc_has_effect": "downed" } },
        { "or": [ { "npc_bodytype": "human" }, { "npc_bodytype": "angel" } ] },
        { "or": [ { "not": { "npc_has_flag": "FLIES" } }, { "npc_has_flag": "DISABLE_FLIGHT" } ] }
      ]
    },
    "mult_bonuses": [
      { "stat": "damage", "type": "bash", "scale": 0.5 },
      { "stat": "damage", "type": "cut", "scale": 0.015 },
      { "stat": "damage", "type": "stab", "scale": 0.01 }
    ],
    "messages": [ "You use your polearm as a springboard to kick %s", "<npcname> kicks %s" ],
    "condition_desc": "* Only works on a <info>non-downed humanoid</info> target of <info>similar or smaller</info> size incapable of flight.",
    "attack_vectors": [ "vector_foot_heel" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_estocada",
    "name": "Estocada",
    "required_char_flags_all": [ "MELEE_PERK_ESTOCADA" ],
    "messages": [ "You thrust your weapon into %s", "<npcname> thrusts their weapon into %s" ],
    "melee_allowed": true,
    "weighting": 10,
    "weapon_categories_allowed": [ "QUARTERSTAVES", "LONG_SWORDS", "MEDIUM-SWORDS", "LONG_THRUSTING_SWORDS", "FENCING_WEAPONRY" ],
    "condition": { "and": [ { "math": [ "u_effect_intensity('mabuff:buff_perk_momentum') == 1" ] } ] },
    "condition_desc": "* Requires <info>momentum(1)</info> to trigger.",
    "mult_bonuses": [ { "stat": "damage", "type": "stab", "scale": 1.1 }, { "stat": "movecost", "scale": 0.5 } ],
    "attack_vectors": [ "vector_null" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_duelist_lunge",
    "name": "Lunge",
    "weapon_categories_allowed": [ "FENCING_WEAPONRY", "LONG_THRUSTING_SWORDS" ],
    "melee_allowed": true,
    "crit_ok": true,
    "reach_tec": true,
    "weighting": 100,
    "required_char_flags_all": [ "MELEE_PERK_DUELIST_LUNGE" ],
    "mult_bonuses": [
      { "stat": "movecost", "scale": 0.8 },
      { "stat": "damage", "type": "bash", "scale": 0.25 },
      { "stat": "damage", "type": "cut", "scale": 0.66 },
      { "stat": "damage", "type": "stab", "scale": 1.1 }
    ],
    "messages": [ "You step and stab the %s with an elegant motion", "<npcname> steps closer to %s and stabs them with a quick motion" ],
    "description": "A quick reach attack that scales heavily with perception.",
    "eocs": [ "EOC_PERK_STEP_CLOSER" ],
    "attack_vectors": [ "vector_null" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_knife_counter_dodge",
    "name": "Knife Counter",
    "required_char_flags_all": [ "MELEE_PERK_KNIFE_COUNTER_DODGE" ],
    "weapon_categories_allowed": [ "KNIVES", "SHIVS" ],
    "melee_allowed": true,
    "crit_ok": true,
    "dodge_counter": true,
    "weighting": 100,
    "mult_bonuses": [
      { "stat": "movecost", "scale": 0.1 },
      { "stat": "damage", "type": "bash", "scale": 0.02 },
      { "stat": "damage", "type": "cut", "scale": 0.2 },
      { "stat": "damage", "type": "stab", "scale": 0.2 }
    ],
    "messages": [ "You slash at the %s as you dodge", "<npcname> slashes at %s as they dodge" ],
    "eocs": [ "EOC_PERK_DODGE_RETREAT_MANUAL" ],
    "attack_vectors": [ "vector_null" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_knife_finisher",
    "name": "Slaying Strike",
    "required_char_flags_all": [ "MELEE_PERK_KNIFE_FINISHER" ],
    "weapon_categories_allowed": [ "KNIVES", "SHIVS" ],
    "melee_allowed": true,
    "crit_ok": true,
    "weighting": 1,
    "condition": { "and": [ { "math": [ "u_effect_intensity('mabuff:buff_perk_tempo') > 2" ] } ] },
    "condition_desc": "* Requires <info>tempo(3)</info> to trigger.",
    "flat_bonuses": [ { "stat": "hit", "scale": 5.0 } ],
    "messages": [ "You viciously wound %s", "<npcname> viciously wounds %s" ],
    "attack_vectors": [ "vector_null" ]
  },
  {
    "type": "technique",
    "id": "tec_perk_duelist_combo",
    "name": "Compound strike",
    "required_char_flags_all": [ "MELEE_PERK_DUELIST_COMBO" ],
    "melee_allowed": true,
    "crit_ok": true,
    "unarmed_allowed": true,
    "weighting": 100,
    "condition": {
      "and": [
        { "math": [ "u_effect_intensity('mabuff:buff_perk_tempo') == 2" ] },
        { "math": [ "n_effect_intensity('perk_hit_marker') >= 2" ] }
      ]
    },
    "condition_desc": "* Can only trigger on the attack that achieves <info>tempo(3)</info>.  The attacked target must be the same as the previous two attacks.",
    "mult_bonuses": [
      { "stat": "hit", "scale": 5.0 },
      { "stat": "movecost", "scale": 0.3 },
      { "stat": "arpen", "type": "bash", "scaling-stat": "str", "scale": 2.25 },
      { "stat": "arpen", "type": "cut", "scaling-stat": "str", "scale": 2.25 },
      { "stat": "arpen", "type": "stab", "scaling-stat": "str", "scale": 2.25 },
      { "stat": "damage", "type": "bash", "scale": 1.55 },
      { "stat": "damage", "type": "cut", "scale": 1.55 },
      { "stat": "damage", "type": "stab", "scale": 1.55 }
    ],
    "messages": [
      "You cleanly transition from your last attack into a powerful finishing strike against %s",
      "<npcname> cleanly transitions their last attack into a powerful finishing strike against %s"
    ],
    "attack_vectors": [ "vector_null" ]
  }
]
