blacktrigram 0.7.74 → 0.7.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/lib/App2.js +6 -6
  2. package/lib/audio/AudioAssetRegistry.js +1 -1
  3. package/lib/audio/AudioManager.js +1 -1
  4. package/lib/audio/AudioPool.js +1 -1
  5. package/lib/audio/AudioProvider.js +1 -1
  6. package/lib/audio/BoneImpactAudioMap.js +1 -1
  7. package/lib/audio/VariantSelector.js +1 -1
  8. package/lib/audio/index.js +3 -3
  9. package/lib/components/index.js +19 -19
  10. package/lib/components/screens/combat/CombatScreen3D.js +27 -27
  11. package/lib/components/screens/combat/components/controls/CombatButtons.js +1 -1
  12. package/lib/components/screens/combat/components/controls/CombatControlsPanel.js +1 -1
  13. package/lib/components/screens/combat/components/controls/ControlsGuide.js +1 -1
  14. package/lib/components/screens/combat/components/controls/PauseMenu.js +5 -5
  15. package/lib/components/screens/combat/components/controls/PauseMenuButton.js +1 -1
  16. package/lib/components/screens/combat/components/controls/QuickSettings.js +1 -1
  17. package/lib/components/screens/combat/components/effects/BloodDecals3D.js +1 -1
  18. package/lib/components/screens/combat/components/effects/BloodParticles3D.js +1 -1
  19. package/lib/components/screens/combat/components/effects/TraumaOverlay3D.js +1 -1
  20. package/lib/components/screens/combat/components/feedback/MatchCountdown.js +1 -1
  21. package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.js +1 -1
  22. package/lib/components/screens/combat/components/feedback/RoundDisplayStatus.js +1 -1
  23. package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.js +1 -1
  24. package/lib/components/screens/combat/components/hud/CombatBottomHUD.js +2 -2
  25. package/lib/components/screens/combat/components/hud/CombatLeftHUD.js +4 -4
  26. package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.js +1 -1
  27. package/lib/components/screens/combat/components/hud/CombatRightHUD.js +4 -4
  28. package/lib/components/screens/combat/components/hud/CombatTopHUD.js +3 -3
  29. package/lib/components/screens/combat/components/hud/FPSMonitor.js +1 -1
  30. package/lib/components/screens/combat/components/hud/MobileControlsWrapper.js +1 -1
  31. package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js +1 -1
  32. package/lib/components/screens/combat/helpers/AnimationUpdater.js +1 -1
  33. package/lib/components/screens/combat/hooks/useAICombat.js +1 -1
  34. package/lib/components/screens/combat/hooks/useCombatActions.js +1 -1
  35. package/lib/components/screens/combat/hooks/useCombatAttackMovement.js +1 -1
  36. package/lib/components/screens/combat/hooks/useCombatAudio.js +1 -1
  37. package/lib/components/screens/controls/ControlsScreen3D.js +6 -6
  38. package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.js +1 -1
  39. package/lib/components/screens/controls/components/GamepadVisualization3D.js +1 -1
  40. package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.js +1 -1
  41. package/lib/components/screens/controls/components/Key3D.js +1 -1
  42. package/lib/components/screens/controls/components/VisualKeyboard3D.js +2 -2
  43. package/lib/components/screens/intro/IntroScreen3D.js +6 -6
  44. package/lib/components/screens/intro/components/AbilityListOverlayHtml.js +1 -1
  45. package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.js +2 -2
  46. package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.js +3 -3
  47. package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.js +2 -2
  48. package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.js +3 -3
  49. package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.js +1 -1
  50. package/lib/components/screens/intro/components/MenuSectionOverlayHtml.js +2 -2
  51. package/lib/components/screens/intro/components/StatBarOverlayHtml.js +1 -1
  52. package/lib/components/screens/philosophy/PhilosophyScreen3D.js +2 -2
  53. package/lib/components/screens/training/TrainingScreen3D.js +15 -15
  54. package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.js +1 -1
  55. package/lib/components/screens/training/components/AnatomyOverlay3D.js +1 -1
  56. package/lib/components/screens/training/components/FootPlacementMarkers3D.js +1 -1
  57. package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.js +1 -1
  58. package/lib/components/screens/training/components/HitFeedbackEffect3D.js +1 -1
  59. package/lib/components/screens/training/components/TrainingControlsOverlayHtml.js +1 -1
  60. package/lib/components/screens/training/components/TrainingDummy3D.js +4 -4
  61. package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.js +1 -1
  62. package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.js +1 -1
  63. package/lib/components/screens/training/components/TrainingStatsOverlayHtml.js +1 -1
  64. package/lib/components/screens/training/components/VitalPointMarker3D.js +1 -1
  65. package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.js +2 -2
  66. package/lib/components/screens/training/components/hud/TrainingBottomHUD.js +3 -3
  67. package/lib/components/screens/training/components/hud/TrainingLeftHUD.js +3 -3
  68. package/lib/components/screens/training/components/hud/TrainingRightHUD.js +6 -6
  69. package/lib/components/screens/training/components/hud/TrainingTopHUD.js +2 -2
  70. package/lib/components/screens/training/hooks/useAttackMovement.js +2 -2
  71. package/lib/components/screens/training/hooks/useTrainingActions.js +1 -1
  72. package/lib/components/screens/training/hooks/useTrainingState.js +1 -1
  73. package/lib/components/shared/mobile/HapticController.js +1 -1
  74. package/lib/components/shared/mobile/MobileControlsPure.js +1 -1
  75. package/lib/components/shared/three/anatomy/BodySurface.js +1 -1
  76. package/lib/components/shared/three/anatomy/BoneAttachedMuscles.js +1 -1
  77. package/lib/components/shared/three/anatomy/BoneClothing.js +1 -1
  78. package/lib/components/shared/three/anatomy/BoneRenderer.js +7 -7
  79. package/lib/components/shared/three/anatomy/Face3D.js +1 -1
  80. package/lib/components/shared/three/anatomy/Foot3D.js +1 -1
  81. package/lib/components/shared/three/anatomy/Hand3D.js +1 -1
  82. package/lib/components/shared/three/effects/ActionFeedback.js +1 -1
  83. package/lib/components/shared/three/effects/DamageNumbers.js +1 -1
  84. package/lib/components/shared/three/effects/HitEffects3D.js +1 -1
  85. package/lib/components/shared/three/effects/PlayerStateIndicators.js +1 -1
  86. package/lib/components/shared/three/effects/StanceSymbol3D.js +1 -1
  87. package/lib/components/shared/three/effects/StanceTransitionEffect.js +1 -1
  88. package/lib/components/shared/three/effects/VitalPointMarkers3D.js +2 -2
  89. package/lib/components/shared/three/indicators/ElementalColorSystem.js +1 -1
  90. package/lib/components/shared/three/indicators/HapticFeedback.js +1 -1
  91. package/lib/components/shared/three/models/Player3DWithTransitions.js +4 -4
  92. package/lib/components/shared/three/models/SkeletalPlayer3D.js +3 -3
  93. package/lib/components/shared/three/optimization/AdaptiveQuality.js +1 -1
  94. package/lib/components/shared/three/scene/AtmosphericParticles3D.js +1 -1
  95. package/lib/components/shared/three/scene/BackgroundScene3D.js +1 -1
  96. package/lib/components/shared/three/scene/CombatArena3D.js +3 -3
  97. package/lib/components/shared/three/scene/KoreanSignage3D.js +1 -1
  98. package/lib/components/shared/three/ui/BodyPartHealthDisplay.js +1 -1
  99. package/lib/components/shared/three/ui/CombatReadinessBar.js +1 -1
  100. package/lib/components/shared/three/ui/ComboCounter.js +1 -1
  101. package/lib/components/shared/three/ui/HealthBar.js +1 -1
  102. package/lib/components/shared/three/ui/PlayerHUD.js +4 -4
  103. package/lib/components/shared/three/ui/StaminaBar.js +1 -1
  104. package/lib/components/shared/three/ui/TechniqueBar.js +2 -2
  105. package/lib/components/shared/three/ui/TechniqueCard.js +1 -1
  106. package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.js +2 -2
  107. package/lib/components/shared/ui/BaseHUDContainer.js +1 -1
  108. package/lib/components/shared/ui/CombatTimer.js +1 -1
  109. package/lib/components/shared/ui/ErrorModal.js +1 -1
  110. package/lib/components/shared/ui/SplashScreen.js +3 -3
  111. package/lib/components/shared/ui/VitalPointOverlayControlsPure.js +2 -2
  112. package/lib/components/shared/ui/shared/ConfirmDialog.js +1 -1
  113. package/lib/constants/bodyRenderingConstants.js +1 -1
  114. package/lib/data/index.js +1 -1
  115. package/lib/data/techniqueMappings.js +1 -1
  116. package/lib/hooks/index.js +1 -1
  117. package/lib/hooks/useActionFeedback.js +1 -1
  118. package/lib/hooks/useDebounce.js +1 -1
  119. package/lib/hooks/useMatchCountdown.js +1 -1
  120. package/lib/hooks/useRoundTransition.js +1 -1
  121. package/lib/hooks/useTechniqueSelection.js +1 -1
  122. package/lib/hooks/useThrottle.js +1 -1
  123. package/lib/hooks/useWindowSize.js +1 -1
  124. package/lib/index.js +39 -39
  125. package/lib/systems/CombatSystem.js +9 -9
  126. package/lib/systems/EffectCalculator.js +1 -1
  127. package/lib/systems/TrigramSystem.js +1 -1
  128. package/lib/systems/VitalPointSystem.js +2 -2
  129. package/lib/systems/ai/DecisionTree.js +3 -3
  130. package/lib/systems/ai/TrainingAI.js +1 -1
  131. package/lib/systems/animation/builders/HandPoses.js +1 -1
  132. package/lib/systems/animation/builders/KeyframeInterpolation.js +88 -1
  133. package/lib/systems/animation/builders/KeyframeInterpolation.js.map +1 -1
  134. package/lib/systems/animation/builders/KoreanGuardPositions.js +237 -157
  135. package/lib/systems/animation/builders/KoreanGuardPositions.js.map +1 -1
  136. package/lib/systems/animation/builders/MartialArtsAnimationBuilder.js +2 -2
  137. package/lib/systems/animation/builders/SkeletonRig.js +1 -1
  138. package/lib/systems/animation/catalogs/AttackAnimations.js +1 -1
  139. package/lib/systems/animation/catalogs/BasicAnimations.js +1 -1
  140. package/lib/systems/animation/catalogs/ComboAnimations.js +1 -1
  141. package/lib/systems/animation/catalogs/DarkOpsAnimations.js +1 -1
  142. package/lib/systems/animation/catalogs/DefensiveAnimations.js +1 -1
  143. package/lib/systems/animation/catalogs/ElbowKneeAnimations.js +1 -1
  144. package/lib/systems/animation/catalogs/FootworkSkeletalAnimations.js +1 -1
  145. package/lib/systems/animation/catalogs/GamStanceAnimations.js +100 -4
  146. package/lib/systems/animation/catalogs/GamStanceAnimations.js.map +1 -1
  147. package/lib/systems/animation/catalogs/GanStanceAnimations.js +1 -1
  148. package/lib/systems/animation/catalogs/GeonStanceAnimations.js +1 -1
  149. package/lib/systems/animation/catalogs/GonTechniqueAnimations.js +1 -1
  150. package/lib/systems/animation/catalogs/GrapplingAnimations.js +1 -1
  151. package/lib/systems/animation/catalogs/KickAnimations.js +1 -1
  152. package/lib/systems/animation/catalogs/MovementAnimations.js +1 -1
  153. package/lib/systems/animation/catalogs/PunchAnimations.js +1 -1
  154. package/lib/systems/animation/catalogs/RecoveryAnimations.js +1 -1
  155. package/lib/systems/animation/catalogs/SonStanceAnimations.js +1 -1
  156. package/lib/systems/animation/catalogs/StanceAnimations.js +1 -1
  157. package/lib/systems/animation/catalogs/StanceAttackAnimations.js +1 -1
  158. package/lib/systems/animation/catalogs/StanceIdleAnimations.js +1 -1
  159. package/lib/systems/animation/catalogs/StanceLocomotionAnimations.js +1 -1
  160. package/lib/systems/animation/catalogs/StepSkeletalAnimations.js +1 -1
  161. package/lib/systems/animation/catalogs/TaeStanceAnimations.js +1 -1
  162. package/lib/systems/animation/core/AnimationHitTiming.js +1 -1
  163. package/lib/systems/animation/core/AnimationOptimizations.js +1 -1
  164. package/lib/systems/animation/core/AnimationPriority.js +1 -1
  165. package/lib/systems/animation/core/AnimationRegistry.js +4 -4
  166. package/lib/systems/animation/core/AnimationTransitions.js +1 -1
  167. package/lib/systems/animation/core/TechniqueAnimationMapper.js +1 -1
  168. package/lib/systems/animation/core/TechniqueAnimationMapping.js +1 -1
  169. package/lib/systems/animation/systems/AdvancedJointMovements.js +1 -1
  170. package/lib/systems/animation/systems/BodyFacingSystem.js +1 -1
  171. package/lib/systems/animation/systems/MuscleActivation.js +1 -1
  172. package/lib/systems/combat/BalanceSystem.js +1 -1
  173. package/lib/systems/combat/BreakingStatusEffects.js +1 -1
  174. package/lib/systems/combat/CombatStateSystem.js +1 -1
  175. package/lib/systems/combat/ConsciousnessSystem.js +1 -1
  176. package/lib/systems/combat/GrappleSystem.js +1 -1
  177. package/lib/systems/combat/LimbExposureSystem.js +1 -1
  178. package/lib/systems/combat/PainResponseSystem.js +1 -1
  179. package/lib/systems/combat/TrainingCombatSystem.js +2 -2
  180. package/lib/systems/index.js +18 -18
  181. package/lib/systems/movement/helpers/AccelerationUpdater.js +1 -1
  182. package/lib/systems/movement/helpers/accelerationUtils.js +1 -1
  183. package/lib/systems/physics/AttackMovementPhysics.js +1 -1
  184. package/lib/systems/physics/CollisionDetection.js +2 -2
  185. package/lib/systems/physics/KnockbackPhysics.js +1 -1
  186. package/lib/systems/physics/PhysicalReachCalculator.js +1 -1
  187. package/lib/systems/trigram/KoreanTechniques.js +2 -2
  188. package/lib/systems/trigram/techniques/index.js +7 -7
  189. package/lib/systems/trigram/types/GonTechniqueExtensions.js +1 -1
  190. package/lib/systems/types.js +1 -1
  191. package/lib/systems/vitalpoint/DamageCalculator.js +1 -1
  192. package/lib/systems/vitalpoint/HitDetection.js +1 -1
  193. package/lib/systems/vitalpoint/KoreanAnatomy.js +1 -1
  194. package/lib/systems/vitalpoint/KoreanVitalPoints.js +2 -2
  195. package/lib/systems/vitalpoint/VitalPointsData.js +1 -1
  196. package/lib/types/constants/animations.js +1 -1
  197. package/lib/types/constants/index.js +8 -8
  198. package/lib/types/constants/layout.js +1 -1
  199. package/lib/types/constants/ui.js +1 -1
  200. package/lib/types/index.js +6 -6
  201. package/lib/types/techniqueId.js +1 -1
  202. package/lib/utils/accessibility.js +1 -1
  203. package/lib/utils/arenaWorldDimensions.js +1 -1
  204. package/lib/utils/characterScaling.js +1 -1
  205. package/lib/utils/combatReadiness.js +1 -1
  206. package/lib/utils/fabricTextures.js +1 -1
  207. package/lib/utils/hapticFeedback.js +1 -1
  208. package/lib/utils/haptics.js +1 -1
  209. package/lib/utils/index.js +2 -2
  210. package/lib/utils/koreanThemeHelpers.js +1 -1
  211. package/lib/utils/performance/PerformanceMonitor.js +1 -1
  212. package/lib/utils/performance/PerformanceOverlay3D.js +1 -1
  213. package/lib/utils/performance/usePerformanceMonitor.js +2 -2
  214. package/lib/utils/performanceOptimization.js +1 -1
  215. package/lib/utils/responsiveLayoutHelpers.js +1 -1
  216. package/lib/utils/responsiveOrientationConstants.js +1 -1
  217. package/lib/utils/safeAreaUtils.js +1 -1
  218. package/package.json +15 -9
@@ -7,168 +7,248 @@
7
7
  */
8
8
  var toRadians = (degrees) => degrees * Math.PI / 180;
9
9
  /**
10
- * All Korean guard positions indexed by name
11
- * @korean 모든방어자세
10
+ * 상단막기 (Sangdan Makgi) - High Guard
11
+ *
12
+ * Traditional Taekwondo high block position protecting head and face.
13
+ * Both hands at temple/forehead level with elbows bent tight.
14
+ * Fists vertical (thumb-side up) for maximum protection.
15
+ *
16
+ * Protects against:
17
+ * - High strikes to head (머리 공격)
18
+ * - Overhead attacks (위쪽 공격)
19
+ * - Face punches (얼굴 주먹)
20
+ *
21
+ * Application:
22
+ * - Default guard for Geon (Heaven) stance
23
+ * - Used in high kicking techniques
24
+ * - Transitional guard for head-level attacks
25
+ *
26
+ * Biomechanics:
27
+ * - Shoulders raised (~15° abduction)
28
+ * - Elbows bent ~120° (tight guard)
29
+ * - Fists at temple level
30
+ * - Forearms vertical for deflection
31
+ *
32
+ * @korean 상단막기자세
12
33
  */
13
- var KOREAN_GUARD_POSITIONS = {
14
- HIGH_GUARD: {
15
- korean: "상단막기",
16
- english: "High Guard",
17
- romanized: "Sangdan Makgi",
18
- description: {
19
- korean: "머리와 얼굴을 보호하는 높은 방어 자세. 주먹을 관자놀이 높이에 두고 팔꿈치를 단단히 구부림.",
20
- english: "High guard protecting head and face. Fists at temple level with elbows bent tight."
21
- },
22
- left: {
23
- shoulder: [
24
- toRadians(-30),
25
- toRadians(-25),
26
- toRadians(10)
27
- ],
28
- elbow: [
29
- toRadians(0),
30
- toRadians(0),
31
- toRadians(-120)
32
- ],
33
- wrist: [
34
- toRadians(0),
35
- toRadians(0),
36
- toRadians(0)
37
- ]
38
- },
39
- right: {
40
- shoulder: [
41
- toRadians(-30),
42
- toRadians(25),
43
- toRadians(-10)
44
- ],
45
- elbow: [
46
- toRadians(0),
47
- toRadians(0),
48
- toRadians(120)
49
- ],
50
- wrist: [
51
- toRadians(0),
52
- toRadians(0),
53
- toRadians(0)
54
- ]
55
- },
56
- height: "temple_level",
57
- handPose: "fist_vertical",
58
- protects: [
59
- "head",
60
- "temple",
61
- "forehead",
62
- "eyes",
63
- "nose",
64
- "jaw"
34
+ var HIGH_GUARD = {
35
+ korean: "상단막기",
36
+ english: "High Guard",
37
+ romanized: "Sangdan Makgi",
38
+ description: {
39
+ korean: "머리와 얼굴을 보호하는 높은 방어 자세. 주먹을 관자놀이 높이에 두고 팔꿈치를 단단히 구부림.",
40
+ english: "High guard protecting head and face. Fists at temple level with elbows bent tight."
41
+ },
42
+ left: {
43
+ shoulder: [
44
+ toRadians(-30),
45
+ toRadians(-25),
46
+ toRadians(10)
47
+ ],
48
+ elbow: [
49
+ toRadians(0),
50
+ toRadians(0),
51
+ toRadians(-120)
52
+ ],
53
+ wrist: [
54
+ toRadians(0),
55
+ toRadians(0),
56
+ toRadians(0)
57
+ ]
58
+ },
59
+ right: {
60
+ shoulder: [
61
+ toRadians(-30),
62
+ toRadians(25),
63
+ toRadians(-10)
64
+ ],
65
+ elbow: [
66
+ toRadians(0),
67
+ toRadians(0),
68
+ toRadians(120)
69
+ ],
70
+ wrist: [
71
+ toRadians(0),
72
+ toRadians(0),
73
+ toRadians(0)
74
+ ]
75
+ },
76
+ height: "temple_level",
77
+ handPose: "fist_vertical",
78
+ protects: [
79
+ "head",
80
+ "temple",
81
+ "forehead",
82
+ "eyes",
83
+ "nose",
84
+ "jaw"
85
+ ]
86
+ };
87
+ /**
88
+ * 중단막기 (Jungdan Makgi) - Middle Guard
89
+ *
90
+ * Standard Korean martial arts guard at chest/solar plexus level.
91
+ * Most versatile guard position, used in most fighting stances.
92
+ * Elbows at 90° protecting ribs and torso.
93
+ *
94
+ * Protects against:
95
+ * - Body punches (몸통 주먹)
96
+ * - Solar plexus strikes (명치 공격)
97
+ * - Rib attacks (갈비뼈 공격)
98
+ * - Liver strikes (간 공격)
99
+ *
100
+ * Application:
101
+ * - Default guard for most stances
102
+ * - Starting position for most techniques
103
+ * - Balanced offensive/defensive posture
104
+ *
105
+ * Biomechanics:
106
+ * - Shoulders neutral (~10° forward)
107
+ * - Elbows bent ~100° (classic guard)
108
+ * - Fists at chest/chin level
109
+ * - Ready to attack or defend
110
+ *
111
+ * @korean 중단막기자세
112
+ */
113
+ var MIDDLE_GUARD = {
114
+ korean: "중단막기",
115
+ english: "Middle Guard",
116
+ romanized: "Jungdan Makgi",
117
+ description: {
118
+ korean: "가슴과 명치를 보호하는 중간 방어 자세. 팔꿈치를 90도 구부려 몸통을 보호함.",
119
+ english: "Middle guard protecting chest and solar plexus. Elbows bent at 90° protecting torso."
120
+ },
121
+ left: {
122
+ shoulder: [
123
+ toRadians(-20),
124
+ toRadians(-20),
125
+ toRadians(8)
126
+ ],
127
+ elbow: [
128
+ toRadians(0),
129
+ toRadians(0),
130
+ toRadians(-100)
131
+ ],
132
+ wrist: [
133
+ toRadians(0),
134
+ toRadians(0),
135
+ toRadians(0)
65
136
  ]
66
137
  },
67
- MIDDLE_GUARD: {
68
- korean: "중단막기",
69
- english: "Middle Guard",
70
- romanized: "Jungdan Makgi",
71
- description: {
72
- korean: "가슴과 명치를 보호하는 중간 방어 자세. 팔꿈치를 90도 구부려 몸통을 보호함.",
73
- english: "Middle guard protecting chest and solar plexus. Elbows bent at 90° protecting torso."
74
- },
75
- left: {
76
- shoulder: [
77
- toRadians(-20),
78
- toRadians(-20),
79
- toRadians(8)
80
- ],
81
- elbow: [
82
- toRadians(0),
83
- toRadians(0),
84
- toRadians(-100)
85
- ],
86
- wrist: [
87
- toRadians(0),
88
- toRadians(0),
89
- toRadians(0)
90
- ]
91
- },
92
- right: {
93
- shoulder: [
94
- toRadians(-20),
95
- toRadians(20),
96
- toRadians(-8)
97
- ],
98
- elbow: [
99
- toRadians(0),
100
- toRadians(0),
101
- toRadians(100)
102
- ],
103
- wrist: [
104
- toRadians(0),
105
- toRadians(0),
106
- toRadians(0)
107
- ]
108
- },
109
- height: "chest_level",
110
- handPose: "fist_vertical",
111
- protects: [
112
- "chest",
113
- "solar_plexus",
114
- "ribs",
115
- "liver",
116
- "spleen",
117
- "heart"
138
+ right: {
139
+ shoulder: [
140
+ toRadians(-20),
141
+ toRadians(20),
142
+ toRadians(-8)
143
+ ],
144
+ elbow: [
145
+ toRadians(0),
146
+ toRadians(0),
147
+ toRadians(100)
148
+ ],
149
+ wrist: [
150
+ toRadians(0),
151
+ toRadians(0),
152
+ toRadians(0)
153
+ ]
154
+ },
155
+ height: "chest_level",
156
+ handPose: "fist_vertical",
157
+ protects: [
158
+ "chest",
159
+ "solar_plexus",
160
+ "ribs",
161
+ "liver",
162
+ "spleen",
163
+ "heart"
164
+ ]
165
+ };
166
+ /**
167
+ * 하단막기 (Hadan Makgi) - Low Guard
168
+ *
169
+ * Low guard position protecting lower body and groin.
170
+ * Used in grappling and ground-fighting scenarios.
171
+ * Hands at abdomen/hip level ready for low attacks.
172
+ *
173
+ * Protects against:
174
+ * - Low kicks (낮은 발차기)
175
+ * - Body kicks (몸통 발차기)
176
+ * - Groin attacks (낭심 공격)
177
+ * - Takedown attempts (넘어뜨리기)
178
+ *
179
+ * Application:
180
+ * - Default for Gon (Earth) stance
181
+ * - Grappling and clinch range
182
+ * - Defense against low attacks
183
+ *
184
+ * Biomechanics:
185
+ * - Shoulders forward (~15° flexion)
186
+ * - Elbows bent ~75° (wider guard)
187
+ * - Fists at abdomen/hip level
188
+ * - Ready to sprawl or clinch
189
+ *
190
+ * @korean 하단막기자세
191
+ */
192
+ var LOW_GUARD = {
193
+ korean: "하단막기",
194
+ english: "Low Guard",
195
+ romanized: "Hadan Makgi",
196
+ description: {
197
+ korean: "하복부와 낭심을 보호하는 낮은 방어 자세. 손을 배 높이에 두고 낮은 공격에 대비함.",
198
+ english: "Low guard protecting lower body and groin. Hands at abdomen level ready for low attacks."
199
+ },
200
+ left: {
201
+ shoulder: [
202
+ toRadians(15),
203
+ toRadians(-10),
204
+ toRadians(12)
205
+ ],
206
+ elbow: [
207
+ toRadians(0),
208
+ toRadians(0),
209
+ toRadians(-75)
210
+ ],
211
+ wrist: [
212
+ toRadians(0),
213
+ toRadians(0),
214
+ toRadians(0)
118
215
  ]
119
216
  },
120
- LOW_GUARD: {
121
- korean: "하단막기",
122
- english: "Low Guard",
123
- romanized: "Hadan Makgi",
124
- description: {
125
- korean: "하복부와 낭심을 보호하는 낮은 방어 자세. 손을 배 높이에 두고 낮은 공격에 대비함.",
126
- english: "Low guard protecting lower body and groin. Hands at abdomen level ready for low attacks."
127
- },
128
- left: {
129
- shoulder: [
130
- toRadians(15),
131
- toRadians(-10),
132
- toRadians(12)
133
- ],
134
- elbow: [
135
- toRadians(0),
136
- toRadians(0),
137
- toRadians(-75)
138
- ],
139
- wrist: [
140
- toRadians(0),
141
- toRadians(0),
142
- toRadians(0)
143
- ]
144
- },
145
- right: {
146
- shoulder: [
147
- toRadians(15),
148
- toRadians(10),
149
- toRadians(-12)
150
- ],
151
- elbow: [
152
- toRadians(0),
153
- toRadians(0),
154
- toRadians(75)
155
- ],
156
- wrist: [
157
- toRadians(0),
158
- toRadians(0),
159
- toRadians(0)
160
- ]
161
- },
162
- height: "abdomen_level",
163
- handPose: "fist_vertical",
164
- protects: [
165
- "abdomen",
166
- "groin",
167
- "hip",
168
- "thigh",
169
- "lower_ribs"
217
+ right: {
218
+ shoulder: [
219
+ toRadians(15),
220
+ toRadians(10),
221
+ toRadians(-12)
222
+ ],
223
+ elbow: [
224
+ toRadians(0),
225
+ toRadians(0),
226
+ toRadians(75)
227
+ ],
228
+ wrist: [
229
+ toRadians(0),
230
+ toRadians(0),
231
+ toRadians(0)
170
232
  ]
171
- }
233
+ },
234
+ height: "abdomen_level",
235
+ handPose: "fist_vertical",
236
+ protects: [
237
+ "abdomen",
238
+ "groin",
239
+ "hip",
240
+ "thigh",
241
+ "lower_ribs"
242
+ ]
243
+ };
244
+ /**
245
+ * All Korean guard positions indexed by name
246
+ * @korean 모든방어자세
247
+ */
248
+ var KOREAN_GUARD_POSITIONS = {
249
+ HIGH_GUARD,
250
+ MIDDLE_GUARD,
251
+ LOW_GUARD
172
252
  };
173
253
  /**
174
254
  * Get guard position by type
@@ -181,6 +261,6 @@ var getGuardPosition = (type) => {
181
261
  return KOREAN_GUARD_POSITIONS[type];
182
262
  };
183
263
  //#endregion
184
- export { getGuardPosition };
264
+ export { HIGH_GUARD, KOREAN_GUARD_POSITIONS, LOW_GUARD, MIDDLE_GUARD, getGuardPosition };
185
265
 
186
266
  //# sourceMappingURL=KoreanGuardPositions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KoreanGuardPositions.js","names":[],"sources":["../../../../src/systems/animation/builders/KoreanGuardPositions.ts"],"sourcesContent":["import { BoneName } from \"@/types/skeletal\";\n\n// Minimal contract to apply guard rotations without depending on KeyframeConfig\ninterface GuardRotatable {\n rotate: (bone: BoneName, x: number, y: number, z: number) => unknown;\n}\n\n/**\n * Korean Guard Positions (막기자세)\n *\n * Defines authentic Korean martial arts guard positions for all animations.\n * Guards protect vital areas and provide optimal positioning for techniques.\n *\n * Korean martial arts emphasize three primary guard levels:\n * - 상단막기 (Sangdan Makgi) - High guard protecting head\n * - 중단막기 (Jungdan Makgi) - Middle guard protecting torso\n * - 하단막기 (Hadan Makgi) - Low guard protecting lower body\n *\n * Each guard position includes:\n * - Proper shoulder and elbow angles\n * - Hand pose (주먹쥐기 - fist formation)\n * - Guard height description\n * - Korean/English terminology\n *\n * @module systems/animation/KoreanGuardPositions\n * @category Animation System\n * @korean 막기자세시스템\n */\n\n/**\n * Guard position for a single arm\n * @korean 팔방어위치\n */\nexport interface GuardArmPosition {\n /** Shoulder rotation in radians (x, y, z) */\n readonly shoulder: readonly [number, number, number];\n /** Elbow rotation in radians (x, y, z) */\n readonly elbow: readonly [number, number, number];\n /** Wrist rotation in radians (x, y, z) */\n readonly wrist: readonly [number, number, number];\n}\n\n/**\n * Complete guard position configuration\n * @korean 방어자세설정\n */\nexport interface GuardPosition {\n /** Korean name */\n readonly korean: string;\n /** English name */\n readonly english: string;\n /** Romanization */\n readonly romanized: string;\n /** Description of guard purpose and application */\n readonly description: {\n readonly korean: string;\n readonly english: string;\n };\n /** Left arm guard position */\n readonly left: GuardArmPosition;\n /** Right arm guard position */\n readonly right: GuardArmPosition;\n /** Height level of guard */\n readonly height: \"temple_level\" | \"chest_level\" | \"abdomen_level\";\n /**\n * Default hand pose description for this guard.\n *\n * NOTE: This field is documentation/metadata only and is not wired into the\n * hand pose system or the HandPoseType enum. Actual hand poses are applied\n * directly in animation code (e.g., via HAND_POSES.FIST). Do not use these\n * string literal values for programmatic logic.\n *\n * @see HandPoseType for the actual hand pose enum values\n * @see HAND_POSES for applying hand poses in animations\n */\n readonly handPose: \"fist_vertical\" | \"fist_horizontal\" | \"open_hand\";\n /** Vital areas protected by this guard */\n readonly protects: readonly string[];\n}\n\n/**\n * Helper to convert degrees to radians\n * @param degrees - Angle in degrees\n * @returns Angle in radians\n * @korean 도를라디안으로\n */\nconst toRadians = (degrees: number): number => (degrees * Math.PI) / 180;\n\n/**\n * 상단막기 (Sangdan Makgi) - High Guard\n *\n * Traditional Taekwondo high block position protecting head and face.\n * Both hands at temple/forehead level with elbows bent tight.\n * Fists vertical (thumb-side up) for maximum protection.\n *\n * Protects against:\n * - High strikes to head (머리 공격)\n * - Overhead attacks (위쪽 공격)\n * - Face punches (얼굴 주먹)\n *\n * Application:\n * - Default guard for Geon (Heaven) stance\n * - Used in high kicking techniques\n * - Transitional guard for head-level attacks\n *\n * Biomechanics:\n * - Shoulders raised (~15° abduction)\n * - Elbows bent ~120° (tight guard)\n * - Fists at temple level\n * - Forearms vertical for deflection\n *\n * @korean 상단막기자세\n */\nexport const HIGH_GUARD: GuardPosition = {\n korean: \"상단막기\",\n english: \"High Guard\",\n romanized: \"Sangdan Makgi\",\n description: {\n korean:\n \"머리와 얼굴을 보호하는 높은 방어 자세. 주먹을 관자놀이 높이에 두고 팔꿈치를 단단히 구부림.\",\n english:\n \"High guard protecting head and face. Fists at temple level with elbows bent tight.\",\n },\n left: {\n shoulder: [toRadians(-30), toRadians(-25), toRadians(10)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(-120)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n right: {\n shoulder: [toRadians(-30), toRadians(25), toRadians(-10)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(120)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n height: \"temple_level\",\n handPose: \"fist_vertical\",\n protects: [\"head\", \"temple\", \"forehead\", \"eyes\", \"nose\", \"jaw\"] as const,\n};\n\n/**\n * 중단막기 (Jungdan Makgi) - Middle Guard\n *\n * Standard Korean martial arts guard at chest/solar plexus level.\n * Most versatile guard position, used in most fighting stances.\n * Elbows at 90° protecting ribs and torso.\n *\n * Protects against:\n * - Body punches (몸통 주먹)\n * - Solar plexus strikes (명치 공격)\n * - Rib attacks (갈비뼈 공격)\n * - Liver strikes (간 공격)\n *\n * Application:\n * - Default guard for most stances\n * - Starting position for most techniques\n * - Balanced offensive/defensive posture\n *\n * Biomechanics:\n * - Shoulders neutral (~10° forward)\n * - Elbows bent ~100° (classic guard)\n * - Fists at chest/chin level\n * - Ready to attack or defend\n *\n * @korean 중단막기자세\n */\nexport const MIDDLE_GUARD: GuardPosition = {\n korean: \"중단막기\",\n english: \"Middle Guard\",\n romanized: \"Jungdan Makgi\",\n description: {\n korean:\n \"가슴과 명치를 보호하는 중간 방어 자세. 팔꿈치를 90도 구부려 몸통을 보호함.\",\n english:\n \"Middle guard protecting chest and solar plexus. Elbows bent at 90° protecting torso.\",\n },\n left: {\n shoulder: [toRadians(-20), toRadians(-20), toRadians(8)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(-100)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n right: {\n shoulder: [toRadians(-20), toRadians(20), toRadians(-8)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(100)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n height: \"chest_level\",\n handPose: \"fist_vertical\",\n protects: [\n \"chest\",\n \"solar_plexus\",\n \"ribs\",\n \"liver\",\n \"spleen\",\n \"heart\",\n ] as const,\n};\n\n/**\n * 하단막기 (Hadan Makgi) - Low Guard\n *\n * Low guard position protecting lower body and groin.\n * Used in grappling and ground-fighting scenarios.\n * Hands at abdomen/hip level ready for low attacks.\n *\n * Protects against:\n * - Low kicks (낮은 발차기)\n * - Body kicks (몸통 발차기)\n * - Groin attacks (낭심 공격)\n * - Takedown attempts (넘어뜨리기)\n *\n * Application:\n * - Default for Gon (Earth) stance\n * - Grappling and clinch range\n * - Defense against low attacks\n *\n * Biomechanics:\n * - Shoulders forward (~15° flexion)\n * - Elbows bent ~75° (wider guard)\n * - Fists at abdomen/hip level\n * - Ready to sprawl or clinch\n *\n * @korean 하단막기자세\n */\nexport const LOW_GUARD: GuardPosition = {\n korean: \"하단막기\",\n english: \"Low Guard\",\n romanized: \"Hadan Makgi\",\n description: {\n korean:\n \"하복부와 낭심을 보호하는 낮은 방어 자세. 손을 배 높이에 두고 낮은 공격에 대비함.\",\n english:\n \"Low guard protecting lower body and groin. Hands at abdomen level ready for low attacks.\",\n },\n left: {\n shoulder: [toRadians(15), toRadians(-10), toRadians(12)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(-75)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n right: {\n shoulder: [toRadians(15), toRadians(10), toRadians(-12)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(75)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n height: \"abdomen_level\",\n handPose: \"fist_vertical\",\n protects: [\"abdomen\", \"groin\", \"hip\", \"thigh\", \"lower_ribs\"] as const,\n};\n\n/**\n * All Korean guard positions indexed by name\n * @korean 모든방어자세\n */\nexport const KOREAN_GUARD_POSITIONS = {\n HIGH_GUARD,\n MIDDLE_GUARD,\n LOW_GUARD,\n} as const;\n\n/**\n * Guard position type\n * @korean 방어자세타입\n */\nexport type GuardPositionType = keyof typeof KOREAN_GUARD_POSITIONS;\n\n/**\n * Get guard position by type\n *\n * @param type - Guard position type\n * @returns Guard position configuration\n * @korean 방어자세가져오기\n */\nexport const getGuardPosition = (type: GuardPositionType): GuardPosition => {\n return KOREAN_GUARD_POSITIONS[type];\n};\n\n/**\n * Get appropriate guard for stance height\n *\n * Determines which guard position is most appropriate based on\n * the stance configuration and fighting context.\n *\n * @param stanceType - Type of stance (\"high\" | \"middle\" | \"low\")\n * @returns Recommended guard position\n * @korean 자세높이에맞는방어자세\n */\nexport const getGuardForStanceHeight = (\n stanceType: \"high\" | \"middle\" | \"low\",\n): GuardPosition => {\n switch (stanceType) {\n case \"high\":\n return HIGH_GUARD;\n case \"low\":\n return LOW_GUARD;\n case \"middle\":\n default:\n return MIDDLE_GUARD;\n }\n};\n\n/**\n * Apply guard position to KeyframeConfig\n *\n * Applies a Korean martial arts guard position to a keyframe configuration.\n * Can apply to one hand (for techniques where one hand strikes) or both hands.\n *\n * Usage:\n * ```typescript\n * const kf = new KeyframeConfig(0.0);\n * applyGuardPositionToConfig(kf, MIDDLE_GUARD, \"both\"); // Both hands in guard\n * applyGuardPositionToConfig(kf, MIDDLE_GUARD, \"left\"); // Only left hand guards\n * ```\n *\n * @param config - KeyframeConfig to apply guard to\n * @param guardPosition - Guard position configuration\n * @param hand - Which hand(s) to apply (\"left\" | \"right\" | \"both\")\n * @korean KeyframeConfig에방어자세적용\n */\nexport const applyGuardPositionToConfig = (\n config: GuardRotatable,\n guardPosition: GuardPosition,\n hand: \"left\" | \"right\" | \"both\" = \"both\",\n): void => {\n // Apply left hand guard\n if (hand === \"left\" || hand === \"both\") {\n config.rotate(\n BoneName.SHOULDER_L,\n guardPosition.left.shoulder[0],\n guardPosition.left.shoulder[1],\n guardPosition.left.shoulder[2],\n );\n config.rotate(\n BoneName.ELBOW_L,\n guardPosition.left.elbow[0],\n guardPosition.left.elbow[1],\n guardPosition.left.elbow[2],\n );\n config.rotate(\n BoneName.WRIST_L,\n guardPosition.left.wrist[0],\n guardPosition.left.wrist[1],\n guardPosition.left.wrist[2],\n );\n }\n\n // Apply right hand guard\n if (hand === \"right\" || hand === \"both\") {\n config.rotate(\n BoneName.SHOULDER_R,\n guardPosition.right.shoulder[0],\n guardPosition.right.shoulder[1],\n guardPosition.right.shoulder[2],\n );\n config.rotate(\n BoneName.ELBOW_R,\n guardPosition.right.elbow[0],\n guardPosition.right.elbow[1],\n guardPosition.right.elbow[2],\n );\n config.rotate(\n BoneName.WRIST_R,\n guardPosition.right.wrist[0],\n guardPosition.right.wrist[1],\n guardPosition.right.wrist[2],\n );\n }\n};\n"],"mappings":";;;;;;;AAsFA,IAAM,aAAa,YAA6B,UAAU,KAAK,KAAM;;;;;AAqKrE,IAAa,yBAAyB;CACpC;EA1IA,QAAQ;EACR,SAAS;EACT,WAAW;EACX,aAAa;GACX,QACE;GACF,SACE;EACJ;EACA,MAAM;GACJ,UAAU;IAAC,UAAU,GAAG;IAAG,UAAU,GAAG;IAAG,UAAU,EAAE;GAAC;GACxD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,IAAI;GAAC;GACnD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,CAAC;GAAC;EAClD;EACA,OAAO;GACL,UAAU;IAAC,UAAU,GAAG;IAAG,UAAU,EAAE;IAAG,UAAU,GAAG;GAAC;GACxD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,GAAG;GAAC;GAClD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,CAAC;GAAC;EAClD;EACA,QAAQ;EACR,UAAU;EACV,UAAU;GAAC;GAAQ;GAAU;GAAY;GAAQ;GAAQ;EAAK;CAqH9D;CACA;EAxFA,QAAQ;EACR,SAAS;EACT,WAAW;EACX,aAAa;GACX,QACE;GACF,SACE;EACJ;EACA,MAAM;GACJ,UAAU;IAAC,UAAU,GAAG;IAAG,UAAU,GAAG;IAAG,UAAU,CAAC;GAAC;GACvD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,IAAI;GAAC;GACnD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,CAAC;GAAC;EAClD;EACA,OAAO;GACL,UAAU;IAAC,UAAU,GAAG;IAAG,UAAU,EAAE;IAAG,UAAU,EAAE;GAAC;GACvD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,GAAG;GAAC;GAClD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,CAAC;GAAC;EAClD;EACA,QAAQ;EACR,UAAU;EACV,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;EACF;CA4DA;CACA;EA/BA,QAAQ;EACR,SAAS;EACT,WAAW;EACX,aAAa;GACX,QACE;GACF,SACE;EACJ;EACA,MAAM;GACJ,UAAU;IAAC,UAAU,EAAE;IAAG,UAAU,GAAG;IAAG,UAAU,EAAE;GAAC;GACvD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,GAAG;GAAC;GAClD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,CAAC;GAAC;EAClD;EACA,OAAO;GACL,UAAU;IAAC,UAAU,EAAE;IAAG,UAAU,EAAE;IAAG,UAAU,GAAG;GAAC;GACvD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,EAAE;GAAC;GACjD,OAAO;IAAC,UAAU,CAAC;IAAG,UAAU,CAAC;IAAG,UAAU,CAAC;GAAC;EAClD;EACA,QAAQ;EACR,UAAU;EACV,UAAU;GAAC;GAAW;GAAS;GAAO;GAAS;EAAY;CAU3D;AACF;;;;;;;;AAeA,IAAa,oBAAoB,SAA2C;CAC1E,OAAO,uBAAuB;AAChC"}
1
+ {"version":3,"file":"KoreanGuardPositions.js","names":[],"sources":["../../../../src/systems/animation/builders/KoreanGuardPositions.ts"],"sourcesContent":["import { BoneName } from \"@/types/skeletal\";\n\n// Minimal contract to apply guard rotations without depending on KeyframeConfig\ninterface GuardRotatable {\n rotate: (bone: BoneName, x: number, y: number, z: number) => unknown;\n}\n\n/**\n * Korean Guard Positions (막기자세)\n *\n * Defines authentic Korean martial arts guard positions for all animations.\n * Guards protect vital areas and provide optimal positioning for techniques.\n *\n * Korean martial arts emphasize three primary guard levels:\n * - 상단막기 (Sangdan Makgi) - High guard protecting head\n * - 중단막기 (Jungdan Makgi) - Middle guard protecting torso\n * - 하단막기 (Hadan Makgi) - Low guard protecting lower body\n *\n * Each guard position includes:\n * - Proper shoulder and elbow angles\n * - Hand pose (주먹쥐기 - fist formation)\n * - Guard height description\n * - Korean/English terminology\n *\n * @module systems/animation/KoreanGuardPositions\n * @category Animation System\n * @korean 막기자세시스템\n */\n\n/**\n * Guard position for a single arm\n * @korean 팔방어위치\n */\nexport interface GuardArmPosition {\n /** Shoulder rotation in radians (x, y, z) */\n readonly shoulder: readonly [number, number, number];\n /** Elbow rotation in radians (x, y, z) */\n readonly elbow: readonly [number, number, number];\n /** Wrist rotation in radians (x, y, z) */\n readonly wrist: readonly [number, number, number];\n}\n\n/**\n * Complete guard position configuration\n * @korean 방어자세설정\n */\nexport interface GuardPosition {\n /** Korean name */\n readonly korean: string;\n /** English name */\n readonly english: string;\n /** Romanization */\n readonly romanized: string;\n /** Description of guard purpose and application */\n readonly description: {\n readonly korean: string;\n readonly english: string;\n };\n /** Left arm guard position */\n readonly left: GuardArmPosition;\n /** Right arm guard position */\n readonly right: GuardArmPosition;\n /** Height level of guard */\n readonly height: \"temple_level\" | \"chest_level\" | \"abdomen_level\";\n /**\n * Default hand pose description for this guard.\n *\n * NOTE: This field is documentation/metadata only and is not wired into the\n * hand pose system or the HandPoseType enum. Actual hand poses are applied\n * directly in animation code (e.g., via HAND_POSES.FIST). Do not use these\n * string literal values for programmatic logic.\n *\n * @see HandPoseType for the actual hand pose enum values\n * @see HAND_POSES for applying hand poses in animations\n */\n readonly handPose: \"fist_vertical\" | \"fist_horizontal\" | \"open_hand\";\n /** Vital areas protected by this guard */\n readonly protects: readonly string[];\n}\n\n/**\n * Helper to convert degrees to radians\n * @param degrees - Angle in degrees\n * @returns Angle in radians\n * @korean 도를라디안으로\n */\nconst toRadians = (degrees: number): number => (degrees * Math.PI) / 180;\n\n/**\n * 상단막기 (Sangdan Makgi) - High Guard\n *\n * Traditional Taekwondo high block position protecting head and face.\n * Both hands at temple/forehead level with elbows bent tight.\n * Fists vertical (thumb-side up) for maximum protection.\n *\n * Protects against:\n * - High strikes to head (머리 공격)\n * - Overhead attacks (위쪽 공격)\n * - Face punches (얼굴 주먹)\n *\n * Application:\n * - Default guard for Geon (Heaven) stance\n * - Used in high kicking techniques\n * - Transitional guard for head-level attacks\n *\n * Biomechanics:\n * - Shoulders raised (~15° abduction)\n * - Elbows bent ~120° (tight guard)\n * - Fists at temple level\n * - Forearms vertical for deflection\n *\n * @korean 상단막기자세\n */\nexport const HIGH_GUARD: GuardPosition = {\n korean: \"상단막기\",\n english: \"High Guard\",\n romanized: \"Sangdan Makgi\",\n description: {\n korean:\n \"머리와 얼굴을 보호하는 높은 방어 자세. 주먹을 관자놀이 높이에 두고 팔꿈치를 단단히 구부림.\",\n english:\n \"High guard protecting head and face. Fists at temple level with elbows bent tight.\",\n },\n left: {\n shoulder: [toRadians(-30), toRadians(-25), toRadians(10)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(-120)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n right: {\n shoulder: [toRadians(-30), toRadians(25), toRadians(-10)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(120)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n height: \"temple_level\",\n handPose: \"fist_vertical\",\n protects: [\"head\", \"temple\", \"forehead\", \"eyes\", \"nose\", \"jaw\"] as const,\n};\n\n/**\n * 중단막기 (Jungdan Makgi) - Middle Guard\n *\n * Standard Korean martial arts guard at chest/solar plexus level.\n * Most versatile guard position, used in most fighting stances.\n * Elbows at 90° protecting ribs and torso.\n *\n * Protects against:\n * - Body punches (몸통 주먹)\n * - Solar plexus strikes (명치 공격)\n * - Rib attacks (갈비뼈 공격)\n * - Liver strikes (간 공격)\n *\n * Application:\n * - Default guard for most stances\n * - Starting position for most techniques\n * - Balanced offensive/defensive posture\n *\n * Biomechanics:\n * - Shoulders neutral (~10° forward)\n * - Elbows bent ~100° (classic guard)\n * - Fists at chest/chin level\n * - Ready to attack or defend\n *\n * @korean 중단막기자세\n */\nexport const MIDDLE_GUARD: GuardPosition = {\n korean: \"중단막기\",\n english: \"Middle Guard\",\n romanized: \"Jungdan Makgi\",\n description: {\n korean:\n \"가슴과 명치를 보호하는 중간 방어 자세. 팔꿈치를 90도 구부려 몸통을 보호함.\",\n english:\n \"Middle guard protecting chest and solar plexus. Elbows bent at 90° protecting torso.\",\n },\n left: {\n shoulder: [toRadians(-20), toRadians(-20), toRadians(8)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(-100)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n right: {\n shoulder: [toRadians(-20), toRadians(20), toRadians(-8)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(100)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n height: \"chest_level\",\n handPose: \"fist_vertical\",\n protects: [\n \"chest\",\n \"solar_plexus\",\n \"ribs\",\n \"liver\",\n \"spleen\",\n \"heart\",\n ] as const,\n};\n\n/**\n * 하단막기 (Hadan Makgi) - Low Guard\n *\n * Low guard position protecting lower body and groin.\n * Used in grappling and ground-fighting scenarios.\n * Hands at abdomen/hip level ready for low attacks.\n *\n * Protects against:\n * - Low kicks (낮은 발차기)\n * - Body kicks (몸통 발차기)\n * - Groin attacks (낭심 공격)\n * - Takedown attempts (넘어뜨리기)\n *\n * Application:\n * - Default for Gon (Earth) stance\n * - Grappling and clinch range\n * - Defense against low attacks\n *\n * Biomechanics:\n * - Shoulders forward (~15° flexion)\n * - Elbows bent ~75° (wider guard)\n * - Fists at abdomen/hip level\n * - Ready to sprawl or clinch\n *\n * @korean 하단막기자세\n */\nexport const LOW_GUARD: GuardPosition = {\n korean: \"하단막기\",\n english: \"Low Guard\",\n romanized: \"Hadan Makgi\",\n description: {\n korean:\n \"하복부와 낭심을 보호하는 낮은 방어 자세. 손을 배 높이에 두고 낮은 공격에 대비함.\",\n english:\n \"Low guard protecting lower body and groin. Hands at abdomen level ready for low attacks.\",\n },\n left: {\n shoulder: [toRadians(15), toRadians(-10), toRadians(12)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(-75)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n right: {\n shoulder: [toRadians(15), toRadians(10), toRadians(-12)] as const,\n elbow: [toRadians(0), toRadians(0), toRadians(75)] as const,\n wrist: [toRadians(0), toRadians(0), toRadians(0)] as const,\n },\n height: \"abdomen_level\",\n handPose: \"fist_vertical\",\n protects: [\"abdomen\", \"groin\", \"hip\", \"thigh\", \"lower_ribs\"] as const,\n};\n\n/**\n * All Korean guard positions indexed by name\n * @korean 모든방어자세\n */\nexport const KOREAN_GUARD_POSITIONS = {\n HIGH_GUARD,\n MIDDLE_GUARD,\n LOW_GUARD,\n} as const;\n\n/**\n * Guard position type\n * @korean 방어자세타입\n */\nexport type GuardPositionType = keyof typeof KOREAN_GUARD_POSITIONS;\n\n/**\n * Get guard position by type\n *\n * @param type - Guard position type\n * @returns Guard position configuration\n * @korean 방어자세가져오기\n */\nexport const getGuardPosition = (type: GuardPositionType): GuardPosition => {\n return KOREAN_GUARD_POSITIONS[type];\n};\n\n/**\n * Get appropriate guard for stance height\n *\n * Determines which guard position is most appropriate based on\n * the stance configuration and fighting context.\n *\n * @param stanceType - Type of stance (\"high\" | \"middle\" | \"low\")\n * @returns Recommended guard position\n * @korean 자세높이에맞는방어자세\n */\nexport const getGuardForStanceHeight = (\n stanceType: \"high\" | \"middle\" | \"low\",\n): GuardPosition => {\n switch (stanceType) {\n case \"high\":\n return HIGH_GUARD;\n case \"low\":\n return LOW_GUARD;\n case \"middle\":\n default:\n return MIDDLE_GUARD;\n }\n};\n\n/**\n * Apply guard position to KeyframeConfig\n *\n * Applies a Korean martial arts guard position to a keyframe configuration.\n * Can apply to one hand (for techniques where one hand strikes) or both hands.\n *\n * Usage:\n * ```typescript\n * const kf = new KeyframeConfig(0.0);\n * applyGuardPositionToConfig(kf, MIDDLE_GUARD, \"both\"); // Both hands in guard\n * applyGuardPositionToConfig(kf, MIDDLE_GUARD, \"left\"); // Only left hand guards\n * ```\n *\n * @param config - KeyframeConfig to apply guard to\n * @param guardPosition - Guard position configuration\n * @param hand - Which hand(s) to apply (\"left\" | \"right\" | \"both\")\n * @korean KeyframeConfig에방어자세적용\n */\nexport const applyGuardPositionToConfig = (\n config: GuardRotatable,\n guardPosition: GuardPosition,\n hand: \"left\" | \"right\" | \"both\" = \"both\",\n): void => {\n // Apply left hand guard\n if (hand === \"left\" || hand === \"both\") {\n config.rotate(\n BoneName.SHOULDER_L,\n guardPosition.left.shoulder[0],\n guardPosition.left.shoulder[1],\n guardPosition.left.shoulder[2],\n );\n config.rotate(\n BoneName.ELBOW_L,\n guardPosition.left.elbow[0],\n guardPosition.left.elbow[1],\n guardPosition.left.elbow[2],\n );\n config.rotate(\n BoneName.WRIST_L,\n guardPosition.left.wrist[0],\n guardPosition.left.wrist[1],\n guardPosition.left.wrist[2],\n );\n }\n\n // Apply right hand guard\n if (hand === \"right\" || hand === \"both\") {\n config.rotate(\n BoneName.SHOULDER_R,\n guardPosition.right.shoulder[0],\n guardPosition.right.shoulder[1],\n guardPosition.right.shoulder[2],\n );\n config.rotate(\n BoneName.ELBOW_R,\n guardPosition.right.elbow[0],\n guardPosition.right.elbow[1],\n guardPosition.right.elbow[2],\n );\n config.rotate(\n BoneName.WRIST_R,\n guardPosition.right.wrist[0],\n guardPosition.right.wrist[1],\n guardPosition.right.wrist[2],\n );\n }\n};\n"],"mappings":";;;;;;;AAsFA,IAAM,aAAa,YAA6B,UAAU,KAAK,KAAM;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BrE,IAAa,aAA4B;CACvC,QAAQ;CACR,SAAS;CACT,WAAW;CACX,aAAa;EACX,QACE;EACF,SACE;CACJ;CACA,MAAM;EACJ,UAAU;GAAC,UAAU,GAAG;GAAG,UAAU,GAAG;GAAG,UAAU,EAAE;EAAC;EACxD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,IAAI;EAAC;EACnD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,CAAC;EAAC;CAClD;CACA,OAAO;EACL,UAAU;GAAC,UAAU,GAAG;GAAG,UAAU,EAAE;GAAG,UAAU,GAAG;EAAC;EACxD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,GAAG;EAAC;EAClD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,CAAC;EAAC;CAClD;CACA,QAAQ;CACR,UAAU;CACV,UAAU;EAAC;EAAQ;EAAU;EAAY;EAAQ;EAAQ;CAAK;AAChE;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAa,eAA8B;CACzC,QAAQ;CACR,SAAS;CACT,WAAW;CACX,aAAa;EACX,QACE;EACF,SACE;CACJ;CACA,MAAM;EACJ,UAAU;GAAC,UAAU,GAAG;GAAG,UAAU,GAAG;GAAG,UAAU,CAAC;EAAC;EACvD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,IAAI;EAAC;EACnD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,CAAC;EAAC;CAClD;CACA,OAAO;EACL,UAAU;GAAC,UAAU,GAAG;GAAG,UAAU,EAAE;GAAG,UAAU,EAAE;EAAC;EACvD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,GAAG;EAAC;EAClD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,CAAC;EAAC;CAClD;CACA,QAAQ;CACR,UAAU;CACV,UAAU;EACR;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAa,YAA2B;CACtC,QAAQ;CACR,SAAS;CACT,WAAW;CACX,aAAa;EACX,QACE;EACF,SACE;CACJ;CACA,MAAM;EACJ,UAAU;GAAC,UAAU,EAAE;GAAG,UAAU,GAAG;GAAG,UAAU,EAAE;EAAC;EACvD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,GAAG;EAAC;EAClD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,CAAC;EAAC;CAClD;CACA,OAAO;EACL,UAAU;GAAC,UAAU,EAAE;GAAG,UAAU,EAAE;GAAG,UAAU,GAAG;EAAC;EACvD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,EAAE;EAAC;EACjD,OAAO;GAAC,UAAU,CAAC;GAAG,UAAU,CAAC;GAAG,UAAU,CAAC;EAAC;CAClD;CACA,QAAQ;CACR,UAAU;CACV,UAAU;EAAC;EAAW;EAAS;EAAO;EAAS;CAAY;AAC7D;;;;;AAMA,IAAa,yBAAyB;CACpC;CACA;CACA;AACF;;;;;;;;AAeA,IAAa,oBAAoB,SAA2C;CAC1E,OAAO,uBAAuB;AAChC"}
@@ -1,5 +1,5 @@
1
1
  import { BoneName } from "../../../types/skeletal.js";
2
- import { HAND_POSES, KICK_PHASES, MARTIAL_POSES, PUNCH_PHASES, calculateStanceWidth } from "./MartialArtsConstants.js";
2
+ import { AnimationType, HAND_POSES, KICK_PHASES, MARTIAL_POSES, PUNCH_PHASES, calculateStanceWidth } from "./MartialArtsConstants.js";
3
3
  import { KeyframeConfig } from "./KeyframeConfig.js";
4
4
  import { applyHandPoseToConfig, applyHandPoseToKeyframe } from "./HandPoseApplicator.js";
5
5
  import { applyHighPeakPhaseToConfig, applyKickPhaseToConfig, applyRoundhousePhaseToConfig, applySideKickPhaseToConfig } from "./KickPhaseApplicator.js";
@@ -2912,6 +2912,6 @@ var MartialArtsAnimationBuilder = class MartialArtsAnimationBuilder {
2912
2912
  }
2913
2913
  };
2914
2914
  //#endregion
2915
- export { MartialArtsAnimationBuilder, TECHNIQUE_TIMING };
2915
+ export { AnimationType, HAND_POSES, KICK_PHASES, MARTIAL_POSES, MartialArtsAnimationBuilder, PUNCH_PHASES, TECHNIQUE_TIMING };
2916
2916
 
2917
2917
  //# sourceMappingURL=MartialArtsAnimationBuilder.js.map
@@ -346,6 +346,6 @@ function calculateHipRotationPowerModifier(hipRotationAngle, techniqueType) {
346
346
  return 1 + Math.max(-TORSO_CONSTRAINTS.MAX_ROTATION, Math.min(TORSO_CONSTRAINTS.MAX_ROTATION, Math.abs(hipRotationAngle))) / TORSO_CONSTRAINTS.MAX_ROTATION * (techniqueType === "strike" ? .3 : .1);
347
347
  }
348
348
  //#endregion
349
- export { calculateHipRotationPowerModifier, createScaledHumanoidRig };
349
+ export { TORSO_CONSTRAINTS, calculateHipRotationPowerModifier, createBone, createScaledHumanoidRig };
350
350
 
351
351
  //# sourceMappingURL=SkeletonRig.js.map
@@ -532,6 +532,6 @@ var ATTACK_ANIMATIONS = /* @__PURE__ */ new Map([
532
532
  ["side_step", SIDE_STEP_ANIMATION]
533
533
  ]);
534
534
  //#endregion
535
- export { ATTACK_ANIMATIONS, BACKWARD_RETREAT_ANIMATION, CROSS_ANIMATION, FORWARD_DASH_ANIMATION, FRONT_KICK_ANIMATION, IDLE_STANCE_ANIMATION, JAB_ANIMATION, ROUNDHOUSE_KICK_ANIMATION, SIDE_STEP_ANIMATION };
535
+ export { ARM_BAR_ANIMATION, ATTACK_ANIMATIONS, AXE_KICK_ANIMATION, BACKWARD_RETREAT_ANIMATION, BACK_KICK_ANIMATION, BLOCK_ANIMATION, COUNTER_ATTACK_ANIMATION, COUNTER_STRIKE_ANIMATION, CROSS_ANIMATION, ELBOW_STRIKE_ANIMATION, ELBOW_UPPERCUT_ANIMATION, FORWARD_DASH_ANIMATION, FRONT_KICK_ANIMATION, GRAPPLE_ANIMATION, HOOK_ANIMATION, IDLE_STANCE_ANIMATION, JAB_ANIMATION, JUMPING_KICK_ANIMATION, KNEE_STRIKE_ANIMATION, LOW_KICK_ANIMATION, PALM_STRIKE_ANIMATION, ROUNDHOUSE_KICK_ANIMATION, SIDE_KICK_ANIMATION, SIDE_STEP_ANIMATION, SLAM_ANIMATION, SWEEP_ANIMATION, THROW_ANIMATION, TORNADO_KICK_ANIMATION, WALK_ANIMATION, WRIST_LOCK_ANIMATION };
536
536
 
537
537
  //# sourceMappingURL=AttackAnimations.js.map
@@ -87,6 +87,6 @@ var BASIC_ANIMATIONS = /* @__PURE__ */ new Map([
87
87
  ["fall_side_right", FALL_SIDE_RIGHT_ANIMATION]
88
88
  ]);
89
89
  //#endregion
90
- export { BASIC_ANIMATIONS };
90
+ export { BASIC_ANIMATIONS, FALL_BACKWARD_ANIMATION, FALL_FORWARD_ANIMATION, FALL_SIDE_LEFT_ANIMATION, FALL_SIDE_RIGHT_ANIMATION, IDLE_ANIMATION, RUN_ANIMATION, WALK_ANIMATION };
91
91
 
92
92
  //# sourceMappingURL=BasicAnimations.js.map
@@ -395,6 +395,6 @@ var COMBO_ANIMATIONS = /* @__PURE__ */ new Map([
395
395
  ["combo_question_mark_finish", COMBO_QUESTION_MARK_FINISH_ANIMATION]
396
396
  ]);
397
397
  //#endregion
398
- export { COMBO_ANIMATIONS };
398
+ export { COMBO_ANIMATIONS, COMBO_BODY_HEAD_ANIMATION, COMBO_CLINCH_GEUPSO_ANIMATION, COMBO_CLINCH_KNEE_ELBOW_ANIMATION, COMBO_DOUBLE_JAB_CROSS_ANIMATION, COMBO_DOUBLE_KNEE_ANIMATION, COMBO_ELBOW_CHAIN_ANIMATION, COMBO_HAPKIDO_FLOW_ANIMATION, COMBO_HOOK_UPPERCUT_ANIMATION, COMBO_HWARANG_BICHEON_ANIMATION, COMBO_JAB_LOW_KICK_ANIMATION, COMBO_KICK_PUNCH_KICK_ANIMATION, COMBO_KNEE_ELBOW_KNEE_ANIMATION, COMBO_KNOCKOUT_ANIMATION, COMBO_KUKSOOL_CRANE_ANIMATION, COMBO_KUKSOOL_DRAGON_ANIMATION, COMBO_KUKSOOL_HOSHIN_ANIMATION, COMBO_KUKSOOL_JOKSUL_ANIMATION, COMBO_KUKSOOL_KWANJYEL_ANIMATION, COMBO_KUKSOOL_NAKBUP_ANIMATION, COMBO_KUKSOOL_SNAKE_ANIMATION, COMBO_KUKSOOL_SUKI_ANIMATION, COMBO_KUKSOOL_TIGER_ANIMATION, COMBO_KUKSOOL_TOOKI_ANIMATION, COMBO_LOW_HIGH_KICK_ANIMATION, COMBO_ONE_TWO_ANIMATION, COMBO_ONE_TWO_HOOK_ANIMATION, COMBO_ONE_TWO_KICK_ANIMATION, COMBO_QUESTION_MARK_FINISH_ANIMATION, COMBO_SPINNING_DESTRUCTION_ANIMATION, COMBO_SSIREUM_MECHI_ANIMATION, COMBO_SUBAK_CHAIN_ANIMATION, COMBO_SWITCH_KICK_ANIMATION, COMBO_TAEKKYEON_HWALGAE_ANIMATION, COMBO_TAEKKYEON_POOM_ANIMATION, COMBO_TAEKWONDO_TRIPLE_ANIMATION, COMBO_TEUKGONG_COUNTER_ANIMATION, COMBO_YUDO_COUNTER_ANIMATION };
399
399
 
400
400
  //# sourceMappingURL=ComboAnimations.js.map
@@ -317,6 +317,6 @@ var DARKOPS_ANIMATIONS = /* @__PURE__ */ new Map([
317
317
  ["darkops_sleeper_hold", DARKOPS_SLEEPER_HOLD_ANIMATION]
318
318
  ]);
319
319
  //#endregion
320
- export { DARKOPS_ANIMATIONS };
320
+ export { DARKOPS_ACHILLES_SEVER_ANIMATION, DARKOPS_ANIMATIONS, DARKOPS_BRACHIAL_PLEXUS_ANIMATION, DARKOPS_CERVICAL_TWIST_ANIMATION, DARKOPS_EAR_STRIKE_ANIMATION, DARKOPS_ELBOW_HYPEREXTEND_ANIMATION, DARKOPS_EYE_GOUGE_ANIMATION, DARKOPS_FEMORAL_NERVE_ANIMATION, DARKOPS_FINGER_BREAK_ANIMATION, DARKOPS_GUILLOTINE_ANIMATION, DARKOPS_JAW_DISLOCATION_ANIMATION, DARKOPS_JUGULAR_STRIKE_ANIMATION, DARKOPS_KIDNEY_STRIKE_ANIMATION, DARKOPS_KNEECAP_STRIKE_ANIMATION, DARKOPS_LARYNX_CRUSH_ANIMATION, DARKOPS_LIVER_DISRUPTION_ANIMATION, DARKOPS_NERVE_PARALYSIS_ANIMATION, DARKOPS_OCCIPITAL_STRIKE_ANIMATION, DARKOPS_REAR_CHOKE_ANIMATION, DARKOPS_SCIATIC_NERVE_ANIMATION, DARKOPS_SILENT_CAROTID_ANIMATION, DARKOPS_SILENT_TAKEDOWN_ANIMATION, DARKOPS_SLEEPER_HOLD_ANIMATION, DARKOPS_SOLAR_PLEXUS_PARALYZE_ANIMATION, DARKOPS_SPINAL_STRIKE_ANIMATION, DARKOPS_SPLEEN_RUPTURE_ANIMATION, DARKOPS_TEMPLE_STRIKE_ANIMATION, DARKOPS_THROAT_STRIKE_ANIMATION, DARKOPS_TRIANGLE_CHOKE_ANIMATION };
321
321
 
322
322
  //# sourceMappingURL=DarkOpsAnimations.js.map
@@ -128,6 +128,6 @@ function getDefensiveAnimation(name) {
128
128
  return ALL_DEFENSIVE_ANIMATIONS.get(name);
129
129
  }
130
130
  //#endregion
131
- export { GAM_FLOW_DEFENSE, GAN_COUNTER_FORTRESS, GAN_IMMOVABLE_BLOCK, GEON_COUNTER_STRIKE, GEON_HIGH_BLOCK, GON_GROUNDING_DEFENSE, GON_TAKEDOWN_COUNTER, JIN_EXPLOSIVE_BLOCK, JIN_SHOCKING_COUNTER, LI_NERVE_STRIKE_COUNTER, LI_PRECISION_PARRY, SON_CONTINUOUS_DEFLECTION, SON_PRESSURE_COUNTER, TAE_SWEEP_DEFENSE, getDefensiveAnimation };
131
+ export { ALL_DEFENSIVE_ANIMATIONS, GAM_FLOW_DEFENSE, GAM_REDIRECTION_COUNTER, GAN_COUNTER_FORTRESS, GAN_IMMOVABLE_BLOCK, GEON_COUNTER_STRIKE, GEON_HIGH_BLOCK, GON_GROUNDING_DEFENSE, GON_TAKEDOWN_COUNTER, JIN_EXPLOSIVE_BLOCK, JIN_SHOCKING_COUNTER, LI_NERVE_STRIKE_COUNTER, LI_PRECISION_PARRY, SON_CONTINUOUS_DEFLECTION, SON_PRESSURE_COUNTER, TAE_JOINT_LOCK_DEFENSE, TAE_SWEEP_DEFENSE, getDefensiveAnimation };
132
132
 
133
133
  //# sourceMappingURL=DefensiveAnimations.js.map
@@ -447,6 +447,6 @@ var ELBOW_KNEE_ANIMATIONS = /* @__PURE__ */ new Map([
447
447
  ["femoral_knee", FEMORAL_KNEE_ANIMATION]
448
448
  ]);
449
449
  //#endregion
450
- export { BRACHIAL_ELBOW_ANIMATION, CLINCH_KNEE_ANIMATION, ELBOW_KNEE_ANIMATIONS, ELBOW_STRIKE_ANIMATION, ELBOW_UPPERCUT_ANIMATION, FEMORAL_KNEE_ANIMATION, FLYING_KNEE_ANIMATION, KIDNEY_KNEE_ANIMATION, KNEE_KICK_ANIMATION, KNEE_STRIKE_ANIMATION, SPINAL_ELBOW_ANIMATION, SPINNING_BACK_ELBOW_ANIMATION, SPINNING_ELBOW_ANIMATION, TEMPLE_ELBOW_ANIMATION };
450
+ export { BACK_ELBOW_ANIMATION, BRACHIAL_ELBOW_ANIMATION, CLINCH_KNEE_ANIMATION, DOUBLE_ELBOW_ANIMATION, DOWNWARD_ELBOW_ANIMATION, ELBOW_KNEE_ANIMATIONS, ELBOW_KNEE_COMBO_ANIMATION, ELBOW_STRIKE_ANIMATION, ELBOW_UPPERCUT_ANIMATION, FEMORAL_KNEE_ANIMATION, FLYING_KNEE_ANIMATION, KIDNEY_KNEE_ANIMATION, KNEE_BODY_HOOK_ANIMATION, KNEE_KICK_ANIMATION, KNEE_STRIKE_ANIMATION, SIDE_KNEE_ANIMATION, SLASHING_ELBOW_ANIMATION, SPINAL_ELBOW_ANIMATION, SPINNING_BACK_ELBOW_ANIMATION, SPINNING_ELBOW_ANIMATION, STEP_KNEE_ANIMATION, TEMPLE_ELBOW_ANIMATION };
451
451
 
452
452
  //# sourceMappingURL=ElbowKneeAnimations.js.map
@@ -191,6 +191,6 @@ function getFootworkAnimation(animationName) {
191
191
  return FOOTWORK_ANIMATIONS.get(animationName);
192
192
  }
193
193
  //#endregion
194
- export { getFootworkAnimation };
194
+ export { FOOTWORK_ANIMATIONS, FOOTWORK_CIRCULAR_LEFT_ANIMATION, FOOTWORK_CIRCULAR_RIGHT_ANIMATION, FOOTWORK_PIVOT_LEFT_ANIMATION, FOOTWORK_PIVOT_RIGHT_ANIMATION, FOOTWORK_SHUFFLE_ANIMATION, FOOTWORK_SLIDE_BACK_ANIMATION, FOOTWORK_SLIDE_FORWARD_ANIMATION, FOOTWORK_SLIDE_LEFT_ANIMATION, FOOTWORK_SLIDE_RIGHT_ANIMATION, getFootworkAnimation };
195
195
 
196
196
  //# sourceMappingURL=FootworkSkeletalAnimations.js.map