summaryrefslogtreecommitdiff
path: root/techniques
diff options
context:
space:
mode:
Diffstat (limited to 'techniques')
-rw-r--r--techniques/aikido.json78
-rw-r--r--techniques/barbaran-montante.json33
-rw-r--r--techniques/brawling.json80
-rw-r--r--techniques/fencing.json72
-rw-r--r--techniques/kravmaga.json66
-rw-r--r--techniques/medievalpole.json88
-rw-r--r--techniques/sojutsu.json40
-rw-r--r--techniques/swordsmanship.json47
-rw-r--r--techniques/taekwondo.json73
-rw-r--r--techniques/taichi.json60
10 files changed, 637 insertions, 0 deletions
diff --git a/techniques/aikido.json b/techniques/aikido.json
new file mode 100644
index 0000000..57ef0b5
--- /dev/null
+++ b/techniques/aikido.json
@@ -0,0 +1,78 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_aikido_blockthrow",
+ "name": "Counter Throw (block)",
+ "messages": [ "You smoothly throw %s", "<npcname> blocks and smoothly throws %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 2 } ],
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "unarmed_weapons_allowed": false,
+ "req_buffs": [ "buff_aikido_onblock" ],
+ "crit_ok": true,
+ "down_dur": 1,
+ "knockback_dist": 1,
+ "mult_bonuses": [ { "stat": "movecost", "scale": 0.7 } ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_aikido_dodgethrow",
+ "name": "Counter Throw (dodge)",
+ "messages": [ "You smoothly throw %s", "<npcname> dodges and smoothly throws %s" ],
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "unarmed_weapons_allowed": false,
+ "req_buffs": [ "buff_aikido_ondodge" ],
+ "crit_ok": true,
+ "down_dur": 1,
+ "knockback_dist": 1,
+ "mult_bonuses": [ { "stat": "movecost", "scale": 0.7 } ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_aikido_blockdisarm",
+ "name": "Disarming Throw (block)",
+ "messages": [ "You smoothly disarm %s", "<npcname> blocks and smoothly disarms %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 4 } ],
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "unarmed_weapons_allowed": false,
+ "req_buffs": [ "buff_aikido_onblock" ],
+ "crit_ok": true,
+ "disarms": true,
+ "down_dur": 1,
+ "knockback_dist": 1,
+ "mult_bonuses": [ { "stat": "movecost", "scale": 0.7 } ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_aikido_dodgedisarm",
+ "name": "Disarming Throw (dodge)",
+ "messages": [ "You smoothly disarm %s", "<npcname> dodges and smoothly disarms %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 4 } ],
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "unarmed_weapons_allowed": false,
+ "req_buffs": [ "buff_aikido_ondodge" ],
+ "crit_ok": true,
+ "disarms": true,
+ "down_dur": 1,
+ "knockback_dist": 1,
+ "mult_bonuses": [ { "stat": "movecost", "scale": 0.7 } ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_aikido_break",
+ "name": "Grab Break",
+ "messages": [
+ "The %s tries to grab you, but you smoothly break free!",
+ "The %s tries to grab <npcname>, but they smoothly break free!"
+ ],
+ "skill_requirements": [ { "name": "unarmed", "level": 3 } ],
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "unarmed_weapons_allowed": false,
+ "defensive": true,
+ "grab_break": true
+ }
+]
diff --git a/techniques/barbaran-montante.json b/techniques/barbaran-montante.json
new file mode 100644
index 0000000..bf25356
--- /dev/null
+++ b/techniques/barbaran-montante.json
@@ -0,0 +1,33 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_barbaran_impale",
+ "name": "Impaling Estocada",
+ "messages": [ "You thrust your weapon through %s", "<npcname> thrusts their weapon through %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 2 } ],
+ "weapon_damage_requirements": [ { "type": "cut", "min": 8 } ],
+ "melee_allowed": true,
+ "aoe": "impale",
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 1.1 },
+ { "stat": "damage", "type": "cut", "scale": 1.1 },
+ { "stat": "damage", "type": "stab", "scale": 1.1 },
+ { "stat": "movecost", "scale": 1.2 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_barbaran_disarm",
+ "name": "Swift Atajo",
+ "messages": [ "You jab a quick blow at %s's grip", "<npcname> jabs a quick blow at %s's grip" ],
+ "skill_requirements": [ { "name": "melee", "level": 2 } ],
+ "melee_allowed": true,
+ "disarms": true,
+ "mult_bonuses": [
+ { "stat": "movecost", "scale": 0.5 },
+ { "stat": "damage", "type": "bash", "scale": 0.66 },
+ { "stat": "damage", "type": "cut", "scale": 0.66 },
+ { "stat": "damage", "type": "stab", "scale": 0.66 }
+ ]
+ },
+]
diff --git a/techniques/brawling.json b/techniques/brawling.json
new file mode 100644
index 0000000..74d9bc1
--- /dev/null
+++ b/techniques/brawling.json
@@ -0,0 +1,80 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_brawl_break_melee",
+ "name": "Grab Break",
+ "messages": [ "The %s tries to grab you, but you force yourself free!", "The %s tries to grab <npcname>, but they break free!" ],
+ "skill_requirements": [ { "name": "melee", "level": 6 } ],
+ "melee_allowed": true,
+ "defensive": true,
+ "grab_break": true
+ },
+ {
+ "type": "technique",
+ "id": "tec_brawl_break_unarmed",
+ "name": "Grab Break",
+ "messages": [ "The %s tries to grab you, but you force yourself free!", "The %s tries to grab <npcname>, but they break free!" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 6 } ],
+ "unarmed_allowed": true,
+ "defensive": true,
+ "grab_break": true
+ },
+ {
+ "type": "technique",
+ "id": "tec_brawl_feint_melee",
+ "name": "Feint",
+ "messages": [ "You fake a strike at %s", "<npcname> fakes a strike at %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 3 } ],
+ "melee_allowed": true,
+ "defensive": true,
+ "miss_recovery": true
+ },
+ {
+ "type": "technique",
+ "id": "tec_brawl_feint_unarmed",
+ "name": "Feint",
+ "messages": [ "You fake a strike at %s", "<npcname> fakes a strike at %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 3 } ],
+ "unarmed_allowed": true,
+ "defensive": true,
+ "miss_recovery": true
+ },
+ {
+ "type": "technique",
+ "id": "tec_brawl_disarm_melee",
+ "name": "Disarm",
+ "messages": [ "You knock %s's weapon away", "<npcname> knock %s's weapon away" ],
+ "skill_requirements": [ { "name": "melee", "level": 6 } ],
+ "melee_allowed": true,
+ "disarms": true
+ },
+ {
+ "type": "technique",
+ "id": "tec_brawl_disarm_unarmed",
+ "name": "Disarm",
+ "messages": [ "You knock %s's weapon away", "<npcname> knock %s's weapon away" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 6 } ],
+ "unarmed_allowed": true,
+ "disarms": true
+ },
+ {
+ "type": "technique",
+ "id": "tec_brawl_power",
+ "name": "Power Hit",
+ "messages": [ "You send %s reeling", "<npcname> sends %s reeling" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 4 } ],
+ "unarmed_allowed": true,
+ "crit_tec": true,
+ "knockback_dist": 1,
+ "stun_dur": 1
+ },
+ {
+ "type": "technique",
+ "id": "tec_brawl_trip",
+ "name": "Trip",
+ "messages": [ "You trip %s", "<npcname> trip %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 5 } ],
+ "unarmed_allowed": true,
+ "down_dur": 1
+ }
+]
diff --git a/techniques/fencing.json b/techniques/fencing.json
new file mode 100644
index 0000000..41061e8
--- /dev/null
+++ b/techniques/fencing.json
@@ -0,0 +1,72 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_fencing_feint",
+ "messages": [ "You steady your weapon and fake a thrust at %s", "<npcname> steadies their weapon and fake a thrust at %s" ],
+ "name": "Feint",
+ "skill_requirements": [ { "name": "melee", "level": 4 } ],
+ "melee_allowed": true,
+ "defensive": true,
+ "miss_recovery": true
+ },
+ {
+ "type": "technique",
+ "id": "tec_fencing_lunge",
+ "name": "Fencing Lunge",
+ "messages": [ "You lunge at %s", "<npcname> lunges at %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 2 } ],
+ "melee_allowed": true,
+ "crit_ok": true,
+ "mult_bonuses": [ { "stat": "movecost", "scale": 0.8 } ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_fencing_compound1",
+ "name": "Compound Attack (Remise)",
+ "messages": [ "Your feint leads to a compound attack against %s", "<npcname>'s feint leads to a compound attack against %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 3 } ],
+ "melee_allowed": true,
+ "req_buffs": [ "buff_fencing_onmiss" ],
+ "weighting": 4,
+ "crit_ok": true,
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 1.25 },
+ { "stat": "damage", "type": "cut", "scale": 1.25 },
+ { "stat": "damage", "type": "stab", "scale": 1.25 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_fencing_compound2",
+ "name": "Compound Attack (Counter Time)",
+ "messages": [ "Your feint leads to a compound attack against %s", "<npcname>'s feint leads to a compound attack against %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 4 } ],
+ "melee_allowed": true,
+ "req_buffs": [ "buff_fencing_onpause" ],
+ "weighting": 4,
+ "crit_ok": true,
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 1.25 },
+ { "stat": "damage", "type": "cut", "scale": 1.25 },
+ { "stat": "damage", "type": "stab", "scale": 1.25 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_fencing_riposte",
+ "name": "Fencing Riposte",
+ "messages": [ "You deliver a perfect riposte to %s", "<npcname> delivers a perfect riposte to %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 5 } ],
+ "melee_allowed": true,
+ "req_buffs": [ "buff_fencing_onblock" ],
+ "crit_ok": true,
+ "weighting": 2,
+ "stun_dur": 1,
+ "mult_bonuses": [
+ { "stat": "movecost", "scale": 0.66 },
+ { "stat": "damage", "type": "bash", "scale": 1.2 },
+ { "stat": "damage", "type": "cut", "scale": 1.2 },
+ { "stat": "damage", "type": "stab", "scale": 1.2 }
+ ]
+ }
+]
diff --git a/techniques/kravmaga.json b/techniques/kravmaga.json
new file mode 100644
index 0000000..aa220a6
--- /dev/null
+++ b/techniques/kravmaga.json
@@ -0,0 +1,66 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_krav_maga_rapid",
+ "messages": [ "You jab at %s", "<npcname> jabs at %s" ],
+ "name": "Jab",
+ "skill_requirements": [ { "name": "unarmed", "level": 1 } ],
+ "melee_allowed": true,
+ "unarmed_allowed": true,
+ "mult_bonuses": [
+ { "stat": "movecost", "scale": 0.5 },
+ { "stat": "damage", "type": "bash", "scale": 0.66 },
+ { "stat": "damage", "type": "cut", "scale": 0.66 },
+ { "stat": "damage", "type": "stab", "scale": 0.66 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_krav_maga_crit",
+ "name": "Cheapshot",
+ "messages": [ "You hit %s where it hurts", "<npcname> hits %s with a cheapshot" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 2 } ],
+ "melee_allowed": true,
+ "unarmed_allowed": true,
+ "crit_tec": true,
+ "stun_dur": 1
+ },
+ {
+ "type": "technique",
+ "id": "tec_krav_maga_takedown",
+ "name": "Takedown",
+ "messages": [ "You force %s to the ground", "<npcname> forces %s to the ground" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 3 } ],
+ "melee_allowed": true,
+ "unarmed_allowed": true,
+ "crit_ok": true,
+ "down_dur": 1
+ },
+ {
+ "type": "technique",
+ "id": "tec_krav_maga_disarm",
+ "name": "Bone Breaker",
+ "messages": [ "*CRACK!* You brutally maim %s's arm", "*CRACK!* <npcname> brutally maims %s's arm" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 5 } ],
+ "unarmed_allowed": true,
+ "weighting": 2,
+ "crit_tec": true,
+ "downed_target": true,
+ "stunned_target": true,
+ "human_target": true,
+ "stun_dur": 1,
+ "flat_bonuses": [ { "stat": "arpen", "type": "bash", "scaling-stat": "str", "scale": 1.0 } ],
+ "mult_bonuses": [ { "stat": "damage", "type": "bash", "scale": 2.0 } ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_krav_maga_break",
+ "name": "Grab Break",
+ "messages": [ "The %s tries to grab you, but you wrestle free!", "The %s tries to grab <npcname>, but they wrestle free!" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 3 } ],
+ "melee_allowed": true,
+ "unarmed_allowed": true,
+ "defensive": true,
+ "grab_break": true
+ }
+]
diff --git a/techniques/medievalpole.json b/techniques/medievalpole.json
new file mode 100644
index 0000000..041efc6
--- /dev/null
+++ b/techniques/medievalpole.json
@@ -0,0 +1,88 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_medievalpole_counter",
+ "name": "Displace and Hook",
+ "messages": [ "You parry and hook %s down", "<npcname> parries and hooks %s down" ],
+ "skill_requirements": [ { "name": "melee", "level": 4 } ],
+ "melee_allowed": true,
+ "required_buffs_all": [ "buff_medievalpole_onblock" ],
+ "crit_ok": true,
+ "weighting": 2,
+ "down_dur": 2,
+ "mult_bonuses": [
+ { "stat": "movecost", "scale": 0.5 },
+ { "stat": "damage", "type": "bash", "scale": 0.5 },
+ { "stat": "damage", "type": "cut", "scale": 0.5 },
+ { "stat": "damage", "type": "stab", "scale": 0.5 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_medievalpole_highround",
+ "name": "High Round Strike",
+ "messages": [ "You swing high and strike at %s", "<npcname> swings high and strikes %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 2 } ],
+ "melee_allowed": true,
+ "forbidden_buffs_all": [ "buff_medievalpole_onmove" ],
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 1.1 },
+ { "stat": "damage", "type": "cut", "scale": 1.1 },
+ { "stat": "damage", "type": "stab", "scale": 1.1 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_medievalpole_feint",
+ "name": "High Round Feint",
+ "messages": [ "You fake a high round strike at %s", "<npcname> feints at %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 3 } ],
+ "melee_allowed": true,
+ "defensive": true,
+ "miss_recovery": true,
+ "mult_bonuses": [ { "stat": "movecost", "scale": 0.8 } ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_medievalpole_break",
+ "name": "Grab Break",
+ "messages": [ "The %s tries to grab you, but you push away!", "The %s tries to grab <npcname>, but they push away!" ],
+ "skill_requirements": [ { "name": "melee", "level": 4 } ],
+ "melee_allowed": true,
+ "defensive": true,
+ "grab_break": true
+ },
+ {
+ "type": "technique",
+ "id": "tec_medievalpole_hook",
+ "name": "Hook and Drag",
+ "messages": [ "You hook and drag %s down", "<npcname> hooks and drags %s down" ],
+ "skill_requirements": [ { "name": "melee", "level": 3 } ],
+ "melee_allowed": true,
+ "required_buffs_all": "buff_medievalpole_onmiss",
+ "crit_ok": true,
+ "weighting": 2,
+ "down_dur": 2,
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 0.5 },
+ { "stat": "damage", "type": "cut", "scale": 0.5 },
+ { "stat": "damage", "type": "stab", "scale": 0.5 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_medievalpole_execute",
+ "name": "Colpo di Grazia",
+ "messages": [ "You swing down hard and execute %s", "<npcname> swings down hard and executes %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 5 } ],
+ "melee_allowed": true,
+ "downed_target": true,
+ "crit_tec": true,
+ "weighting": 2,
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 1.5 },
+ { "stat": "damage", "type": "cut", "scale": 1.5 },
+ { "stat": "damage", "type": "stab", "scale": 1.5 }
+ ]
+ }
+]
diff --git a/techniques/sojutsu.json b/techniques/sojutsu.json
new file mode 100644
index 0000000..83cf631
--- /dev/null
+++ b/techniques/sojutsu.json
@@ -0,0 +1,40 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_sojutsu_shove",
+ "name": "Shove",
+ "messages": [ "You shove %s back", "<npcname> shoves %s back" ],
+ "skill_requirements": [ { "name": "melee", "level": 2 } ],
+ "melee_allowed": true,
+ "knockback_dist": 1,
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 0.5 },
+ { "stat": "damage", "type": "cut", "scale": 0.5 },
+ { "stat": "damage", "type": "stab", "scale": 0.5 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_sojutsu_trip",
+ "name": "Trip",
+ "messages": [ "You deftly trip %s", "<npcname> deftly trips %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 3 } ],
+ "melee_allowed": true,
+ "down_dur": 1,
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 0.5 },
+ { "stat": "damage", "type": "cut", "scale": 0.5 },
+ { "stat": "damage", "type": "stab", "scale": 0.5 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_sojutsu_feint",
+ "name": "Feint",
+ "messages": [ "You fake a thrust at %s", "<npcname> fakes a thrust at %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 4 } ],
+ "melee_allowed": true,
+ "defensive": true,
+ "miss_recovery": true
+ }
+]
diff --git a/techniques/swordsmanship.json b/techniques/swordsmanship.json
new file mode 100644
index 0000000..6f95afc
--- /dev/null
+++ b/techniques/swordsmanship.json
@@ -0,0 +1,47 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_swordsmanship_ringen",
+ "name": "Grab",
+ "messages": [ "You wrestle %s to the ground", "<npcname> wrestles %s to the ground" ],
+ "skill_requirements": [ { "name": "melee", "level": 4 } ],
+ "melee_allowed": true,
+ "req_buffs": [ "buff_swordsmanship_onpause" ],
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 0.5 },
+ { "stat": "damage", "type": "cut", "scale": 0.5 },
+ { "stat": "damage", "type": "stab", "scale": 0.33 }
+ ],
+ "crit_tec": true,
+ "down_dur": 2
+ },
+ {
+ "type": "technique",
+ "id": "tec_swordsmanship_lethal",
+ "name": "Lethal Strike",
+ "messages": [ "You drive the point of your blade into %s", "<npcname> drives their blade into %s" ],
+ "skill_requirements": [ { "name": "melee", "level": 3 } ],
+ "melee_allowed": true,
+ "req_buffs": [ "buff_swordsmanship_onpause" ],
+ "crit_ok": true,
+ "flat_bonuses": [
+ { "stat": "arpen", "type": "bash", "scaling-stat": "str", "scale": 1.5 },
+ { "stat": "arpen", "type": "cut", "scaling-stat": "str", "scale": 1.5 },
+ { "stat": "arpen", "type": "stab", "scaling-stat": "str", "scale": 1.5 }
+ ],
+ "mult_bonuses": [ { "stat": "damage", "type": "bash", "scale": 0 } ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_swordsmanship_feint",
+ "name": "Flow Drills",
+ "messages": [
+ "With practiced movements, you transition from a failed strike into another strike",
+ "With practiced movements, <npcname> transitions from a failed strike into another strike"
+ ],
+ "skill_requirements": [ { "name": "melee", "level": 1 } ],
+ "melee_allowed": true,
+ "defensive": true,
+ "miss_recovery": true
+ }
+]
diff --git a/techniques/taekwondo.json b/techniques/taekwondo.json
new file mode 100644
index 0000000..f19e98c
--- /dev/null
+++ b/techniques/taekwondo.json
@@ -0,0 +1,73 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_taekwondo_disarm",
+ "name": "Snatch Weapon",
+ "messages": [ "You snatch %s's weapon", "<npcname> snatches %s's weapon" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 4 } ],
+ "unarmed_allowed": true,
+ "weighting": 2,
+ "take_weapon": true,
+ "mult_bonuses": [ { "stat": "damage", "type": "bash", "scale": 0.5 } ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_taekwondo_strong",
+ "name": "Spinning Back Kick",
+ "messages": [
+ "You spin and back-kick %s, right in the center of gravity",
+ "<npcname> spins and back-kicks %s, right in the center of gravity"
+ ],
+ "skill_requirements": [ { "name": "unarmed", "level": 5 } ],
+ "unarmed_allowed": true,
+ "crit_tec": true,
+ "stun_dur": 2,
+ "knockback_dist": 2,
+ "mult_bonuses": [
+ { "stat": "movecost", "scale": 1.5 },
+ { "stat": "damage", "type": "bash", "scale": 1.5 },
+ { "stat": "damage", "type": "cut", "scale": 1.5 },
+ { "stat": "damage", "type": "stab", "scale": 1.5 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_taekwondo_push",
+ "name": "Side Kick",
+ "unarmed_allowed": true,
+ "messages": [ "You turn slightly and side-kick %s", "<npcname> turns slightly and side-kicks %s" ],
+ "knockback_dist": 1
+ },
+ {
+ "type": "technique",
+ "id": "tec_taekwondo_sweep",
+ "name": "Sweep Kick",
+ "messages": [ "You crouch low and sweep-kick %s", "<npcname> crouches low and sweep-kicks %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 2 } ],
+ "unarmed_allowed": true,
+ "crit_ok": true,
+ "down_dur": 1
+ },
+ {
+ "type": "technique",
+ "id": "tec_taekwondo_roundhouse",
+ "name": "Roundhouse Kick",
+ "messages": [ "You roundhouse kick %s", "<npcname> roundhouse kicks %s" ],
+ "unarmed_allowed": true,
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 1.2 },
+ { "stat": "damage", "type": "cut", "scale": 1.2 },
+ { "stat": "damage", "type": "stab", "scale": 1.2 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_taekwondo_feint",
+ "name": "Feint",
+ "messages": [ "You fake a kick at %s", "<npcname> fakes a kick at %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 3 } ],
+ "unarmed_allowed": true,
+ "defensive": true,
+ "miss_recovery": true
+ }
+]
diff --git a/techniques/taichi.json b/techniques/taichi.json
new file mode 100644
index 0000000..7fe8f4d
--- /dev/null
+++ b/techniques/taichi.json
@@ -0,0 +1,60 @@
+[
+ {
+ "type": "technique",
+ "id": "tec_taichi_disarm",
+ "name": "Disarm",
+ "messages": [ "You gently disarm %s", "<npcname> gently disarms %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 3 } ],
+ "unarmed_allowed": true,
+ "disarms": true
+ },
+ {
+ "type": "technique",
+ "id": "tec_taichi_palm",
+ "name": "Palm Strike",
+ "messages": [ "You palm strike %s", "<npcname> palm strikes %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 1 } ],
+ "unarmed_allowed": true,
+ "req_buffs": [ "buff_tai_chi_onpause" ],
+ "knockback_dist": 1,
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 1.5 },
+ { "stat": "damage", "type": "cut", "scale": 1.5 },
+ { "stat": "damage", "type": "stab", "scale": 1.5 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_taichi_counter",
+ "name": "Grasp the Sparrow's Tail",
+ "messages": [ "You divert %s's attack and lead them to the ground", "<npcname> diverts %s's attack and lead them to the ground" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 2 } ],
+ "unarmed_allowed": true,
+ "req_buffs": [ "buff_tai_chi_onblock" ],
+ "crit_ok": true,
+ "down_dur": 1,
+ "mult_bonuses": [
+ { "stat": "movecost", "scale": 0.75 },
+ { "stat": "damage", "type": "bash", "scale": 1.2 },
+ { "stat": "damage", "type": "cut", "scale": 1.2 },
+ { "stat": "damage", "type": "stab", "scale": 1.2 }
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_taichi_precise",
+ "name": "Double Palm Strike",
+ "messages": [ "You double-handed palm strike %s", "<npcname> double-handed palm strikes %s" ],
+ "skill_requirements": [ { "name": "unarmed", "level": 4 } ],
+ "unarmed_allowed": true,
+ "crit_tec": true,
+ "req_buffs": [ "buff_tai_chi_onpause" ],
+ "knockback_dist": 1,
+ "stun_dur": 1,
+ "mult_bonuses": [
+ { "stat": "damage", "type": "bash", "scale": 2.0 },
+ { "stat": "damage", "type": "cut", "scale": 2.0 },
+ { "stat": "damage", "type": "stab", "scale": 2.0 }
+ ]
+ }
+]