All files / systems/trigram/techniques LiTechniques.ts

100% Statements 1/1
100% Branches 0/0
100% Functions 0/0
100% Lines 1/1

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278                                                          43x                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
/**
 * ☲ Li (리) - Fire Stance Techniques
 *
 * Precision nerve strikes based on Taekwondo accuracy.
 * Represents fire's penetrating and illuminating nature.
 *
 * 리괘 - 불: 태권도 정밀 타격 기술
 *
 * @module systems/trigram/techniques/LiTechniques
 * @korean 리괘기술
 */
 
import type { TrigramStanceTechnique } from "@/systems/vitalpoint";
import {
  CombatAttackType,
  DamageType,
  TrigramStance,
} from "../../../types/common";
import { AnimationType } from "../../animation";
 
/**
 * ☲ LI (리) - FIRE: Precision Nerve Strikes
 *
 * Precise strikes targeting vital points and nerves.
 * Element: Fire (불)
 * Philosophy: Penetrating accuracy, illuminating weakness
 *
 * @korean 리괘 - 불: 정밀한 신경 타격 (태권도 정확성)
 */
export const LI_TECHNIQUES: readonly TrigramStanceTechnique[] = [
  {
    id: "li_flame_spear",
    name: {
      korean: "화염지창",
      english: "Flame Spear",
      romanized: "hwayeom_jichang",
    },
    koreanName: "화염지창",
    englishName: "Flame Spear",
    romanized: "hwayeom_jichang",
    description: {
      korean: "불꽃처럼 정확하고 날카로운 공격",
      english: "Precise and sharp attack like flame",
    },
    stance: TrigramStance.LI,
    type: CombatAttackType.THRUST,
    damageType: DamageType.PIERCING,
    damage: 35,
    kiCost: 18,
    staminaCost: 15,
    accuracy: 0.9,
    reachConfig: {
      bodyPart: "arm",
      techniqueType: "punch",
      baseExtension: 0.95,
    },
    executionTime: 979,
    recoveryTime: 1540,
    critChance: 0.15,
    critMultiplier: 1.8,
    effects: [],
    // NEW ARCHITECTURE: Separate type (category) from ID (unique)
    animationCategory: "strike", // Type: shared category
    animationId: "li_flame_spear", // ID: unique 1-1 mapping
    // Legacy field for backward compatibility
    animationType: AnimationType.SPEAR_HAND_STRIKE,
    animationSpeed: 0.75,
    category: "medium",
    range: "short",
    speed: 1.3,
  },
  {
    id: "li_temple_strike",
    name: {
      korean: "관자놀이타격",
      english: "Temple Strike",
      romanized: "gwanja-nori-tagyeok",
    },
    koreanName: "관자놀이타격",
    englishName: "Temple Strike",
    romanized: "gwanja-nori-tagyeok",
    description: {
      korean: "태권도 역권으로 관자놀이를 정확히 타격",
      english: "Taekwondo back fist precisely targeting temple",
    },
    stance: TrigramStance.LI,
    type: CombatAttackType.STRIKE,
    damageType: DamageType.NERVE,
    damage: 32,
    kiCost: 16,
    staminaCost: 18,
    accuracy: 0.92,
    reachConfig: {
      bodyPart: "arm",
      techniqueType: "elbow",
      baseExtension: 0.5,
    },
    executionTime: 909,
    recoveryTime: 1330,
    critChance: 0.22,
    critMultiplier: 2.0,
    effects: [],
    // NEW ARCHITECTURE: Separate type (category) from ID (unique)
    animationCategory: "elbow_strike", // Type: shared category
    animationId: "li_temple_strike", // ID: unique 1-1 mapping
    // Legacy field for backward compatibility
    animationType: AnimationType.TEMPLE_ELBOW,
    animationSpeed: 0.75,
    category: "special",
    range: "short",
    speed: 1.1,
  },
  {
    id: "li_nerve_strike",
    name: {
      korean: "신경타격",
      english: "Nerve Strike",
      romanized: "singyeong-tagyeok",
    },
    koreanName: "신경타격",
    englishName: "Nerve Strike",
    romanized: "singyeong-tagyeok",
    description: {
      korean: "정확한 손가락 타격으로 신경을 마비시킴",
      english: "Precise finger strike paralyzing nerves",
    },
    stance: TrigramStance.LI,
    type: CombatAttackType.NERVE_STRIKE,
    damageType: DamageType.NERVE,
    damage: 28,
    kiCost: 22,
    staminaCost: 12,
    accuracy: 0.95,
    reachConfig: {
      bodyPart: "arm",
      techniqueType: "punch",
      baseExtension: 0.95,
    },
    executionTime: 840,
    recoveryTime: 1260,
    critChance: 0.25,
    critMultiplier: 2.2,
    effects: [],
    // NEW ARCHITECTURE: Separate type (category) from ID (unique)
    animationCategory: "strike", // Type: shared category
    animationId: "li_nerve_strike", // ID: unique 1-1 mapping
    // Legacy field for backward compatibility
    animationType: AnimationType.NERVE_STRIKE,
    animationSpeed: 0.75,
    category: "special",
    range: "short",
    speed: 1.2,
  },
  {
    id: "li_sidekick",
    name: {
      korean: "옆차기",
      english: "Side Kick",
      romanized: "yeop-chagi",
    },
    koreanName: "옆차기",
    englishName: "Side Kick",
    romanized: "yeop-chagi",
    description: {
      korean: "태권도 옆차기로 늑골이나 무릎을 정확히 타격",
      english: "Taekwondo side kick precisely targeting ribs or knee",
    },
    stance: TrigramStance.LI,
    type: CombatAttackType.KICK,
    damageType: DamageType.BLUNT,
    damage: 34,
    kiCost: 20,
    staminaCost: 24,
    accuracy: 0.88,
    reachConfig: {
      bodyPart: "leg",
      techniqueType: "kick",
      baseExtension: 1.1,
    },
    executionTime: 1050,
    recoveryTime: 1470,
    critChance: 0.18,
    critMultiplier: 1.9,
    effects: [],
    // NEW ARCHITECTURE: Separate type (category) from ID (unique)
    animationCategory: "kick", // Type: shared category
    animationId: "li_sidekick", // ID: unique 1-1 mapping
    // Legacy field for backward compatibility
    animationType: AnimationType.SIDE_KICK,
    animationSpeed: 0.75,
    category: "medium",
    range: "medium",
    speed: 1.0,
  },
  {
    id: "li_pressure_point",
    name: {
      korean: "혈도공격",
      english: "Pressure Point Attack",
      romanized: "hyeoldo-gonggyeok",
    },
    koreanName: "혈도공격",
    englishName: "Pressure Point Attack",
    romanized: "hyeoldo-gonggyeok",
    description: {
      korean: "급소를 정확히 타격하여 기를 차단",
      english: "Precise vital point strike disrupting ki flow",
    },
    stance: TrigramStance.LI,
    type: CombatAttackType.PRESSURE_POINT,
    damageType: DamageType.PRESSURE,
    damage: 26,
    kiCost: 25,
    staminaCost: 10,
    accuracy: 0.96,
    reachConfig: {
      bodyPart: "arm",
      techniqueType: "punch",
      baseExtension: 0.95,
    },
    executionTime: 770,
    recoveryTime: 1190,
    critChance: 0.28,
    critMultiplier: 2.3,
    effects: [],
    // NEW ARCHITECTURE: Separate type (category) from ID (unique)
    animationCategory: "strike", // Type: shared category
    animationId: "li_pressure_point", // ID: unique 1-1 mapping
    // Legacy field for backward compatibility
    animationType: AnimationType.PRESSURE_POINT_STRIKE,
    animationSpeed: 0.75,
    category: "special",
    range: "short",
    speed: 1.0,
  },
  {
    id: "li_solar_plexus_strike",
    name: {
      korean: "명치타격",
      english: "Solar Plexus Strike",
      romanized: "myeongchi-tagyeok",
    },
    koreanName: "명치타격",
    englishName: "Solar Plexus Strike",
    romanized: "myeongchi-tagyeok",
    description: {
      korean: "명치를 정확히 타격하여 호흡을 차단",
      english: "Precise strike to solar plexus disrupting breath",
    },
    stance: TrigramStance.LI,
    type: CombatAttackType.THRUST,
    damageType: DamageType.INTERNAL,
    damage: 30,
    kiCost: 18,
    staminaCost: 16,
    accuracy: 0.9,
    reachConfig: {
      bodyPart: "arm",
      techniqueType: "punch",
      baseExtension: 0.9,
    },
    executionTime: 951,
    recoveryTime: 1372,
    critChance: 0.2,
    critMultiplier: 2.0,
    effects: [],
    // NEW ARCHITECTURE: Separate type (category) from ID (unique)
    animationCategory: "strike", // Type: shared category
    animationId: "li_solar_plexus_strike", // ID: unique 1-1 mapping
    // Legacy field for backward compatibility
    animationType: AnimationType.SOLAR_PLEXUS_STRIKE,
    animationSpeed: 0.75,
    category: "medium",
    range: "short",
    speed: 1.1,
  },
];