blacktrigram 0.7.43 → 0.7.45

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 (750) hide show
  1. package/lib/audio/AudioManager.d.ts +26 -0
  2. package/lib/audio/AudioManager.d.ts.map +1 -1
  3. package/lib/audio/AudioManager.js +26 -0
  4. package/lib/audio/AudioManager.js.map +1 -1
  5. package/lib/audio/AudioPool.js +3 -0
  6. package/lib/audio/AudioPool.js.map +1 -1
  7. package/lib/audio/index.d.ts.map +1 -1
  8. package/lib/audio/index.js.map +1 -1
  9. package/lib/audio/types.d.ts +18 -2
  10. package/lib/audio/types.d.ts.map +1 -1
  11. package/lib/audio/types.js +1 -0
  12. package/lib/audio/types.js.map +1 -1
  13. package/lib/components/effects/WindParticles3D.d.ts.map +1 -1
  14. package/lib/components/index.d.ts.map +1 -1
  15. package/lib/components/index.js.map +1 -1
  16. package/lib/components/screens/combat/CombatScreen3D.d.ts.map +1 -1
  17. package/lib/components/screens/combat/CombatScreen3D.js.map +1 -1
  18. package/lib/components/screens/combat/components/controls/KeyboardHints.d.ts +0 -1
  19. package/lib/components/screens/combat/components/controls/KeyboardHints.d.ts.map +1 -1
  20. package/lib/components/screens/combat/components/controls/KeyboardHints.js +0 -1
  21. package/lib/components/screens/combat/components/controls/KeyboardHints.js.map +1 -1
  22. package/lib/components/screens/combat/components/controls/PauseMenu.d.ts.map +1 -1
  23. package/lib/components/screens/combat/components/controls/PauseMenu.js.map +1 -1
  24. package/lib/components/screens/combat/components/effects/ArterialSpray3D.d.ts.map +1 -1
  25. package/lib/components/screens/combat/components/effects/BloodDecals3D.d.ts.map +1 -1
  26. package/lib/components/screens/combat/components/effects/BloodDecals3D.js.map +1 -1
  27. package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.d.ts.map +1 -1
  28. package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.js.map +1 -1
  29. package/lib/components/screens/combat/components/effects/BloodParticles3D.d.ts.map +1 -1
  30. package/lib/components/screens/combat/components/effects/BloodParticles3D.js.map +1 -1
  31. package/lib/components/screens/combat/components/effects/BloodViscosity3D.d.ts.map +1 -1
  32. package/lib/components/screens/combat/components/effects/BloodViscosity3D.js.map +1 -1
  33. package/lib/components/screens/combat/components/effects/BoneCrackParticles3D.d.ts.map +1 -1
  34. package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.d.ts.map +1 -1
  35. package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.js.map +1 -1
  36. package/lib/components/screens/combat/components/effects/ConsciousnessBlur.d.ts.map +1 -1
  37. package/lib/components/screens/combat/components/effects/ConsciousnessBlur.js.map +1 -1
  38. package/lib/components/screens/combat/components/effects/DustClouds3D.d.ts.map +1 -1
  39. package/lib/components/screens/combat/components/effects/EarthCrackEffect3D.d.ts.map +1 -1
  40. package/lib/components/screens/combat/components/effects/EarthHealingEffect3D.d.ts.map +1 -1
  41. package/lib/components/screens/combat/components/effects/ImpactSparks3D.d.ts.map +1 -1
  42. package/lib/components/screens/combat/components/effects/InternalDamage3D.d.ts.map +1 -1
  43. package/lib/components/screens/combat/components/effects/InternalDamage3D.js.map +1 -1
  44. package/lib/components/screens/combat/components/effects/LiPrecisionTargetingOverlay.d.ts.map +1 -1
  45. package/lib/components/screens/combat/components/effects/NerveStrikeParticles3D.d.ts.map +1 -1
  46. package/lib/components/screens/combat/components/effects/PainVignette.d.ts.map +1 -1
  47. package/lib/components/screens/combat/components/effects/PainVignette.js.map +1 -1
  48. package/lib/components/screens/combat/components/effects/ParticleAudio3D.d.ts.map +1 -1
  49. package/lib/components/screens/combat/components/effects/ParticleAudio3D.js.map +1 -1
  50. package/lib/components/screens/combat/components/effects/TraumaOverlay3D.d.ts.map +1 -1
  51. package/lib/components/screens/combat/components/effects/TraumaOverlay3D.js.map +1 -1
  52. package/lib/components/screens/combat/components/effects/WaterRipple3D.d.ts.map +1 -1
  53. package/lib/components/screens/combat/components/effects/WaterWave3D.d.ts.map +1 -1
  54. package/lib/components/screens/combat/components/effects/index.d.ts.map +1 -1
  55. package/lib/components/screens/combat/components/feedback/MatchCountdown.d.ts.map +1 -1
  56. package/lib/components/screens/combat/components/feedback/MatchCountdown.js.map +1 -1
  57. package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.d.ts.map +1 -1
  58. package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.js.map +1 -1
  59. package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.d.ts.map +1 -1
  60. package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.js.map +1 -1
  61. package/lib/components/screens/combat/components/hud/CombatBottomHUD.d.ts.map +1 -1
  62. package/lib/components/screens/combat/components/hud/CombatBottomHUD.js.map +1 -1
  63. package/lib/components/screens/combat/components/hud/CombatLeftHUD.d.ts.map +1 -1
  64. package/lib/components/screens/combat/components/hud/CombatLeftHUD.js.map +1 -1
  65. package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.d.ts.map +1 -1
  66. package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.js.map +1 -1
  67. package/lib/components/screens/combat/components/hud/CombatRightHUD.d.ts.map +1 -1
  68. package/lib/components/screens/combat/components/hud/CombatRightHUD.js.map +1 -1
  69. package/lib/components/screens/combat/components/hud/CombatTopHUD.d.ts.map +1 -1
  70. package/lib/components/screens/combat/components/hud/CombatTopHUD.js.map +1 -1
  71. package/lib/components/screens/combat/components/hud/DifficultyIndicator.d.ts.map +1 -1
  72. package/lib/components/screens/combat/components/hud/DifficultyIndicator.js.map +1 -1
  73. package/lib/components/screens/combat/components/hud/FPSMonitor.d.ts.map +1 -1
  74. package/lib/components/screens/combat/components/hud/FPSMonitor.js.map +1 -1
  75. package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.d.ts.map +1 -1
  76. package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.js.map +1 -1
  77. package/lib/components/screens/combat/components/indicators/BalanceIndicator.d.ts.map +1 -1
  78. package/lib/components/screens/combat/components/indicators/BalanceIndicator.js.map +1 -1
  79. package/lib/components/screens/combat/components/indicators/InputBufferDisplay.d.ts +0 -1
  80. package/lib/components/screens/combat/components/indicators/InputBufferDisplay.d.ts.map +1 -1
  81. package/lib/components/screens/combat/components/indicators/InputBufferDisplay.js +0 -1
  82. package/lib/components/screens/combat/components/indicators/InputBufferDisplay.js.map +1 -1
  83. package/lib/components/screens/combat/components/indicators/StaminaWarning.d.ts.map +1 -1
  84. package/lib/components/screens/combat/components/indicators/StaminaWarning.js.map +1 -1
  85. package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.d.ts +0 -2
  86. package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.d.ts.map +1 -1
  87. package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js +0 -1
  88. package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js.map +1 -1
  89. package/lib/components/screens/combat/helpers/AnimationUpdater.d.ts.map +1 -1
  90. package/lib/components/screens/combat/helpers/AnimationUpdater.js.map +1 -1
  91. package/lib/components/screens/combat/helpers/combatHelpers.d.ts.map +1 -1
  92. package/lib/components/screens/combat/helpers/combatHelpers.js.map +1 -1
  93. package/lib/components/screens/combat/hooks/useAICombat.d.ts.map +1 -1
  94. package/lib/components/screens/combat/hooks/useAICombat.js.map +1 -1
  95. package/lib/components/screens/combat/hooks/useCombatActions.d.ts.map +1 -1
  96. package/lib/components/screens/combat/hooks/useCombatActions.js.map +1 -1
  97. package/lib/components/screens/combat/hooks/useCombatAttackMovement.d.ts.map +1 -1
  98. package/lib/components/screens/combat/hooks/useCombatAttackMovement.js.map +1 -1
  99. package/lib/components/screens/combat/hooks/useCombatAudio.d.ts.map +1 -1
  100. package/lib/components/screens/combat/hooks/useCombatAudio.js.map +1 -1
  101. package/lib/components/screens/combat/hooks/useCombatLayout.d.ts.map +1 -1
  102. package/lib/components/screens/combat/hooks/useCombatLayout.js.map +1 -1
  103. package/lib/components/screens/combat/hooks/useCombatState.d.ts.map +1 -1
  104. package/lib/components/screens/combat/hooks/useCombatState.js.map +1 -1
  105. package/lib/components/screens/combat/hooks/useGrapplingAudio.d.ts.map +1 -1
  106. package/lib/components/screens/combat/hooks/usePreloadCombatAudio.d.ts.map +1 -1
  107. package/lib/components/screens/controls/ControlsScreen3D.d.ts.map +1 -1
  108. package/lib/components/screens/controls/ControlsScreen3D.js.map +1 -1
  109. package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.d.ts.map +1 -1
  110. package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.js.map +1 -1
  111. package/lib/components/screens/controls/components/GamepadVisualization3D.d.ts.map +1 -1
  112. package/lib/components/screens/controls/components/GamepadVisualization3D.js.map +1 -1
  113. package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.d.ts.map +1 -1
  114. package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.js.map +1 -1
  115. package/lib/components/screens/controls/components/Key3D.d.ts.map +1 -1
  116. package/lib/components/screens/controls/components/Key3D.js.map +1 -1
  117. package/lib/components/screens/controls/components/VisualKeyboard3D.d.ts.map +1 -1
  118. package/lib/components/screens/controls/components/VisualKeyboard3D.js.map +1 -1
  119. package/lib/components/screens/controls/constants/ControlsConstants.d.ts.map +1 -1
  120. package/lib/components/screens/controls/constants/ControlsConstants.js.map +1 -1
  121. package/lib/components/screens/controls/hooks/useControlsState.d.ts.map +1 -1
  122. package/lib/components/screens/controls/hooks/useControlsState.js.map +1 -1
  123. package/lib/components/screens/endscreen/EndScreen3D.d.ts.map +1 -1
  124. package/lib/components/screens/endscreen/EndScreen3D.js.map +1 -1
  125. package/lib/components/screens/endscreen/components/DefeatAnimation3D.d.ts.map +1 -1
  126. package/lib/components/screens/endscreen/components/DefeatAnimation3D.js.map +1 -1
  127. package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.d.ts.map +1 -1
  128. package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.js.map +1 -1
  129. package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.d.ts.map +1 -1
  130. package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.js.map +1 -1
  131. package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.d.ts.map +1 -1
  132. package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.js.map +1 -1
  133. package/lib/components/screens/endscreen/components/VictoryAnimation3D.d.ts.map +1 -1
  134. package/lib/components/screens/endscreen/components/VictoryAnimation3D.js.map +1 -1
  135. package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.d.ts.map +1 -1
  136. package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.js.map +1 -1
  137. package/lib/components/screens/endscreen/components/index.d.ts.map +1 -1
  138. package/lib/components/screens/endscreen/index.d.ts.map +1 -1
  139. package/lib/components/screens/intro/IntroScreen3D.d.ts.map +1 -1
  140. package/lib/components/screens/intro/IntroScreen3D.js +1 -1
  141. package/lib/components/screens/intro/IntroScreen3D.js.map +1 -1
  142. package/lib/components/screens/intro/components/AbilityListOverlayHtml.d.ts.map +1 -1
  143. package/lib/components/screens/intro/components/AbilityListOverlayHtml.js.map +1 -1
  144. package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.d.ts.map +1 -1
  145. package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.js.map +1 -1
  146. package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.d.ts.map +1 -1
  147. package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.js.map +1 -1
  148. package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.d.ts.map +1 -1
  149. package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.js.map +1 -1
  150. package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.d.ts.map +1 -1
  151. package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.js.map +1 -1
  152. package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.d.ts.map +1 -1
  153. package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.js.map +1 -1
  154. package/lib/components/screens/intro/components/MenuSectionOverlayHtml.d.ts.map +1 -1
  155. package/lib/components/screens/intro/components/MenuSectionOverlayHtml.js.map +1 -1
  156. package/lib/components/screens/intro/components/StatBarOverlayHtml.d.ts.map +1 -1
  157. package/lib/components/screens/intro/components/StatBarOverlayHtml.js.map +1 -1
  158. package/lib/components/screens/philosophy/PhilosophyScreen3D.d.ts.map +1 -1
  159. package/lib/components/screens/philosophy/PhilosophyScreen3D.js.map +1 -1
  160. package/lib/components/screens/philosophy/components/InteractiveTrigramGridOverlayHtml.d.ts +0 -1
  161. package/lib/components/screens/philosophy/components/InteractiveTrigramGridOverlayHtml.d.ts.map +1 -1
  162. package/lib/components/screens/philosophy/components/PhilosophyNavigationOverlayHtml.d.ts +0 -1
  163. package/lib/components/screens/philosophy/components/PhilosophyNavigationOverlayHtml.d.ts.map +1 -1
  164. package/lib/components/screens/philosophy/components/PhilosophySectionOverlayHtml.d.ts +0 -1
  165. package/lib/components/screens/philosophy/components/PhilosophySectionOverlayHtml.d.ts.map +1 -1
  166. package/lib/components/screens/philosophy/components/PhilosophyTextOverlayHtml.d.ts +0 -1
  167. package/lib/components/screens/philosophy/components/PhilosophyTextOverlayHtml.d.ts.map +1 -1
  168. package/lib/components/screens/philosophy/components/TrigramSymbol3D.d.ts +0 -1
  169. package/lib/components/screens/philosophy/components/TrigramSymbol3D.d.ts.map +1 -1
  170. package/lib/components/screens/philosophy/components/TrigramVisualization3D.d.ts +0 -1
  171. package/lib/components/screens/philosophy/components/TrigramVisualization3D.d.ts.map +1 -1
  172. package/lib/components/screens/philosophy/hooks/usePhilosophyState.d.ts +0 -1
  173. package/lib/components/screens/philosophy/hooks/usePhilosophyState.d.ts.map +1 -1
  174. package/lib/components/screens/training/TrainingScreen3D.d.ts.map +1 -1
  175. package/lib/components/screens/training/TrainingScreen3D.js.map +1 -1
  176. package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.d.ts.map +1 -1
  177. package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.js.map +1 -1
  178. package/lib/components/screens/training/components/AnatomyOverlay3D.d.ts.map +1 -1
  179. package/lib/components/screens/training/components/AnatomyOverlay3D.js.map +1 -1
  180. package/lib/components/screens/training/components/DamageNumber3D.d.ts.map +1 -1
  181. package/lib/components/screens/training/components/FootPlacementMarkers3D.d.ts.map +1 -1
  182. package/lib/components/screens/training/components/FootPlacementMarkers3D.js.map +1 -1
  183. package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.d.ts.map +1 -1
  184. package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.js.map +1 -1
  185. package/lib/components/screens/training/components/HitFeedbackEffect3D.d.ts.map +1 -1
  186. package/lib/components/screens/training/components/HitFeedbackEffect3D.js.map +1 -1
  187. package/lib/components/screens/training/components/TrainingAICharacter3D.d.ts.map +1 -1
  188. package/lib/components/screens/training/components/TrainingArena3D.d.ts.map +1 -1
  189. package/lib/components/screens/training/components/TrainingControlsOverlayHtml.d.ts.map +1 -1
  190. package/lib/components/screens/training/components/TrainingControlsOverlayHtml.js.map +1 -1
  191. package/lib/components/screens/training/components/TrainingDummy3D.d.ts.map +1 -1
  192. package/lib/components/screens/training/components/TrainingDummy3D.js.map +1 -1
  193. package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.d.ts.map +1 -1
  194. package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.js.map +1 -1
  195. package/lib/components/screens/training/components/TrainingHitEffects3D.d.ts.map +1 -1
  196. package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.d.ts.map +1 -1
  197. package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.js.map +1 -1
  198. package/lib/components/screens/training/components/TrainingStatsOverlayHtml.d.ts.map +1 -1
  199. package/lib/components/screens/training/components/TrainingStatsOverlayHtml.js.map +1 -1
  200. package/lib/components/screens/training/components/VitalPointMarker3D.d.ts.map +1 -1
  201. package/lib/components/screens/training/components/VitalPointMarker3D.js.map +1 -1
  202. package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.d.ts.map +1 -1
  203. package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.js.map +1 -1
  204. package/lib/components/screens/training/components/hud/TrainingBottomHUD.d.ts.map +1 -1
  205. package/lib/components/screens/training/components/hud/TrainingBottomHUD.js.map +1 -1
  206. package/lib/components/screens/training/components/hud/TrainingLeftHUD.d.ts.map +1 -1
  207. package/lib/components/screens/training/components/hud/TrainingLeftHUD.js.map +1 -1
  208. package/lib/components/screens/training/components/hud/TrainingRightHUD.d.ts.map +1 -1
  209. package/lib/components/screens/training/components/hud/TrainingRightHUD.js.map +1 -1
  210. package/lib/components/screens/training/components/hud/TrainingTopHUD.d.ts.map +1 -1
  211. package/lib/components/screens/training/components/hud/TrainingTopHUD.js.map +1 -1
  212. package/lib/components/screens/training/components/index.d.ts.map +1 -1
  213. package/lib/components/screens/training/hooks/useAttackMovement.d.ts.map +1 -1
  214. package/lib/components/screens/training/hooks/useAttackMovement.js.map +1 -1
  215. package/lib/components/screens/training/hooks/useTrainingActions.d.ts.map +1 -1
  216. package/lib/components/screens/training/hooks/useTrainingActions.js.map +1 -1
  217. package/lib/components/screens/training/hooks/useTrainingLayout.d.ts.map +1 -1
  218. package/lib/components/screens/training/hooks/useTrainingLayout.js.map +1 -1
  219. package/lib/components/screens/training/hooks/useTrainingState.d.ts.map +1 -1
  220. package/lib/components/screens/training/hooks/useTrainingState.js.map +1 -1
  221. package/lib/components/shared/base/AccessibilityProvider.d.ts.map +1 -1
  222. package/lib/components/shared/base/BaseButton.d.ts.map +1 -1
  223. package/lib/components/shared/base/BaseButton.js.map +1 -1
  224. package/lib/components/shared/base/BaseButtonOverlayHtml.d.ts.map +1 -1
  225. package/lib/components/shared/base/BaseButtonOverlayHtml.js.map +1 -1
  226. package/lib/components/shared/base/BasePanel.d.ts.map +1 -1
  227. package/lib/components/shared/base/BasePanel.js.map +1 -1
  228. package/lib/components/shared/base/BaseText.d.ts.map +1 -1
  229. package/lib/components/shared/base/BaseText.js.map +1 -1
  230. package/lib/components/shared/base/ResponsiveContainer.d.ts.map +1 -1
  231. package/lib/components/shared/base/index.d.ts.map +1 -1
  232. package/lib/components/shared/base/useKoreanTheme.d.ts.map +1 -1
  233. package/lib/components/shared/base/useKoreanTheme.js.map +1 -1
  234. package/lib/components/shared/debug/PerformanceDebugOverlayHtml.d.ts.map +1 -1
  235. package/lib/components/shared/debug/PerformanceDebugOverlayHtml.js.map +1 -1
  236. package/lib/components/shared/effects/ScreenFlash.d.ts.map +1 -1
  237. package/lib/components/shared/mobile/ActionButtons.d.ts.map +1 -1
  238. package/lib/components/shared/mobile/ActionButtons.js +0 -1
  239. package/lib/components/shared/mobile/ActionButtons.js.map +1 -1
  240. package/lib/components/shared/mobile/GestureRecognizerPure.d.ts +0 -1
  241. package/lib/components/shared/mobile/GestureRecognizerPure.d.ts.map +1 -1
  242. package/lib/components/shared/mobile/GestureRecognizerPure.js +0 -1
  243. package/lib/components/shared/mobile/GestureRecognizerPure.js.map +1 -1
  244. package/lib/components/shared/mobile/HapticController.d.ts +0 -13
  245. package/lib/components/shared/mobile/HapticController.d.ts.map +1 -1
  246. package/lib/components/shared/mobile/HapticController.js +0 -10
  247. package/lib/components/shared/mobile/HapticController.js.map +1 -1
  248. package/lib/components/shared/mobile/MobileControlsPure.d.ts.map +1 -1
  249. package/lib/components/shared/mobile/MobileControlsPure.js.map +1 -1
  250. package/lib/components/shared/mobile/PerformanceMonitor.d.ts +0 -15
  251. package/lib/components/shared/mobile/PerformanceMonitor.d.ts.map +1 -1
  252. package/lib/components/shared/mobile/StanceWheelPure.d.ts +0 -1
  253. package/lib/components/shared/mobile/StanceWheelPure.d.ts.map +1 -1
  254. package/lib/components/shared/mobile/StanceWheelPure.js +0 -1
  255. package/lib/components/shared/mobile/StanceWheelPure.js.map +1 -1
  256. package/lib/components/shared/mobile/TouchOptimizer.d.ts +0 -4
  257. package/lib/components/shared/mobile/TouchOptimizer.d.ts.map +1 -1
  258. package/lib/components/shared/mobile/TouchOptimizer.js +0 -3
  259. package/lib/components/shared/mobile/TouchOptimizer.js.map +1 -1
  260. package/lib/components/shared/mobile/VirtualDPad.d.ts.map +1 -1
  261. package/lib/components/shared/mobile/VirtualDPad.js +0 -1
  262. package/lib/components/shared/mobile/VirtualDPad.js.map +1 -1
  263. package/lib/components/shared/mobile/index.d.ts.map +1 -1
  264. package/lib/components/shared/three/anatomy/BodySurface.d.ts.map +1 -1
  265. package/lib/components/shared/three/anatomy/BodySurface.js.map +1 -1
  266. package/lib/components/shared/three/anatomy/BoneAttachedMuscles.d.ts.map +1 -1
  267. package/lib/components/shared/three/anatomy/BoneAttachedMuscles.js.map +1 -1
  268. package/lib/components/shared/three/anatomy/BoneClothing.d.ts.map +1 -1
  269. package/lib/components/shared/three/anatomy/BoneClothing.js.map +1 -1
  270. package/lib/components/shared/three/anatomy/BoneRenderer.d.ts +0 -1
  271. package/lib/components/shared/three/anatomy/BoneRenderer.d.ts.map +1 -1
  272. package/lib/components/shared/three/anatomy/BoneRenderer.js.map +1 -1
  273. package/lib/components/shared/three/anatomy/Face3D.d.ts.map +1 -1
  274. package/lib/components/shared/three/anatomy/Face3D.js.map +1 -1
  275. package/lib/components/shared/three/anatomy/Foot3D.d.ts +0 -1
  276. package/lib/components/shared/three/anatomy/Foot3D.d.ts.map +1 -1
  277. package/lib/components/shared/three/anatomy/Foot3D.js.map +1 -1
  278. package/lib/components/shared/three/anatomy/Hand3D.d.ts +0 -1
  279. package/lib/components/shared/three/anatomy/Hand3D.d.ts.map +1 -1
  280. package/lib/components/shared/three/anatomy/Hand3D.js.map +1 -1
  281. package/lib/components/shared/three/effects/ActionFeedback.d.ts.map +1 -1
  282. package/lib/components/shared/three/effects/ActionFeedback.js.map +1 -1
  283. package/lib/components/shared/three/effects/DamageNumbers.d.ts.map +1 -1
  284. package/lib/components/shared/three/effects/DamageNumbers.js.map +1 -1
  285. package/lib/components/shared/three/effects/ExplosiveBurstEffect3D.d.ts.map +1 -1
  286. package/lib/components/shared/three/effects/GrapplingIndicator3D.d.ts.map +1 -1
  287. package/lib/components/shared/three/effects/HitEffects3D.d.ts.map +1 -1
  288. package/lib/components/shared/three/effects/HitEffects3D.js.map +1 -1
  289. package/lib/components/shared/three/effects/LimbExposureIndicator3D.d.ts.map +1 -1
  290. package/lib/components/shared/three/effects/NerveDisruptionEffect3D.d.ts.map +1 -1
  291. package/lib/components/shared/three/effects/PlayerStateIndicators.d.ts.map +1 -1
  292. package/lib/components/shared/three/effects/PlayerStateIndicators.js.map +1 -1
  293. package/lib/components/shared/three/effects/StanceSymbol3D.d.ts.map +1 -1
  294. package/lib/components/shared/three/effects/StanceSymbol3D.js.map +1 -1
  295. package/lib/components/shared/three/effects/StanceTransitionEffect.d.ts.map +1 -1
  296. package/lib/components/shared/three/effects/StanceTransitionEffect.js.map +1 -1
  297. package/lib/components/shared/three/effects/ThunderEffect3D.d.ts.map +1 -1
  298. package/lib/components/shared/three/effects/VitalPointMarkers3D.d.ts.map +1 -1
  299. package/lib/components/shared/three/effects/VitalPointMarkers3D.js.map +1 -1
  300. package/lib/components/shared/three/index.d.ts.map +1 -1
  301. package/lib/components/shared/three/indicators/ElementalColorSystem.d.ts +0 -6
  302. package/lib/components/shared/three/indicators/ElementalColorSystem.d.ts.map +1 -1
  303. package/lib/components/shared/three/indicators/ElementalColorSystem.js +0 -4
  304. package/lib/components/shared/three/indicators/ElementalColorSystem.js.map +1 -1
  305. package/lib/components/shared/three/indicators/GuardIndicator.d.ts +0 -1
  306. package/lib/components/shared/three/indicators/GuardIndicator.d.ts.map +1 -1
  307. package/lib/components/shared/three/indicators/GuardIndicator.js +0 -1
  308. package/lib/components/shared/three/indicators/GuardIndicator.js.map +1 -1
  309. package/lib/components/shared/three/indicators/HapticFeedback.d.ts +0 -7
  310. package/lib/components/shared/three/indicators/HapticFeedback.d.ts.map +1 -1
  311. package/lib/components/shared/three/indicators/HapticFeedback.js +0 -2
  312. package/lib/components/shared/three/indicators/HapticFeedback.js.map +1 -1
  313. package/lib/components/shared/three/indicators/StanceChangeIndicator.d.ts +0 -1
  314. package/lib/components/shared/three/indicators/StanceChangeIndicator.d.ts.map +1 -1
  315. package/lib/components/shared/three/indicators/StanceChangeIndicator.js +0 -1
  316. package/lib/components/shared/three/indicators/StanceChangeIndicator.js.map +1 -1
  317. package/lib/components/shared/three/indicators/TrigramSymbol3D.d.ts +0 -1
  318. package/lib/components/shared/three/indicators/TrigramSymbol3D.d.ts.map +1 -1
  319. package/lib/components/shared/three/models/Player3DWithTransitions.d.ts.map +1 -1
  320. package/lib/components/shared/three/models/Player3DWithTransitions.js.map +1 -1
  321. package/lib/components/shared/three/models/SkeletalPlayer3D.d.ts.map +1 -1
  322. package/lib/components/shared/three/models/SkeletalPlayer3D.js.map +1 -1
  323. package/lib/components/shared/three/optimization/AdaptiveQuality.d.ts.map +1 -1
  324. package/lib/components/shared/three/optimization/AdaptiveQuality.js.map +1 -1
  325. package/lib/components/shared/three/optimization/InstancedGeometry.d.ts.map +1 -1
  326. package/lib/components/shared/three/optimization/LODSystem.d.ts.map +1 -1
  327. package/lib/components/shared/three/scene/AtmosphericParticles3D.d.ts.map +1 -1
  328. package/lib/components/shared/three/scene/AtmosphericParticles3D.js.map +1 -1
  329. package/lib/components/shared/three/scene/BackgroundScene3D.d.ts.map +1 -1
  330. package/lib/components/shared/three/scene/BackgroundScene3D.js.map +1 -1
  331. package/lib/components/shared/three/scene/CombatArena3D.d.ts.map +1 -1
  332. package/lib/components/shared/three/scene/CombatArena3D.js.map +1 -1
  333. package/lib/components/shared/three/scene/DebugCollision.d.ts +0 -2
  334. package/lib/components/shared/three/scene/DebugCollision.d.ts.map +1 -1
  335. package/lib/components/shared/three/scene/KoreanSignage3D.d.ts.map +1 -1
  336. package/lib/components/shared/three/scene/KoreanSignage3D.js.map +1 -1
  337. package/lib/components/shared/three/ui/ArchetypeCard.d.ts.map +1 -1
  338. package/lib/components/shared/three/ui/ArchetypeCard.js.map +1 -1
  339. package/lib/components/shared/three/ui/BodyPartHealthDisplay.d.ts.map +1 -1
  340. package/lib/components/shared/three/ui/BodyPartHealthDisplay.js.map +1 -1
  341. package/lib/components/shared/three/ui/BreathingIndicator.d.ts.map +1 -1
  342. package/lib/components/shared/three/ui/BreathingIndicator2.js.map +1 -1
  343. package/lib/components/shared/three/ui/CombatReadinessBar.d.ts.map +1 -1
  344. package/lib/components/shared/three/ui/CombatReadinessBar.js.map +1 -1
  345. package/lib/components/shared/three/ui/ComboCounter.d.ts.map +1 -1
  346. package/lib/components/shared/three/ui/ComboCounter.js.map +1 -1
  347. package/lib/components/shared/three/ui/HealthBar.d.ts.map +1 -1
  348. package/lib/components/shared/three/ui/HealthBar.js.map +1 -1
  349. package/lib/components/shared/three/ui/KoreanButton.d.ts.map +1 -1
  350. package/lib/components/shared/three/ui/KoreanButton.js.map +1 -1
  351. package/lib/components/shared/three/ui/KoreanPanel.d.ts.map +1 -1
  352. package/lib/components/shared/three/ui/KoreanPanel.js.map +1 -1
  353. package/lib/components/shared/three/ui/KoreanText.d.ts.map +1 -1
  354. package/lib/components/shared/three/ui/KoreanText.js.map +1 -1
  355. package/lib/components/shared/three/ui/MenuList.d.ts.map +1 -1
  356. package/lib/components/shared/three/ui/MenuList.js.map +1 -1
  357. package/lib/components/shared/three/ui/PlayerHUD.d.ts.map +1 -1
  358. package/lib/components/shared/three/ui/PlayerHUD.js.map +1 -1
  359. package/lib/components/shared/three/ui/ProgressBar.d.ts.map +1 -1
  360. package/lib/components/shared/three/ui/ProgressBar.js.map +1 -1
  361. package/lib/components/shared/three/ui/SpeedIndicatorHUD.d.ts +0 -1
  362. package/lib/components/shared/three/ui/SpeedIndicatorHUD.d.ts.map +1 -1
  363. package/lib/components/shared/three/ui/SpeedIndicatorHUD.js +0 -1
  364. package/lib/components/shared/three/ui/SpeedIndicatorHUD.js.map +1 -1
  365. package/lib/components/shared/three/ui/StaminaBar.d.ts.map +1 -1
  366. package/lib/components/shared/three/ui/StaminaBar.js.map +1 -1
  367. package/lib/components/shared/three/ui/TechniqueBar.d.ts.map +1 -1
  368. package/lib/components/shared/three/ui/TechniqueBar.js.map +1 -1
  369. package/lib/components/shared/three/ui/TechniqueBarContainer.d.ts.map +1 -1
  370. package/lib/components/shared/three/ui/TechniqueCard.d.ts.map +1 -1
  371. package/lib/components/shared/three/ui/TechniqueCard.js.map +1 -1
  372. package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.d.ts.map +1 -1
  373. package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.js.map +1 -1
  374. package/lib/components/shared/three/ui/VulnerabilityWindowHUD.d.ts.map +1 -1
  375. package/lib/components/shared/ui/BaseHUDContainer.d.ts.map +1 -1
  376. package/lib/components/shared/ui/BaseHUDContainer.js.map +1 -1
  377. package/lib/components/shared/ui/CombatTimer.d.ts.map +1 -1
  378. package/lib/components/shared/ui/CombatTimer.js.map +1 -1
  379. package/lib/components/shared/ui/ErrorBoundary.d.ts.map +1 -1
  380. package/lib/components/shared/ui/ErrorModal.d.ts.map +1 -1
  381. package/lib/components/shared/ui/ErrorModal.js.map +1 -1
  382. package/lib/components/shared/ui/HUDSection.d.ts.map +1 -1
  383. package/lib/components/shared/ui/LoadingState.d.ts.map +1 -1
  384. package/lib/components/shared/ui/LoadingState.js.map +1 -1
  385. package/lib/components/shared/ui/MobileHUDLayout.d.ts +0 -1
  386. package/lib/components/shared/ui/MobileHUDLayout.d.ts.map +1 -1
  387. package/lib/components/shared/ui/ResponsiveContainer.d.ts +0 -1
  388. package/lib/components/shared/ui/ResponsiveContainer.d.ts.map +1 -1
  389. package/lib/components/shared/ui/SplashScreen.d.ts.map +1 -1
  390. package/lib/components/shared/ui/SplashScreen.js +2 -2
  391. package/lib/components/shared/ui/SplashScreen.js.map +1 -1
  392. package/lib/components/shared/ui/StyledHUDPanel.d.ts.map +1 -1
  393. package/lib/components/shared/ui/VitalPointOverlayControlsPure.d.ts.map +1 -1
  394. package/lib/components/shared/ui/VitalPointOverlayControlsPure.js.map +1 -1
  395. package/lib/components/shared/ui/VolumeControl.d.ts.map +1 -1
  396. package/lib/components/shared/ui/VolumeControl.js.map +1 -1
  397. package/lib/components/shared/ui/shared/ConfirmDialog.d.ts.map +1 -1
  398. package/lib/components/shared/ui/shared/ConfirmDialog.js.map +1 -1
  399. package/lib/components/test/Hello3D.d.ts.map +1 -1
  400. package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.d.ts.map +1 -1
  401. package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.js.map +1 -1
  402. package/lib/components/ui/combat/ComboCounter.d.ts.map +1 -1
  403. package/lib/components/ui/combat/PressureMeter.d.ts.map +1 -1
  404. package/lib/systems/CombatSystem.d.ts +0 -6
  405. package/lib/systems/CombatSystem.d.ts.map +1 -1
  406. package/lib/systems/CombatSystem.js +0 -6
  407. package/lib/systems/CombatSystem.js.map +1 -1
  408. package/lib/systems/EffectCalculator.d.ts +0 -7
  409. package/lib/systems/EffectCalculator.d.ts.map +1 -1
  410. package/lib/systems/EffectCalculator.js +0 -4
  411. package/lib/systems/EffectCalculator.js.map +1 -1
  412. package/lib/systems/LayoutSystem.d.ts +0 -1
  413. package/lib/systems/LayoutSystem.d.ts.map +1 -1
  414. package/lib/systems/LayoutSystem.js +0 -1
  415. package/lib/systems/LayoutSystem.js.map +1 -1
  416. package/lib/systems/PlayerEffectManager.d.ts +0 -10
  417. package/lib/systems/PlayerEffectManager.d.ts.map +1 -1
  418. package/lib/systems/PlayerEffectManager.js +0 -3
  419. package/lib/systems/PlayerEffectManager.js.map +1 -1
  420. package/lib/systems/ResponsiveScaling.d.ts +0 -12
  421. package/lib/systems/ResponsiveScaling.d.ts.map +1 -1
  422. package/lib/systems/ResponsiveScaling.js +0 -12
  423. package/lib/systems/ResponsiveScaling.js.map +1 -1
  424. package/lib/systems/TrigramSystem.d.ts +0 -13
  425. package/lib/systems/TrigramSystem.d.ts.map +1 -1
  426. package/lib/systems/TrigramSystem.js +0 -13
  427. package/lib/systems/TrigramSystem.js.map +1 -1
  428. package/lib/systems/VitalPointSystem.d.ts +0 -10
  429. package/lib/systems/VitalPointSystem.d.ts.map +1 -1
  430. package/lib/systems/VitalPointSystem.js +0 -10
  431. package/lib/systems/VitalPointSystem.js.map +1 -1
  432. package/lib/systems/animation/builders/KeyframeInterpolation.d.ts +0 -4
  433. package/lib/systems/animation/builders/KeyframeInterpolation.d.ts.map +1 -1
  434. package/lib/systems/animation/builders/KeyframeInterpolation.js +0 -1
  435. package/lib/systems/animation/builders/KeyframeInterpolation.js.map +1 -1
  436. package/lib/systems/animation/builders/SkeletonRig.d.ts +0 -4
  437. package/lib/systems/animation/builders/SkeletonRig.d.ts.map +1 -1
  438. package/lib/systems/animation/builders/SkeletonRig.js +0 -3
  439. package/lib/systems/animation/builders/SkeletonRig.js.map +1 -1
  440. package/lib/systems/animation/catalogs/RecoveryAnimations.d.ts +0 -5
  441. package/lib/systems/animation/catalogs/RecoveryAnimations.d.ts.map +1 -1
  442. package/lib/systems/animation/catalogs/RecoveryAnimations.js +0 -5
  443. package/lib/systems/animation/catalogs/RecoveryAnimations.js.map +1 -1
  444. package/lib/systems/animation/core/AnimationHitTiming.d.ts +0 -6
  445. package/lib/systems/animation/core/AnimationHitTiming.d.ts.map +1 -1
  446. package/lib/systems/animation/core/AnimationHitTiming.js +0 -4
  447. package/lib/systems/animation/core/AnimationHitTiming.js.map +1 -1
  448. package/lib/systems/animation/core/AnimationStateMachine.js +1 -0
  449. package/lib/systems/animation/core/AnimationStateMachine.js.map +1 -1
  450. package/lib/systems/animation/core/AnimationTransitions.d.ts +0 -3
  451. package/lib/systems/animation/core/AnimationTransitions.d.ts.map +1 -1
  452. package/lib/systems/animation/core/AnimationTransitions.js.map +1 -1
  453. package/lib/systems/animation/core/LateralityTransform.d.ts +0 -3
  454. package/lib/systems/animation/core/LateralityTransform.d.ts.map +1 -1
  455. package/lib/systems/animation/core/LateralityTransform.js +0 -1
  456. package/lib/systems/animation/core/LateralityTransform.js.map +1 -1
  457. package/lib/systems/animation/core/RecoveryPhaseEnhancer.d.ts +0 -1
  458. package/lib/systems/animation/core/RecoveryPhaseEnhancer.d.ts.map +1 -1
  459. package/lib/systems/animation/core/RecoveryPhaseEnhancer.js.map +1 -1
  460. package/lib/systems/animation/core/TechniqueAnimationMapper.d.ts +0 -10
  461. package/lib/systems/animation/core/TechniqueAnimationMapper.d.ts.map +1 -1
  462. package/lib/systems/animation/core/TechniqueAnimationMapper.js +0 -8
  463. package/lib/systems/animation/core/TechniqueAnimationMapper.js.map +1 -1
  464. package/lib/systems/animation/core/TrigramAnimationMapping.d.ts +0 -10
  465. package/lib/systems/animation/core/TrigramAnimationMapping.d.ts.map +1 -1
  466. package/lib/systems/animation/core/TrigramStanceTransitions.d.ts +0 -2
  467. package/lib/systems/animation/core/TrigramStanceTransitions.d.ts.map +1 -1
  468. package/lib/systems/animation/core/types.d.ts +0 -39
  469. package/lib/systems/animation/core/types.d.ts.map +1 -1
  470. package/lib/systems/animation/core/types.js +0 -9
  471. package/lib/systems/animation/core/types.js.map +1 -1
  472. package/lib/systems/animation/systems/AdvancedJointMovements.d.ts +0 -27
  473. package/lib/systems/animation/systems/AdvancedJointMovements.d.ts.map +1 -1
  474. package/lib/systems/animation/systems/AdvancedJointMovements.js +0 -1
  475. package/lib/systems/animation/systems/AdvancedJointMovements.js.map +1 -1
  476. package/lib/systems/animation/systems/BodyFacingSystem.d.ts +0 -19
  477. package/lib/systems/animation/systems/BodyFacingSystem.d.ts.map +1 -1
  478. package/lib/systems/animation/systems/BodyFacingSystem.js +0 -14
  479. package/lib/systems/animation/systems/BodyFacingSystem.js.map +1 -1
  480. package/lib/systems/animation/systems/FacialExpressions.d.ts +0 -10
  481. package/lib/systems/animation/systems/FacialExpressions.d.ts.map +1 -1
  482. package/lib/systems/animation/systems/FacialExpressions.js +0 -2
  483. package/lib/systems/animation/systems/FacialExpressions.js.map +1 -1
  484. package/lib/systems/animation/systems/FallAnimations.d.ts +0 -4
  485. package/lib/systems/animation/systems/FallAnimations.d.ts.map +1 -1
  486. package/lib/systems/animation/systems/FallAnimations.js +0 -2
  487. package/lib/systems/animation/systems/FallAnimations.js.map +1 -1
  488. package/lib/systems/animation/systems/HeadMovements.d.ts +0 -10
  489. package/lib/systems/animation/systems/HeadMovements.d.ts.map +1 -1
  490. package/lib/systems/bodypart/BodyPartDamageIntegration.d.ts +0 -7
  491. package/lib/systems/bodypart/BodyPartDamageIntegration.d.ts.map +1 -1
  492. package/lib/systems/bodypart/BodyPartDamageIntegration.js +0 -7
  493. package/lib/systems/bodypart/BodyPartDamageIntegration.js.map +1 -1
  494. package/lib/systems/bodypart/BodyPartHealthSystem.d.ts +0 -13
  495. package/lib/systems/bodypart/BodyPartHealthSystem.d.ts.map +1 -1
  496. package/lib/systems/bodypart/BodyPartHealthSystem.js +0 -13
  497. package/lib/systems/bodypart/BodyPartHealthSystem.js.map +1 -1
  498. package/lib/systems/bodypart/BodyPartPositionMapping.d.ts +0 -6
  499. package/lib/systems/bodypart/BodyPartPositionMapping.d.ts.map +1 -1
  500. package/lib/systems/bodypart/BodyPartPositionMapping.js +0 -6
  501. package/lib/systems/bodypart/BodyPartPositionMapping.js.map +1 -1
  502. package/lib/systems/bodypart/CombatInjuryIntegration.d.ts +0 -10
  503. package/lib/systems/bodypart/CombatInjuryIntegration.d.ts.map +1 -1
  504. package/lib/systems/bodypart/CombatInjuryIntegration.js +0 -8
  505. package/lib/systems/bodypart/CombatInjuryIntegration.js.map +1 -1
  506. package/lib/systems/bodypart/InjuryIntegration.d.ts +0 -2
  507. package/lib/systems/bodypart/InjuryIntegration.d.ts.map +1 -1
  508. package/lib/systems/bodypart/InjuryIntegration.js +0 -2
  509. package/lib/systems/bodypart/InjuryIntegration.js.map +1 -1
  510. package/lib/systems/bodypart/InjuryTracker.d.ts +0 -14
  511. package/lib/systems/bodypart/InjuryTracker.d.ts.map +1 -1
  512. package/lib/systems/bodypart/InjuryTracker.js +0 -12
  513. package/lib/systems/bodypart/InjuryTracker.js.map +1 -1
  514. package/lib/systems/bodypart/MovementPenaltySystem.d.ts +0 -8
  515. package/lib/systems/bodypart/MovementPenaltySystem.d.ts.map +1 -1
  516. package/lib/systems/bodypart/MovementPenaltySystem.js +0 -8
  517. package/lib/systems/bodypart/MovementPenaltySystem.js.map +1 -1
  518. package/lib/systems/bodypart/PlayerInjuryTrackingManager.d.ts +0 -8
  519. package/lib/systems/bodypart/PlayerInjuryTrackingManager.d.ts.map +1 -1
  520. package/lib/systems/bodypart/PlayerInjuryTrackingManager.js +0 -8
  521. package/lib/systems/bodypart/PlayerInjuryTrackingManager.js.map +1 -1
  522. package/lib/systems/bodypart/types.d.ts +0 -13
  523. package/lib/systems/bodypart/types.d.ts.map +1 -1
  524. package/lib/systems/bodypart/types.js +0 -5
  525. package/lib/systems/bodypart/types.js.map +1 -1
  526. package/lib/systems/breathing/BreathingDisruptionSystem.d.ts +0 -3
  527. package/lib/systems/breathing/BreathingDisruptionSystem.d.ts.map +1 -1
  528. package/lib/systems/breathing/BreathingDisruptionSystem.js +0 -2
  529. package/lib/systems/breathing/BreathingDisruptionSystem.js.map +1 -1
  530. package/lib/systems/combat/BalanceSystem.d.ts +0 -25
  531. package/lib/systems/combat/BalanceSystem.d.ts.map +1 -1
  532. package/lib/systems/combat/BalanceSystem.js +0 -25
  533. package/lib/systems/combat/BalanceSystem.js.map +1 -1
  534. package/lib/systems/combat/BreakingStatusEffects.d.ts +0 -4
  535. package/lib/systems/combat/BreakingStatusEffects.d.ts.map +1 -1
  536. package/lib/systems/combat/BreakingStatusEffects.js +0 -3
  537. package/lib/systems/combat/BreakingStatusEffects.js.map +1 -1
  538. package/lib/systems/combat/CombatStateSystem.d.ts +0 -9
  539. package/lib/systems/combat/CombatStateSystem.d.ts.map +1 -1
  540. package/lib/systems/combat/CombatStateSystem.js +0 -9
  541. package/lib/systems/combat/CombatStateSystem.js.map +1 -1
  542. package/lib/systems/combat/ConsciousnessSystem.d.ts +0 -16
  543. package/lib/systems/combat/ConsciousnessSystem.d.ts.map +1 -1
  544. package/lib/systems/combat/ConsciousnessSystem.js +0 -16
  545. package/lib/systems/combat/ConsciousnessSystem.js.map +1 -1
  546. package/lib/systems/combat/FallIntegration.d.ts +0 -3
  547. package/lib/systems/combat/FallIntegration.d.ts.map +1 -1
  548. package/lib/systems/combat/FallIntegration.js +0 -3
  549. package/lib/systems/combat/FallIntegration.js.map +1 -1
  550. package/lib/systems/combat/GrappleSystem.d.ts +0 -2
  551. package/lib/systems/combat/GrappleSystem.d.ts.map +1 -1
  552. package/lib/systems/combat/GrappleSystem.js +0 -2
  553. package/lib/systems/combat/GrappleSystem.js.map +1 -1
  554. package/lib/systems/combat/LimbExposureSystem.d.ts +0 -7
  555. package/lib/systems/combat/LimbExposureSystem.d.ts.map +1 -1
  556. package/lib/systems/combat/LimbExposureSystem.js +0 -7
  557. package/lib/systems/combat/LimbExposureSystem.js.map +1 -1
  558. package/lib/systems/combat/PainResponseSystem.d.ts +0 -11
  559. package/lib/systems/combat/PainResponseSystem.d.ts.map +1 -1
  560. package/lib/systems/combat/PainResponseSystem.js +0 -11
  561. package/lib/systems/combat/PainResponseSystem.js.map +1 -1
  562. package/lib/systems/combat/painConsciousnessUtils.d.ts +0 -7
  563. package/lib/systems/combat/painConsciousnessUtils.d.ts.map +1 -1
  564. package/lib/systems/combat/painConsciousnessUtils.js +0 -7
  565. package/lib/systems/combat/painConsciousnessUtils.js.map +1 -1
  566. package/lib/systems/effects.d.ts +11 -0
  567. package/lib/systems/effects.d.ts.map +1 -1
  568. package/lib/systems/effects.js +10 -0
  569. package/lib/systems/effects.js.map +1 -1
  570. package/lib/systems/game.d.ts +16 -0
  571. package/lib/systems/game.d.ts.map +1 -1
  572. package/lib/systems/game.js +1 -0
  573. package/lib/systems/game.js.map +1 -1
  574. package/lib/systems/index.d.ts +5 -1
  575. package/lib/systems/index.d.ts.map +1 -1
  576. package/lib/systems/index.js.map +1 -1
  577. package/lib/systems/movement/InjuryMovementModifier.d.ts +0 -10
  578. package/lib/systems/movement/InjuryMovementModifier.d.ts.map +1 -1
  579. package/lib/systems/movement/InjuryMovementModifier.js +0 -7
  580. package/lib/systems/movement/InjuryMovementModifier.js.map +1 -1
  581. package/lib/systems/movement/integration.d.ts +0 -3
  582. package/lib/systems/movement/integration.d.ts.map +1 -1
  583. package/lib/systems/movement/integration.js +0 -3
  584. package/lib/systems/movement/integration.js.map +1 -1
  585. package/lib/systems/physics/AttackMovementPhysics.d.ts +0 -9
  586. package/lib/systems/physics/AttackMovementPhysics.d.ts.map +1 -1
  587. package/lib/systems/physics/AttackMovementPhysics.js +0 -7
  588. package/lib/systems/physics/AttackMovementPhysics.js.map +1 -1
  589. package/lib/systems/physics/CollisionDetection.d.ts +0 -6
  590. package/lib/systems/physics/CollisionDetection.d.ts.map +1 -1
  591. package/lib/systems/physics/CollisionDetection.js +0 -6
  592. package/lib/systems/physics/CollisionDetection.js.map +1 -1
  593. package/lib/systems/physics/CoordinateMapper.d.ts +0 -1
  594. package/lib/systems/physics/CoordinateMapper.d.ts.map +1 -1
  595. package/lib/systems/physics/CoordinateMapper.js +0 -1
  596. package/lib/systems/physics/CoordinateMapper.js.map +1 -1
  597. package/lib/systems/physics/KnockbackPhysics.d.ts +0 -11
  598. package/lib/systems/physics/KnockbackPhysics.d.ts.map +1 -1
  599. package/lib/systems/physics/KnockbackPhysics.js +0 -8
  600. package/lib/systems/physics/KnockbackPhysics.js.map +1 -1
  601. package/lib/systems/physics/MovementPhysics.d.ts +0 -10
  602. package/lib/systems/physics/MovementPhysics.d.ts.map +1 -1
  603. package/lib/systems/physics/MovementPhysics.js +0 -8
  604. package/lib/systems/physics/MovementPhysics.js.map +1 -1
  605. package/lib/systems/physics/PhysicalReachCalculator.d.ts +0 -6
  606. package/lib/systems/physics/PhysicalReachCalculator.d.ts.map +1 -1
  607. package/lib/systems/physics/PhysicalReachCalculator.js +0 -5
  608. package/lib/systems/physics/PhysicalReachCalculator.js.map +1 -1
  609. package/lib/systems/physics/SpeedModifierSystem.d.ts +0 -5
  610. package/lib/systems/physics/SpeedModifierSystem.d.ts.map +1 -1
  611. package/lib/systems/physics/SpeedModifierSystem.js +0 -4
  612. package/lib/systems/physics/SpeedModifierSystem.js.map +1 -1
  613. package/lib/systems/player.d.ts +0 -5
  614. package/lib/systems/player.d.ts.map +1 -1
  615. package/lib/systems/trigram/TrigramCalculator.d.ts +0 -1
  616. package/lib/systems/trigram/TrigramCalculator.d.ts.map +1 -1
  617. package/lib/systems/trigram/TrigramCalculator.js +0 -1
  618. package/lib/systems/trigram/TrigramCalculator.js.map +1 -1
  619. package/lib/systems/trigram/types.d.ts +0 -4
  620. package/lib/systems/trigram/types.d.ts.map +1 -1
  621. package/lib/systems/trigram/types.js +0 -2
  622. package/lib/systems/trigram/types.js.map +1 -1
  623. package/lib/systems/types.d.ts +7 -2
  624. package/lib/systems/types.d.ts.map +1 -1
  625. package/lib/systems/types.js.map +1 -1
  626. package/lib/systems/vitalpoint/DamageCalculator.d.ts +0 -3
  627. package/lib/systems/vitalpoint/DamageCalculator.d.ts.map +1 -1
  628. package/lib/systems/vitalpoint/DamageCalculator.js +0 -3
  629. package/lib/systems/vitalpoint/DamageCalculator.js.map +1 -1
  630. package/lib/systems/vitalpoint/KoreanVitalPoints.d.ts +0 -8
  631. package/lib/systems/vitalpoint/KoreanVitalPoints.d.ts.map +1 -1
  632. package/lib/systems/vitalpoint/KoreanVitalPoints.js +0 -8
  633. package/lib/systems/vitalpoint/KoreanVitalPoints.js.map +1 -1
  634. package/lib/systems/vitalpoint/VitalPointsData.d.ts +0 -3
  635. package/lib/systems/vitalpoint/VitalPointsData.d.ts.map +1 -1
  636. package/lib/systems/vitalpoint/VitalPointsData.js +0 -1
  637. package/lib/systems/vitalpoint/VitalPointsData.js.map +1 -1
  638. package/lib/types/PhysicsTypes.d.ts +21 -78
  639. package/lib/types/PhysicsTypes.d.ts.map +1 -1
  640. package/lib/types/PhysicsTypes.js +17 -63
  641. package/lib/types/PhysicsTypes.js.map +1 -1
  642. package/lib/types/clothing.d.ts +0 -9
  643. package/lib/types/clothing.d.ts.map +1 -1
  644. package/lib/types/constants/animations.d.ts +35 -1
  645. package/lib/types/constants/animations.d.ts.map +1 -1
  646. package/lib/types/constants/animations.js +12 -1
  647. package/lib/types/constants/animations.js.map +1 -1
  648. package/lib/types/constants/colors.d.ts +28 -2
  649. package/lib/types/constants/colors.d.ts.map +1 -1
  650. package/lib/types/constants/colors.js +30 -4
  651. package/lib/types/constants/colors.js.map +1 -1
  652. package/lib/types/constants/index.d.ts +5 -1
  653. package/lib/types/constants/index.d.ts.map +1 -1
  654. package/lib/types/constants/index.js.map +1 -1
  655. package/lib/types/constants/performance.d.ts +0 -2
  656. package/lib/types/constants/performance.d.ts.map +1 -1
  657. package/lib/types/constants/performance.js +0 -2
  658. package/lib/types/constants/performance.js.map +1 -1
  659. package/lib/types/constants/typography.d.ts +40 -2
  660. package/lib/types/constants/typography.d.ts.map +1 -1
  661. package/lib/types/constants/typography.js +40 -2
  662. package/lib/types/constants/typography.js.map +1 -1
  663. package/lib/types/constants/ui.d.ts +89 -1
  664. package/lib/types/constants/ui.d.ts.map +1 -1
  665. package/lib/types/constants/ui.js +33 -1
  666. package/lib/types/constants/ui.js.map +1 -1
  667. package/lib/types/facial.d.ts +0 -15
  668. package/lib/types/facial.d.ts.map +1 -1
  669. package/lib/types/facial.js +0 -8
  670. package/lib/types/facial.js.map +1 -1
  671. package/lib/types/hand-animation.d.ts +34 -147
  672. package/lib/types/hand-animation.d.ts.map +1 -1
  673. package/lib/types/hand-animation.js +0 -2
  674. package/lib/types/hand-animation.js.map +1 -1
  675. package/lib/types/injury.d.ts +0 -2
  676. package/lib/types/injury.d.ts.map +1 -1
  677. package/lib/types/injury.js +0 -1
  678. package/lib/types/injury.js.map +1 -1
  679. package/lib/types/physics.d.ts +0 -21
  680. package/lib/types/physics.d.ts.map +1 -1
  681. package/lib/types/physics.js +0 -6
  682. package/lib/types/physics.js.map +1 -1
  683. package/lib/types/physicsConstants.d.ts +0 -12
  684. package/lib/types/physicsConstants.d.ts.map +1 -1
  685. package/lib/types/physicsConstants.js +0 -12
  686. package/lib/types/physicsConstants.js.map +1 -1
  687. package/lib/types/player-visual.d.ts +45 -189
  688. package/lib/types/player-visual.d.ts.map +1 -1
  689. package/lib/types/technique.d.ts +1 -5
  690. package/lib/types/technique.d.ts.map +1 -1
  691. package/lib/types/techniqueId.d.ts +0 -1
  692. package/lib/types/techniqueId.d.ts.map +1 -1
  693. package/lib/types/techniqueId.js +0 -1
  694. package/lib/types/techniqueId.js.map +1 -1
  695. package/lib/utils/arenaWorldDimensions.d.ts +0 -11
  696. package/lib/utils/arenaWorldDimensions.d.ts.map +1 -1
  697. package/lib/utils/arenaWorldDimensions.js +0 -6
  698. package/lib/utils/arenaWorldDimensions.js.map +1 -1
  699. package/lib/utils/controlMapping.d.ts +3 -4
  700. package/lib/utils/controlMapping.d.ts.map +1 -1
  701. package/lib/utils/controlMapping.js +1 -2
  702. package/lib/utils/controlMapping.js.map +1 -1
  703. package/lib/utils/deviceDetection.d.ts +0 -5
  704. package/lib/utils/deviceDetection.d.ts.map +1 -1
  705. package/lib/utils/deviceDetection.js +0 -5
  706. package/lib/utils/deviceDetection.js.map +1 -1
  707. package/lib/utils/hapticFeedback.d.ts +23 -95
  708. package/lib/utils/hapticFeedback.d.ts.map +1 -1
  709. package/lib/utils/hapticFeedback.js +9 -39
  710. package/lib/utils/hapticFeedback.js.map +1 -1
  711. package/lib/utils/haptics.d.ts +0 -3
  712. package/lib/utils/haptics.d.ts.map +1 -1
  713. package/lib/utils/haptics.js +0 -1
  714. package/lib/utils/haptics.js.map +1 -1
  715. package/lib/utils/math.d.ts +0 -3
  716. package/lib/utils/math.d.ts.map +1 -1
  717. package/lib/utils/math.js +0 -2
  718. package/lib/utils/math.js.map +1 -1
  719. package/lib/utils/mobileLayoutHelpers.d.ts +0 -3
  720. package/lib/utils/mobileLayoutHelpers.d.ts.map +1 -1
  721. package/lib/utils/mobileLayoutHelpers.js +0 -1
  722. package/lib/utils/mobileLayoutHelpers.js.map +1 -1
  723. package/lib/utils/mobileUIUtils.d.ts +5 -100
  724. package/lib/utils/mobileUIUtils.d.ts.map +1 -1
  725. package/lib/utils/mobileUIUtils.js +0 -9
  726. package/lib/utils/mobileUIUtils.js.map +1 -1
  727. package/lib/utils/physicalAttributeValidation.d.ts.map +1 -1
  728. package/lib/utils/player3DHelpers.d.ts.map +1 -1
  729. package/lib/utils/player3DHelpers.js.map +1 -1
  730. package/lib/utils/responsiveLayoutHelpers.d.ts +0 -65
  731. package/lib/utils/responsiveLayoutHelpers.d.ts.map +1 -1
  732. package/lib/utils/responsiveLayoutHelpers.js +0 -65
  733. package/lib/utils/responsiveLayoutHelpers.js.map +1 -1
  734. package/lib/utils/responsiveOrientationConstants.d.ts +0 -7
  735. package/lib/utils/responsiveOrientationConstants.d.ts.map +1 -1
  736. package/lib/utils/responsiveOrientationConstants.js +0 -7
  737. package/lib/utils/responsiveOrientationConstants.js.map +1 -1
  738. package/lib/utils/safeAreaUtils.d.ts +0 -6
  739. package/lib/utils/safeAreaUtils.d.ts.map +1 -1
  740. package/lib/utils/safeAreaUtils.js +0 -2
  741. package/lib/utils/safeAreaUtils.js.map +1 -1
  742. package/lib/utils/sharedPhysicsConfig.d.ts +0 -4
  743. package/lib/utils/sharedPhysicsConfig.d.ts.map +1 -1
  744. package/lib/utils/sharedPhysicsConfig.js +0 -2
  745. package/lib/utils/sharedPhysicsConfig.js.map +1 -1
  746. package/lib/utils/skeletonScaling.d.ts +0 -9
  747. package/lib/utils/skeletonScaling.d.ts.map +1 -1
  748. package/lib/utils/skeletonScaling.js +0 -1
  749. package/lib/utils/skeletonScaling.js.map +1 -1
  750. package/package.json +11 -11
@@ -49,7 +49,6 @@ import { BODY_PART_EFFECT_CONSTANTS, BodyPart, DEFAULT_BODY_PART_CONFIG } from "
49
49
  * const effects = system.calculateBodyPartEffects(damaged);
50
50
  * ```
51
51
  *
52
- * @public
53
52
  * @category Body Part System
54
53
  */
55
54
  var BodyPartHealthSystem = class {
@@ -65,7 +64,6 @@ var BodyPartHealthSystem = class {
65
64
  * @param maxHealth - Optional custom max health per part (default: 100)
66
65
  * @returns Body part health structure with all parts at max HP
67
66
  *
68
- * @public
69
67
  */
70
68
  createDefaultBodyPartHealth(maxHealth = 100) {
71
69
  return {
@@ -87,7 +85,6 @@ var BodyPartHealthSystem = class {
87
85
  * @param baseMaxHealth - Base maximum health per part
88
86
  * @returns Maximum health structure
89
87
  *
90
- * @public
91
88
  */
92
89
  createDefaultMaxHealth(baseMaxHealth = 100) {
93
90
  return {
@@ -115,7 +112,6 @@ var BodyPartHealthSystem = class {
115
112
  * @param maxHealth - Optional maximum health limits
116
113
  * @returns Updated body part health
117
114
  *
118
- * @public
119
115
  */
120
116
  applyDamageToBodyPart(current, bodyPart, damage, maxHealth) {
121
117
  const newHealth = Math.max(0, current[bodyPart] - damage);
@@ -136,7 +132,6 @@ var BodyPartHealthSystem = class {
136
132
  * @param bodyRegion - Hit location
137
133
  * @returns Damage distribution configuration
138
134
  *
139
- * @public
140
135
  */
141
136
  getDamageDistribution(bodyRegion) {
142
137
  switch (bodyRegion) {
@@ -246,7 +241,6 @@ var BodyPartHealthSystem = class {
246
241
  * @param maxHealth - Optional maximum health limits
247
242
  * @returns Updated body part health
248
243
  *
249
- * @public
250
244
  */
251
245
  applyDistributedDamage(current, bodyRegion, totalDamage, maxHealth) {
252
246
  const distribution = this.getDamageDistribution(bodyRegion);
@@ -271,7 +265,6 @@ var BodyPartHealthSystem = class {
271
265
  * @param maxHealth - Maximum health values
272
266
  * @returns Combat capability effect multipliers
273
267
  *
274
- * @public
275
268
  */
276
269
  calculateBodyPartEffects(health, maxHealth) {
277
270
  const max = maxHealth ?? this.createDefaultMaxHealth();
@@ -309,7 +302,6 @@ var BodyPartHealthSystem = class {
309
302
  * @param health - Body part health
310
303
  * @returns Aggregate health value (0-100)
311
304
  *
312
- * @public
313
305
  */
314
306
  calculateAggregateHealth(health) {
315
307
  return (health.head + health.neck + health.torsoUpper + health.torsoLower + health.armLeft + health.armRight + health.legLeft + health.legRight) / 8;
@@ -327,7 +319,6 @@ var BodyPartHealthSystem = class {
327
319
  * @param part - Body part to query
328
320
  * @returns Status information for display
329
321
  *
330
- * @public
331
322
  */
332
323
  getBodyPartStatus(health, maxHealth, part) {
333
324
  const current = health[part];
@@ -408,7 +399,6 @@ var BodyPartHealthSystem = class {
408
399
  * @param maxHealth - Maximum health values
409
400
  * @returns Array of status information for all parts
410
401
  *
411
- * @public
412
402
  */
413
403
  getAllBodyPartStatuses(health, maxHealth) {
414
404
  return Object.values(BodyPart).map((part) => this.getBodyPartStatus(health, maxHealth, part));
@@ -427,7 +417,6 @@ var BodyPartHealthSystem = class {
427
417
  * @param maxHealth - Optional maximum health limits
428
418
  * @returns Updated body part health
429
419
  *
430
- * @public
431
420
  */
432
421
  healBodyPart(current, bodyPart, healAmount, maxHealth) {
433
422
  const max = maxHealth ?? this.createDefaultMaxHealth();
@@ -450,7 +439,6 @@ var BodyPartHealthSystem = class {
450
439
  * @param health - Current body part health
451
440
  * @returns Whether player is incapacitated
452
441
  *
453
- * @public
454
442
  */
455
443
  isIncapacitated(health) {
456
444
  if (health.head <= 0) return true;
@@ -466,7 +454,6 @@ var BodyPartHealthSystem = class {
466
454
  *
467
455
  * Provides global access to the body part health system throughout the game.
468
456
  *
469
- * @public
470
457
  */
471
458
  var bodyPartHealthSystem = new BodyPartHealthSystem();
472
459
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"BodyPartHealthSystem.js","names":[],"sources":["../../../src/systems/bodypart/BodyPartHealthSystem.ts"],"sourcesContent":["/**\n * Body Part Health System\n * \n * **Korean**: 신체부위 체력 시스템\n * \n * Manages body part-specific health tracking, damage distribution, and combat\n * capability effects. Implements realistic localized damage mechanics based on\n * Korean martial arts vital point targeting principles.\n * \n * ## System Features\n * \n * - Independent health tracking for 8 body parts\n * - Automatic combat capability penalties based on damage\n * - Damage distribution from hit locations to body parts\n * - UI-friendly status information generation\n * - Performance-optimized calculations\n * \n * @module systems/bodypart/BodyPartHealthSystem\n * @category Body Part System\n * @korean 신체부위체력시스템\n */\n\nimport { BodyRegion, KOREAN_COLORS, KoreanText } from \"@/types\";\nimport {\n BodyPart,\n BodyPartDamageDistribution,\n BodyPartEffects,\n BodyPartHealth,\n BodyPartHealthConfig,\n BodyPartMaxHealth,\n BodyPartStatus,\n BODY_PART_EFFECT_CONSTANTS,\n DEFAULT_BODY_PART_CONFIG,\n} from \"./types\";\n\n/**\n * Body Part Health System class.\n * \n * **Korean**: 신체부위 체력 시스템 클래스\n * \n * Provides methods for managing body part health, calculating effects,\n * and distributing damage based on hit locations.\n * \n * @example\n * ```typescript\n * const system = new BodyPartHealthSystem();\n * \n * // Create initial body part health\n * const health = system.createDefaultBodyPartHealth();\n * \n * // Apply damage to head\n * const damaged = system.applyDamageToBodyPart(\n * health,\n * BodyPart.HEAD,\n * 25\n * );\n * \n * // Calculate combat effects\n * const effects = system.calculateBodyPartEffects(damaged);\n * ```\n * \n * @public\n * @category Body Part System\n */\nexport class BodyPartHealthSystem {\n private config: BodyPartHealthConfig;\n\n constructor(config: BodyPartHealthConfig = DEFAULT_BODY_PART_CONFIG) {\n this.config = config;\n }\n\n /**\n * Create default body part health with all parts at maximum.\n * \n * **Korean**: 기본 신체부위 체력 생성\n * \n * @param maxHealth - Optional custom max health per part (default: 100)\n * @returns Body part health structure with all parts at max HP\n * \n * @public\n */\n createDefaultBodyPartHealth(maxHealth: number = 100): BodyPartHealth {\n return {\n head: maxHealth,\n neck: maxHealth,\n torsoUpper: maxHealth,\n torsoLower: maxHealth,\n armLeft: maxHealth,\n armRight: maxHealth,\n legLeft: maxHealth,\n legRight: maxHealth,\n };\n }\n\n /**\n * Create default maximum health values for body parts.\n * \n * **Korean**: 기본 최대 체력 생성\n * \n * @param baseMaxHealth - Base maximum health per part\n * @returns Maximum health structure\n * \n * @public\n */\n createDefaultMaxHealth(baseMaxHealth: number = 100): BodyPartMaxHealth {\n return {\n head: baseMaxHealth,\n neck: baseMaxHealth,\n torsoUpper: baseMaxHealth,\n torsoLower: baseMaxHealth,\n armLeft: baseMaxHealth,\n armRight: baseMaxHealth,\n legLeft: baseMaxHealth,\n legRight: baseMaxHealth,\n };\n }\n\n /**\n * Apply damage to a specific body part.\n * \n * **Korean**: 신체부위 피해 적용\n * \n * Reduces health of the specified body part by the damage amount.\n * Health is clamped to 0-maxHealth range.\n * \n * @param current - Current body part health\n * @param bodyPart - Body part to damage\n * @param damage - Damage amount to apply\n * @param maxHealth - Optional maximum health limits\n * @returns Updated body part health\n * \n * @public\n */\n applyDamageToBodyPart(\n current: BodyPartHealth,\n bodyPart: BodyPart,\n damage: number,\n maxHealth?: BodyPartMaxHealth\n ): BodyPartHealth {\n const newHealth = Math.max(0, current[bodyPart] - damage);\n const clampedHealth = maxHealth\n ? Math.min(newHealth, maxHealth[bodyPart])\n : newHealth;\n\n return {\n ...current,\n [bodyPart]: clampedHealth,\n };\n }\n\n /**\n * Distribute damage across body parts based on hit location.\n * \n * **Korean**: 피해 분배\n * \n * Maps a BodyRegion hit location to primary and secondary body parts,\n * distributing damage according to impact mechanics.\n * \n * @param bodyRegion - Hit location\n * @returns Damage distribution configuration\n * \n * @public\n */\n getDamageDistribution(bodyRegion: BodyRegion): BodyPartDamageDistribution {\n switch (bodyRegion) {\n case BodyRegion.HEAD:\n return {\n primary: { part: BodyPart.HEAD, percentage: 0.9 },\n secondary: [{ part: BodyPart.NECK, percentage: 0.1 }],\n };\n\n case BodyRegion.NECK:\n return {\n primary: { part: BodyPart.NECK, percentage: 0.8 },\n secondary: [\n { part: BodyPart.HEAD, percentage: 0.1 },\n { part: BodyPart.TORSO_UPPER, percentage: 0.1 },\n ],\n };\n\n case BodyRegion.TORSO:\n return {\n primary: { part: BodyPart.TORSO_UPPER, percentage: 0.6 },\n secondary: [{ part: BodyPart.TORSO_LOWER, percentage: 0.4 }],\n };\n\n case BodyRegion.CORE:\n return {\n primary: { part: BodyPart.TORSO_LOWER, percentage: 0.7 },\n secondary: [{ part: BodyPart.TORSO_UPPER, percentage: 0.3 }],\n };\n\n case BodyRegion.LEFT_ARM:\n return {\n primary: { part: BodyPart.ARM_LEFT, percentage: 0.9 },\n secondary: [{ part: BodyPart.TORSO_UPPER, percentage: 0.1 }],\n };\n\n case BodyRegion.RIGHT_ARM:\n return {\n primary: { part: BodyPart.ARM_RIGHT, percentage: 0.9 },\n secondary: [{ part: BodyPart.TORSO_UPPER, percentage: 0.1 }],\n };\n\n case BodyRegion.LEFT_LEG:\n return {\n primary: { part: BodyPart.LEG_LEFT, percentage: 0.9 },\n secondary: [{ part: BodyPart.TORSO_LOWER, percentage: 0.1 }],\n };\n\n case BodyRegion.RIGHT_LEG:\n return {\n primary: { part: BodyPart.LEG_RIGHT, percentage: 0.9 },\n secondary: [{ part: BodyPart.TORSO_LOWER, percentage: 0.1 }],\n };\n\n default:\n // Default to torso upper for unknown regions\n return {\n primary: { part: BodyPart.TORSO_UPPER, percentage: 1.0 },\n secondary: [],\n };\n }\n }\n\n /**\n * Apply distributed damage to body parts from a hit.\n * \n * **Korean**: 분산 피해 적용\n * \n * Takes total damage and distributes it across primary and secondary\n * body parts based on the hit location.\n * \n * @param current - Current body part health\n * @param bodyRegion - Hit location\n * @param totalDamage - Total damage to distribute\n * @param maxHealth - Optional maximum health limits\n * @returns Updated body part health\n * \n * @public\n */\n applyDistributedDamage(\n current: BodyPartHealth,\n bodyRegion: BodyRegion,\n totalDamage: number,\n maxHealth?: BodyPartMaxHealth\n ): BodyPartHealth {\n const distribution = this.getDamageDistribution(bodyRegion);\n let updated = { ...current };\n\n // Apply primary damage\n updated = this.applyDamageToBodyPart(\n updated,\n distribution.primary.part,\n totalDamage * distribution.primary.percentage,\n maxHealth\n );\n\n // Apply secondary damage\n for (const secondary of distribution.secondary) {\n updated = this.applyDamageToBodyPart(\n updated,\n secondary.part,\n totalDamage * secondary.percentage,\n maxHealth\n );\n }\n\n return updated;\n }\n\n /**\n * Calculate combat capability effects from body part damage.\n * \n * **Korean**: 전투 능력 효과 계산\n * \n * Analyzes body part health and returns multipliers for various combat\n * capabilities. Implements acceptance criteria:\n * - Head <50%: Consciousness penalties\n * - Torso <50%: Stamina regen -50%\n * - Arms <50%: Attack damage -30%\n * - Legs <50%: Movement speed -40%\n * \n * @param health - Current body part health\n * @param maxHealth - Maximum health values\n * @returns Combat capability effect multipliers\n * \n * @public\n */\n calculateBodyPartEffects(\n health: BodyPartHealth,\n maxHealth?: BodyPartMaxHealth\n ): BodyPartEffects {\n const max = maxHealth ?? this.createDefaultMaxHealth();\n\n // Calculate head/neck effects on consciousness\n const headPercentage = health.head / max.head;\n const neckPercentage = health.neck / max.neck;\n const minHeadNeck = Math.min(headPercentage, neckPercentage);\n \n let consciousnessModifier = 1.0;\n if (minHeadNeck < BODY_PART_EFFECT_CONSTANTS.HEAD.CRITICAL_THRESHOLD) {\n consciousnessModifier = BODY_PART_EFFECT_CONSTANTS.HEAD.CONSCIOUSNESS_PENALTY_AT_50;\n }\n\n // Calculate torso effects on stamina regeneration\n const torsoUpperPercentage = health.torsoUpper / max.torsoUpper;\n const torsoLowerPercentage = health.torsoLower / max.torsoLower;\n const avgTorso = (torsoUpperPercentage + torsoLowerPercentage) / 2;\n \n let staminaRegenModifier = 1.0;\n if (avgTorso < BODY_PART_EFFECT_CONSTANTS.TORSO.CRITICAL_THRESHOLD) {\n staminaRegenModifier = BODY_PART_EFFECT_CONSTANTS.TORSO.STAMINA_REGEN_PENALTY_AT_50;\n }\n\n // Calculate arm effects on attack damage\n const armLeftPercentage = health.armLeft / max.armLeft;\n const armRightPercentage = health.armRight / max.armRight;\n const avgArms = (armLeftPercentage + armRightPercentage) / 2;\n \n let attackDamageModifier = 1.0;\n if (avgArms < BODY_PART_EFFECT_CONSTANTS.ARMS.CRITICAL_THRESHOLD) {\n attackDamageModifier = BODY_PART_EFFECT_CONSTANTS.ARMS.ATTACK_DAMAGE_PENALTY_AT_50;\n }\n\n // Calculate leg effects on movement speed\n const legLeftPercentage = health.legLeft / max.legLeft;\n const legRightPercentage = health.legRight / max.legRight;\n const avgLegs = (legLeftPercentage + legRightPercentage) / 2;\n \n let movementSpeedModifier = 1.0;\n if (avgLegs < BODY_PART_EFFECT_CONSTANTS.LEGS.CRITICAL_THRESHOLD) {\n movementSpeedModifier = BODY_PART_EFFECT_CONSTANTS.LEGS.MOVEMENT_SPEED_PENALTY_AT_50;\n }\n\n // Balance affected by torso and legs\n const balanceModifier = Math.min(avgTorso, avgLegs);\n\n // Technique accuracy affected by head and arms\n const techniqueAccuracyModifier = Math.min(headPercentage, avgArms);\n\n return {\n consciousnessModifier,\n staminaRegenModifier,\n attackDamageModifier,\n movementSpeedModifier,\n balanceModifier,\n techniqueAccuracyModifier,\n };\n }\n\n /**\n * Calculate aggregate health from body parts.\n * \n * **Korean**: 종합 체력 계산\n * \n * Computes overall health as average of all body part health values.\n * This maintains backwards compatibility with single health bar systems.\n * \n * @param health - Body part health\n * @returns Aggregate health value (0-100)\n * \n * @public\n */\n calculateAggregateHealth(health: BodyPartHealth): number {\n const sum =\n health.head +\n health.neck +\n health.torsoUpper +\n health.torsoLower +\n health.armLeft +\n health.armRight +\n health.legLeft +\n health.legRight;\n\n return sum / 8;\n }\n\n /**\n * Get body part status for UI display.\n * \n * **Korean**: 신체부위 상태 조회\n * \n * Provides UI-friendly status information including color coding,\n * status text, and critical/disabled flags.\n * \n * @param health - Current body part health\n * @param maxHealth - Maximum health values\n * @param part - Body part to query\n * @returns Status information for display\n * \n * @public\n */\n getBodyPartStatus(\n health: BodyPartHealth,\n maxHealth: BodyPartMaxHealth,\n part: BodyPart\n ): BodyPartStatus {\n const current = health[part];\n const max = maxHealth[part];\n const percentage = current / max;\n\n // Determine status and color\n let status: KoreanText;\n let color: number;\n let critical: boolean;\n let disabled: boolean;\n\n if (percentage === 0) {\n status = { korean: \"무력화\", english: \"Disabled\" };\n color = KOREAN_COLORS.NEGATIVE_RED;\n critical = true;\n disabled = true;\n } else if (percentage < this.config.criticalThreshold) {\n status = { korean: \"치명적\", english: \"Critical\" };\n color = KOREAN_COLORS.NEGATIVE_RED;\n critical = true;\n disabled = false;\n } else if (percentage < this.config.severePenaltyThreshold) {\n status = { korean: \"심각\", english: \"Severe\" };\n color = KOREAN_COLORS.WARNING_ORANGE;\n critical = false;\n disabled = false;\n } else if (percentage < this.config.majorPenaltyThreshold) {\n status = { korean: \"중상\", english: \"Major\" };\n color = KOREAN_COLORS.WARNING_YELLOW;\n critical = false;\n disabled = false;\n } else if (percentage < this.config.minorPenaltyThreshold) {\n status = { korean: \"경상\", english: \"Minor\" };\n color = KOREAN_COLORS.HEALTH_FULL;\n critical = false;\n disabled = false;\n } else {\n status = { korean: \"정상\", english: \"Normal\" };\n color = KOREAN_COLORS.HEALTH_FULL;\n critical = false;\n disabled = false;\n }\n\n return {\n part,\n health: current,\n maxHealth: max,\n percentage,\n status,\n color,\n critical,\n disabled,\n };\n }\n\n /**\n * Get all body part statuses for UI.\n * \n * **Korean**: 모든 신체부위 상태 조회\n * \n * Returns status information for all body parts in a single call.\n * \n * @param health - Current body part health\n * @param maxHealth - Maximum health values\n * @returns Array of status information for all parts\n * \n * @public\n */\n getAllBodyPartStatuses(\n health: BodyPartHealth,\n maxHealth: BodyPartMaxHealth\n ): BodyPartStatus[] {\n return Object.values(BodyPart).map((part) =>\n this.getBodyPartStatus(health, maxHealth, part)\n );\n }\n\n /**\n * Heal a specific body part.\n * \n * **Korean**: 신체부위 치유\n * \n * Increases health of the specified body part by the heal amount.\n * Health is clamped to 0-maxHealth range.\n * \n * @param current - Current body part health\n * @param bodyPart - Body part to heal\n * @param healAmount - Amount of health to restore\n * @param maxHealth - Optional maximum health limits\n * @returns Updated body part health\n * \n * @public\n */\n healBodyPart(\n current: BodyPartHealth,\n bodyPart: BodyPart,\n healAmount: number,\n maxHealth?: BodyPartMaxHealth\n ): BodyPartHealth {\n const max = maxHealth ?? this.createDefaultMaxHealth();\n const newHealth = Math.min(max[bodyPart], current[bodyPart] + healAmount);\n\n return {\n ...current,\n [bodyPart]: newHealth,\n };\n }\n\n /**\n * Check if player is incapacitated based on body part health.\n * \n * **Korean**: 무력화 상태 확인\n * \n * Player is incapacitated if:\n * - Head is at 0 HP (unconscious)\n * - Both legs are at 0 HP (cannot move)\n * - Aggregate health below 10%\n * \n * @param health - Current body part health\n * @returns Whether player is incapacitated\n * \n * @public\n */\n isIncapacitated(health: BodyPartHealth): boolean {\n // Unconscious from head damage\n if (health.head <= 0) return true;\n\n // Cannot move from leg damage\n if (health.legLeft <= 0 && health.legRight <= 0) return true;\n\n // Aggregate health critical\n const aggregate = this.calculateAggregateHealth(health);\n if (aggregate < 10) return true;\n\n return false;\n }\n}\n\n/**\n * Singleton instance of Body Part Health System.\n * \n * **Korean**: 신체부위 체력 시스템 싱글톤\n * \n * Provides global access to the body part health system throughout the game.\n * \n * @public\n */\nexport const bodyPartHealthSystem = new BodyPartHealthSystem();\n"],"mappings":"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"}
1
+ {"version":3,"file":"BodyPartHealthSystem.js","names":[],"sources":["../../../src/systems/bodypart/BodyPartHealthSystem.ts"],"sourcesContent":["/**\n * Body Part Health System\n * \n * **Korean**: 신체부위 체력 시스템\n * \n * Manages body part-specific health tracking, damage distribution, and combat\n * capability effects. Implements realistic localized damage mechanics based on\n * Korean martial arts vital point targeting principles.\n * \n * ## System Features\n * \n * - Independent health tracking for 8 body parts\n * - Automatic combat capability penalties based on damage\n * - Damage distribution from hit locations to body parts\n * - UI-friendly status information generation\n * - Performance-optimized calculations\n * \n * @module systems/bodypart/BodyPartHealthSystem\n * @category Body Part System\n * @korean 신체부위체력시스템\n */\n\nimport { BodyRegion, KOREAN_COLORS, KoreanText } from \"@/types\";\nimport {\n BodyPart,\n BodyPartDamageDistribution,\n BodyPartEffects,\n BodyPartHealth,\n BodyPartHealthConfig,\n BodyPartMaxHealth,\n BodyPartStatus,\n BODY_PART_EFFECT_CONSTANTS,\n DEFAULT_BODY_PART_CONFIG,\n} from \"./types\";\n\n/**\n * Body Part Health System class.\n * \n * **Korean**: 신체부위 체력 시스템 클래스\n * \n * Provides methods for managing body part health, calculating effects,\n * and distributing damage based on hit locations.\n * \n * @example\n * ```typescript\n * const system = new BodyPartHealthSystem();\n * \n * // Create initial body part health\n * const health = system.createDefaultBodyPartHealth();\n * \n * // Apply damage to head\n * const damaged = system.applyDamageToBodyPart(\n * health,\n * BodyPart.HEAD,\n * 25\n * );\n * \n * // Calculate combat effects\n * const effects = system.calculateBodyPartEffects(damaged);\n * ```\n * \n * @category Body Part System\n */\nexport class BodyPartHealthSystem {\n private config: BodyPartHealthConfig;\n\n constructor(config: BodyPartHealthConfig = DEFAULT_BODY_PART_CONFIG) {\n this.config = config;\n }\n\n /**\n * Create default body part health with all parts at maximum.\n * \n * **Korean**: 기본 신체부위 체력 생성\n * \n * @param maxHealth - Optional custom max health per part (default: 100)\n * @returns Body part health structure with all parts at max HP\n * \n */\n createDefaultBodyPartHealth(maxHealth: number = 100): BodyPartHealth {\n return {\n head: maxHealth,\n neck: maxHealth,\n torsoUpper: maxHealth,\n torsoLower: maxHealth,\n armLeft: maxHealth,\n armRight: maxHealth,\n legLeft: maxHealth,\n legRight: maxHealth,\n };\n }\n\n /**\n * Create default maximum health values for body parts.\n * \n * **Korean**: 기본 최대 체력 생성\n * \n * @param baseMaxHealth - Base maximum health per part\n * @returns Maximum health structure\n * \n */\n createDefaultMaxHealth(baseMaxHealth: number = 100): BodyPartMaxHealth {\n return {\n head: baseMaxHealth,\n neck: baseMaxHealth,\n torsoUpper: baseMaxHealth,\n torsoLower: baseMaxHealth,\n armLeft: baseMaxHealth,\n armRight: baseMaxHealth,\n legLeft: baseMaxHealth,\n legRight: baseMaxHealth,\n };\n }\n\n /**\n * Apply damage to a specific body part.\n * \n * **Korean**: 신체부위 피해 적용\n * \n * Reduces health of the specified body part by the damage amount.\n * Health is clamped to 0-maxHealth range.\n * \n * @param current - Current body part health\n * @param bodyPart - Body part to damage\n * @param damage - Damage amount to apply\n * @param maxHealth - Optional maximum health limits\n * @returns Updated body part health\n * \n */\n applyDamageToBodyPart(\n current: BodyPartHealth,\n bodyPart: BodyPart,\n damage: number,\n maxHealth?: BodyPartMaxHealth\n ): BodyPartHealth {\n const newHealth = Math.max(0, current[bodyPart] - damage);\n const clampedHealth = maxHealth\n ? Math.min(newHealth, maxHealth[bodyPart])\n : newHealth;\n\n return {\n ...current,\n [bodyPart]: clampedHealth,\n };\n }\n\n /**\n * Distribute damage across body parts based on hit location.\n * \n * **Korean**: 피해 분배\n * \n * Maps a BodyRegion hit location to primary and secondary body parts,\n * distributing damage according to impact mechanics.\n * \n * @param bodyRegion - Hit location\n * @returns Damage distribution configuration\n * \n */\n getDamageDistribution(bodyRegion: BodyRegion): BodyPartDamageDistribution {\n switch (bodyRegion) {\n case BodyRegion.HEAD:\n return {\n primary: { part: BodyPart.HEAD, percentage: 0.9 },\n secondary: [{ part: BodyPart.NECK, percentage: 0.1 }],\n };\n\n case BodyRegion.NECK:\n return {\n primary: { part: BodyPart.NECK, percentage: 0.8 },\n secondary: [\n { part: BodyPart.HEAD, percentage: 0.1 },\n { part: BodyPart.TORSO_UPPER, percentage: 0.1 },\n ],\n };\n\n case BodyRegion.TORSO:\n return {\n primary: { part: BodyPart.TORSO_UPPER, percentage: 0.6 },\n secondary: [{ part: BodyPart.TORSO_LOWER, percentage: 0.4 }],\n };\n\n case BodyRegion.CORE:\n return {\n primary: { part: BodyPart.TORSO_LOWER, percentage: 0.7 },\n secondary: [{ part: BodyPart.TORSO_UPPER, percentage: 0.3 }],\n };\n\n case BodyRegion.LEFT_ARM:\n return {\n primary: { part: BodyPart.ARM_LEFT, percentage: 0.9 },\n secondary: [{ part: BodyPart.TORSO_UPPER, percentage: 0.1 }],\n };\n\n case BodyRegion.RIGHT_ARM:\n return {\n primary: { part: BodyPart.ARM_RIGHT, percentage: 0.9 },\n secondary: [{ part: BodyPart.TORSO_UPPER, percentage: 0.1 }],\n };\n\n case BodyRegion.LEFT_LEG:\n return {\n primary: { part: BodyPart.LEG_LEFT, percentage: 0.9 },\n secondary: [{ part: BodyPart.TORSO_LOWER, percentage: 0.1 }],\n };\n\n case BodyRegion.RIGHT_LEG:\n return {\n primary: { part: BodyPart.LEG_RIGHT, percentage: 0.9 },\n secondary: [{ part: BodyPart.TORSO_LOWER, percentage: 0.1 }],\n };\n\n default:\n // Default to torso upper for unknown regions\n return {\n primary: { part: BodyPart.TORSO_UPPER, percentage: 1.0 },\n secondary: [],\n };\n }\n }\n\n /**\n * Apply distributed damage to body parts from a hit.\n * \n * **Korean**: 분산 피해 적용\n * \n * Takes total damage and distributes it across primary and secondary\n * body parts based on the hit location.\n * \n * @param current - Current body part health\n * @param bodyRegion - Hit location\n * @param totalDamage - Total damage to distribute\n * @param maxHealth - Optional maximum health limits\n * @returns Updated body part health\n * \n */\n applyDistributedDamage(\n current: BodyPartHealth,\n bodyRegion: BodyRegion,\n totalDamage: number,\n maxHealth?: BodyPartMaxHealth\n ): BodyPartHealth {\n const distribution = this.getDamageDistribution(bodyRegion);\n let updated = { ...current };\n\n // Apply primary damage\n updated = this.applyDamageToBodyPart(\n updated,\n distribution.primary.part,\n totalDamage * distribution.primary.percentage,\n maxHealth\n );\n\n // Apply secondary damage\n for (const secondary of distribution.secondary) {\n updated = this.applyDamageToBodyPart(\n updated,\n secondary.part,\n totalDamage * secondary.percentage,\n maxHealth\n );\n }\n\n return updated;\n }\n\n /**\n * Calculate combat capability effects from body part damage.\n * \n * **Korean**: 전투 능력 효과 계산\n * \n * Analyzes body part health and returns multipliers for various combat\n * capabilities. Implements acceptance criteria:\n * - Head <50%: Consciousness penalties\n * - Torso <50%: Stamina regen -50%\n * - Arms <50%: Attack damage -30%\n * - Legs <50%: Movement speed -40%\n * \n * @param health - Current body part health\n * @param maxHealth - Maximum health values\n * @returns Combat capability effect multipliers\n * \n */\n calculateBodyPartEffects(\n health: BodyPartHealth,\n maxHealth?: BodyPartMaxHealth\n ): BodyPartEffects {\n const max = maxHealth ?? this.createDefaultMaxHealth();\n\n // Calculate head/neck effects on consciousness\n const headPercentage = health.head / max.head;\n const neckPercentage = health.neck / max.neck;\n const minHeadNeck = Math.min(headPercentage, neckPercentage);\n \n let consciousnessModifier = 1.0;\n if (minHeadNeck < BODY_PART_EFFECT_CONSTANTS.HEAD.CRITICAL_THRESHOLD) {\n consciousnessModifier = BODY_PART_EFFECT_CONSTANTS.HEAD.CONSCIOUSNESS_PENALTY_AT_50;\n }\n\n // Calculate torso effects on stamina regeneration\n const torsoUpperPercentage = health.torsoUpper / max.torsoUpper;\n const torsoLowerPercentage = health.torsoLower / max.torsoLower;\n const avgTorso = (torsoUpperPercentage + torsoLowerPercentage) / 2;\n \n let staminaRegenModifier = 1.0;\n if (avgTorso < BODY_PART_EFFECT_CONSTANTS.TORSO.CRITICAL_THRESHOLD) {\n staminaRegenModifier = BODY_PART_EFFECT_CONSTANTS.TORSO.STAMINA_REGEN_PENALTY_AT_50;\n }\n\n // Calculate arm effects on attack damage\n const armLeftPercentage = health.armLeft / max.armLeft;\n const armRightPercentage = health.armRight / max.armRight;\n const avgArms = (armLeftPercentage + armRightPercentage) / 2;\n \n let attackDamageModifier = 1.0;\n if (avgArms < BODY_PART_EFFECT_CONSTANTS.ARMS.CRITICAL_THRESHOLD) {\n attackDamageModifier = BODY_PART_EFFECT_CONSTANTS.ARMS.ATTACK_DAMAGE_PENALTY_AT_50;\n }\n\n // Calculate leg effects on movement speed\n const legLeftPercentage = health.legLeft / max.legLeft;\n const legRightPercentage = health.legRight / max.legRight;\n const avgLegs = (legLeftPercentage + legRightPercentage) / 2;\n \n let movementSpeedModifier = 1.0;\n if (avgLegs < BODY_PART_EFFECT_CONSTANTS.LEGS.CRITICAL_THRESHOLD) {\n movementSpeedModifier = BODY_PART_EFFECT_CONSTANTS.LEGS.MOVEMENT_SPEED_PENALTY_AT_50;\n }\n\n // Balance affected by torso and legs\n const balanceModifier = Math.min(avgTorso, avgLegs);\n\n // Technique accuracy affected by head and arms\n const techniqueAccuracyModifier = Math.min(headPercentage, avgArms);\n\n return {\n consciousnessModifier,\n staminaRegenModifier,\n attackDamageModifier,\n movementSpeedModifier,\n balanceModifier,\n techniqueAccuracyModifier,\n };\n }\n\n /**\n * Calculate aggregate health from body parts.\n * \n * **Korean**: 종합 체력 계산\n * \n * Computes overall health as average of all body part health values.\n * This maintains backwards compatibility with single health bar systems.\n * \n * @param health - Body part health\n * @returns Aggregate health value (0-100)\n * \n */\n calculateAggregateHealth(health: BodyPartHealth): number {\n const sum =\n health.head +\n health.neck +\n health.torsoUpper +\n health.torsoLower +\n health.armLeft +\n health.armRight +\n health.legLeft +\n health.legRight;\n\n return sum / 8;\n }\n\n /**\n * Get body part status for UI display.\n * \n * **Korean**: 신체부위 상태 조회\n * \n * Provides UI-friendly status information including color coding,\n * status text, and critical/disabled flags.\n * \n * @param health - Current body part health\n * @param maxHealth - Maximum health values\n * @param part - Body part to query\n * @returns Status information for display\n * \n */\n getBodyPartStatus(\n health: BodyPartHealth,\n maxHealth: BodyPartMaxHealth,\n part: BodyPart\n ): BodyPartStatus {\n const current = health[part];\n const max = maxHealth[part];\n const percentage = current / max;\n\n // Determine status and color\n let status: KoreanText;\n let color: number;\n let critical: boolean;\n let disabled: boolean;\n\n if (percentage === 0) {\n status = { korean: \"무력화\", english: \"Disabled\" };\n color = KOREAN_COLORS.NEGATIVE_RED;\n critical = true;\n disabled = true;\n } else if (percentage < this.config.criticalThreshold) {\n status = { korean: \"치명적\", english: \"Critical\" };\n color = KOREAN_COLORS.NEGATIVE_RED;\n critical = true;\n disabled = false;\n } else if (percentage < this.config.severePenaltyThreshold) {\n status = { korean: \"심각\", english: \"Severe\" };\n color = KOREAN_COLORS.WARNING_ORANGE;\n critical = false;\n disabled = false;\n } else if (percentage < this.config.majorPenaltyThreshold) {\n status = { korean: \"중상\", english: \"Major\" };\n color = KOREAN_COLORS.WARNING_YELLOW;\n critical = false;\n disabled = false;\n } else if (percentage < this.config.minorPenaltyThreshold) {\n status = { korean: \"경상\", english: \"Minor\" };\n color = KOREAN_COLORS.HEALTH_FULL;\n critical = false;\n disabled = false;\n } else {\n status = { korean: \"정상\", english: \"Normal\" };\n color = KOREAN_COLORS.HEALTH_FULL;\n critical = false;\n disabled = false;\n }\n\n return {\n part,\n health: current,\n maxHealth: max,\n percentage,\n status,\n color,\n critical,\n disabled,\n };\n }\n\n /**\n * Get all body part statuses for UI.\n * \n * **Korean**: 모든 신체부위 상태 조회\n * \n * Returns status information for all body parts in a single call.\n * \n * @param health - Current body part health\n * @param maxHealth - Maximum health values\n * @returns Array of status information for all parts\n * \n */\n getAllBodyPartStatuses(\n health: BodyPartHealth,\n maxHealth: BodyPartMaxHealth\n ): BodyPartStatus[] {\n return Object.values(BodyPart).map((part) =>\n this.getBodyPartStatus(health, maxHealth, part)\n );\n }\n\n /**\n * Heal a specific body part.\n * \n * **Korean**: 신체부위 치유\n * \n * Increases health of the specified body part by the heal amount.\n * Health is clamped to 0-maxHealth range.\n * \n * @param current - Current body part health\n * @param bodyPart - Body part to heal\n * @param healAmount - Amount of health to restore\n * @param maxHealth - Optional maximum health limits\n * @returns Updated body part health\n * \n */\n healBodyPart(\n current: BodyPartHealth,\n bodyPart: BodyPart,\n healAmount: number,\n maxHealth?: BodyPartMaxHealth\n ): BodyPartHealth {\n const max = maxHealth ?? this.createDefaultMaxHealth();\n const newHealth = Math.min(max[bodyPart], current[bodyPart] + healAmount);\n\n return {\n ...current,\n [bodyPart]: newHealth,\n };\n }\n\n /**\n * Check if player is incapacitated based on body part health.\n * \n * **Korean**: 무력화 상태 확인\n * \n * Player is incapacitated if:\n * - Head is at 0 HP (unconscious)\n * - Both legs are at 0 HP (cannot move)\n * - Aggregate health below 10%\n * \n * @param health - Current body part health\n * @returns Whether player is incapacitated\n * \n */\n isIncapacitated(health: BodyPartHealth): boolean {\n // Unconscious from head damage\n if (health.head <= 0) return true;\n\n // Cannot move from leg damage\n if (health.legLeft <= 0 && health.legRight <= 0) return true;\n\n // Aggregate health critical\n const aggregate = this.calculateAggregateHealth(health);\n if (aggregate < 10) return true;\n\n return false;\n }\n}\n\n/**\n * Singleton instance of Body Part Health System.\n * \n * **Korean**: 신체부위 체력 시스템 싱글톤\n * \n * Provides global access to the body part health system throughout the game.\n * \n */\nexport const bodyPartHealthSystem = new BodyPartHealthSystem();\n"],"mappings":"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"}
@@ -45,7 +45,6 @@ export declare const CHARACTER_DIMENSIONS: {
45
45
  * @param bodyPart - Body part to get position for
46
46
  * @returns 3D position vector
47
47
  *
48
- * @public
49
48
  */
50
49
  export declare function getBodyPartPosition(bodyPart: BodyPart): THREE.Vector3;
51
50
  /**
@@ -56,7 +55,6 @@ export declare function getBodyPartPosition(bodyPart: BodyPart): THREE.Vector3;
56
55
  * @param bodyRegion - Body region to get position for
57
56
  * @returns 3D position vector
58
57
  *
59
- * @public
60
58
  */
61
59
  export declare function getBodyRegionPosition(bodyRegion: BodyRegion): THREE.Vector3;
62
60
  /**
@@ -67,7 +65,6 @@ export declare function getBodyRegionPosition(bodyRegion: BodyRegion): THREE.Vec
67
65
  * @param bodyRegion - Body region to map
68
66
  * @returns Corresponding body part
69
67
  *
70
- * @public
71
68
  */
72
69
  export declare function mapBodyRegionToBodyPart(bodyRegion: BodyRegion): BodyPart;
73
70
  /**
@@ -82,7 +79,6 @@ export declare function mapBodyRegionToBodyPart(bodyRegion: BodyRegion): BodyPar
82
79
  * @param maxOffset - Maximum offset in any direction (default: 0.1)
83
80
  * @returns New position with random offset
84
81
  *
85
- * @public
86
82
  */
87
83
  export declare function addRandomOffset(basePosition: THREE.Vector3, maxOffset?: number): THREE.Vector3;
88
84
  /**
@@ -97,7 +93,6 @@ export declare function addRandomOffset(basePosition: THREE.Vector3, maxOffset?:
97
93
  * @param maxOffset - Maximum offset for randomization
98
94
  * @returns Position with random offset
99
95
  *
100
- * @public
101
96
  */
102
97
  export declare function getInjuryPositionWithOffset(bodyRegion: BodyRegion, maxOffset?: number): THREE.Vector3;
103
98
  /**
@@ -110,7 +105,6 @@ export declare function getInjuryPositionWithOffset(bodyRegion: BodyRegion, maxO
110
105
  * @param tolerance - Distance tolerance (default: 0.3)
111
106
  * @returns Whether position is within body part bounds
112
107
  *
113
- * @public
114
108
  */
115
109
  export declare function isPositionInBodyPart(position: THREE.Vector3, bodyPart: BodyPart, tolerance?: number): boolean;
116
110
  //# sourceMappingURL=BodyPartPositionMapping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BodyPartPositionMapping.d.ts","sourceRoot":"","sources":["../../../src/systems/bodypart/BodyPartPositionMapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;IAC/B,qCAAqC;;IAErC,yBAAyB;;IAEzB,mBAAmB;;IAEnB,iBAAiB;;IAEjB,iBAAiB;;IAEjB,kBAAkB;;CAEV,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAsCrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,OAAO,CAwC3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CA8BxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,KAAK,CAAC,OAAO,EAC3B,SAAS,GAAE,MAAY,GACtB,KAAK,CAAC,OAAO,CAQf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,MAAY,GACtB,KAAK,CAAC,OAAO,CAGf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,KAAK,CAAC,OAAO,EACvB,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,MAAY,GACtB,OAAO,CAIT"}
1
+ {"version":3,"file":"BodyPartPositionMapping.d.ts","sourceRoot":"","sources":["../../../src/systems/bodypart/BodyPartPositionMapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;IAC/B,qCAAqC;;IAErC,yBAAyB;;IAEzB,mBAAmB;;IAEnB,iBAAiB;;IAEjB,iBAAiB;;IAEjB,kBAAkB;;CAEV,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAsCrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,OAAO,CAwC3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CA8BxE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,KAAK,CAAC,OAAO,EAC3B,SAAS,GAAE,MAAY,GACtB,KAAK,CAAC,OAAO,CAQf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,MAAY,GACtB,KAAK,CAAC,OAAO,CAGf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,KAAK,CAAC,OAAO,EACvB,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,MAAY,GACtB,OAAO,CAIT"}
@@ -46,7 +46,6 @@ var CHARACTER_DIMENSIONS = {
46
46
  * @param bodyPart - Body part to get position for
47
47
  * @returns 3D position vector
48
48
  *
49
- * @public
50
49
  */
51
50
  function getBodyPartPosition(bodyPart) {
52
51
  const headY = CHARACTER_DIMENSIONS.HEIGHT - CHARACTER_DIMENSIONS.HEAD_HEIGHT / 2;
@@ -75,7 +74,6 @@ function getBodyPartPosition(bodyPart) {
75
74
  * @param bodyRegion - Body region to get position for
76
75
  * @returns 3D position vector
77
76
  *
78
- * @public
79
77
  */
80
78
  function getBodyRegionPosition(bodyRegion) {
81
79
  const { HEIGHT, LEG_LENGTH, SHOULDER_WIDTH } = CHARACTER_DIMENSIONS;
@@ -105,7 +103,6 @@ function getBodyRegionPosition(bodyRegion) {
105
103
  * @param bodyRegion - Body region to map
106
104
  * @returns Corresponding body part
107
105
  *
108
- * @public
109
106
  */
110
107
  function mapBodyRegionToBodyPart(bodyRegion) {
111
108
  switch (bodyRegion) {
@@ -132,7 +129,6 @@ function mapBodyRegionToBodyPart(bodyRegion) {
132
129
  * @param maxOffset - Maximum offset in any direction (default: 0.1)
133
130
  * @returns New position with random offset
134
131
  *
135
- * @public
136
132
  */
137
133
  function addRandomOffset(basePosition, maxOffset = .1) {
138
134
  const offset = new THREE.Vector3((Math.random() - .5) * maxOffset * 2, (Math.random() - .5) * maxOffset * 2, (Math.random() - .5) * maxOffset * 2);
@@ -150,7 +146,6 @@ function addRandomOffset(basePosition, maxOffset = .1) {
150
146
  * @param maxOffset - Maximum offset for randomization
151
147
  * @returns Position with random offset
152
148
  *
153
- * @public
154
149
  */
155
150
  function getInjuryPositionWithOffset(bodyRegion, maxOffset = .1) {
156
151
  return addRandomOffset(getBodyRegionPosition(bodyRegion), maxOffset);
@@ -165,7 +160,6 @@ function getInjuryPositionWithOffset(bodyRegion, maxOffset = .1) {
165
160
  * @param tolerance - Distance tolerance (default: 0.3)
166
161
  * @returns Whether position is within body part bounds
167
162
  *
168
- * @public
169
163
  */
170
164
  function isPositionInBodyPart(position, bodyPart, tolerance = .3) {
171
165
  const partPosition = getBodyPartPosition(bodyPart);
@@ -1 +1 @@
1
- {"version":3,"file":"BodyPartPositionMapping.js","names":[],"sources":["../../../src/systems/bodypart/BodyPartPositionMapping.ts"],"sourcesContent":["/**\n * Body Part Position Mapping Utilities\n * \n * **Korean**: 신체 부위 위치 매핑 유틸리티\n * \n * Maps body regions and body parts to 3D positions on character models\n * for accurate trauma visualization placement.\n * \n * @module systems/bodypart/BodyPartPositionMapping\n * @category Body Part System\n * @korean 신체부위위치매핑\n */\n\nimport * as THREE from \"three\";\nimport { BodyPart } from \"./types\";\nimport { BodyRegion } from \"../../types/common\";\n\n/**\n * Standard character model dimensions.\n * \n * Based on average human proportions scaled for game character.\n * Character center is at [0, 0, 0], standing upright.\n */\nexport const CHARACTER_DIMENSIONS = {\n /** Total height from feet to head */\n HEIGHT: 2.0,\n /** Width at shoulders */\n SHOULDER_WIDTH: 0.6,\n /** Torso height */\n TORSO_HEIGHT: 0.8,\n /** Leg length */\n LEG_LENGTH: 1.0,\n /** Arm length */\n ARM_LENGTH: 0.7,\n /** Head height */\n HEAD_HEIGHT: 0.3,\n} as const;\n\n/**\n * Get 3D position for a body part on character model.\n * \n * **Korean**: 신체 부위 3D 위치 가져오기\n * \n * Returns center position of the body part relative to character origin.\n * Character is centered at [0, 0, 0] standing upright.\n * Positions are calculated from CHARACTER_DIMENSIONS for consistency.\n * \n * @param bodyPart - Body part to get position for\n * @returns 3D position vector\n * \n * @public\n */\nexport function getBodyPartPosition(bodyPart: BodyPart): THREE.Vector3 {\n // Calculate positions from CHARACTER_DIMENSIONS\n const headY = CHARACTER_DIMENSIONS.HEIGHT - CHARACTER_DIMENSIONS.HEAD_HEIGHT / 2;\n const neckY = CHARACTER_DIMENSIONS.HEIGHT - CHARACTER_DIMENSIONS.HEAD_HEIGHT;\n const torsoTop = neckY - CHARACTER_DIMENSIONS.TORSO_HEIGHT / 3;\n const torsoBottom = neckY - (2 * CHARACTER_DIMENSIONS.TORSO_HEIGHT) / 3;\n const armY = neckY - CHARACTER_DIMENSIONS.TORSO_HEIGHT / 3;\n const legY = CHARACTER_DIMENSIONS.LEG_LENGTH / 2;\n \n switch (bodyPart) {\n case BodyPart.HEAD:\n return new THREE.Vector3(0, headY, 0);\n\n case BodyPart.NECK:\n return new THREE.Vector3(0, neckY, 0);\n\n case BodyPart.TORSO_UPPER:\n return new THREE.Vector3(0, torsoTop, 0);\n\n case BodyPart.TORSO_LOWER:\n return new THREE.Vector3(0, torsoBottom, 0);\n\n case BodyPart.ARM_LEFT:\n return new THREE.Vector3(-CHARACTER_DIMENSIONS.SHOULDER_WIDTH / 2, armY, 0);\n\n case BodyPart.ARM_RIGHT:\n return new THREE.Vector3(CHARACTER_DIMENSIONS.SHOULDER_WIDTH / 2, armY, 0);\n\n case BodyPart.LEG_LEFT:\n return new THREE.Vector3(-CHARACTER_DIMENSIONS.SHOULDER_WIDTH / 4, legY, 0);\n\n case BodyPart.LEG_RIGHT:\n return new THREE.Vector3(CHARACTER_DIMENSIONS.SHOULDER_WIDTH / 4, legY, 0);\n\n default:\n // Default to torso center\n return new THREE.Vector3(0, CHARACTER_DIMENSIONS.HEIGHT / 2, 0);\n }\n}\n\n/**\n * Get 3D position for a body region on character model.\n * \n * **Korean**: 신체 영역 3D 위치 가져오기\n * \n * @param bodyRegion - Body region to get position for\n * @returns 3D position vector\n * \n * @public\n */\nexport function getBodyRegionPosition(bodyRegion: BodyRegion): THREE.Vector3 {\n // Calculate positions based on CHARACTER_DIMENSIONS for single source of truth\n const { HEIGHT, LEG_LENGTH, SHOULDER_WIDTH } = CHARACTER_DIMENSIONS;\n \n const headY = HEIGHT * 0.9; // 1.8 for HEIGHT 2.0\n const neckY = HEIGHT * 0.8; // 1.6 for HEIGHT 2.0\n const torsoY = HEIGHT * 0.6; // 1.2 for HEIGHT 2.0\n const coreY = HEIGHT * 0.45; // 0.9 for HEIGHT 2.0\n const armY = torsoY; // Arms at torso level\n const legY = LEG_LENGTH * 0.4; // 0.4 for LEG_LENGTH 1.0\n\n switch (bodyRegion) {\n case BodyRegion.HEAD:\n return new THREE.Vector3(0, headY, 0);\n\n case BodyRegion.NECK:\n return new THREE.Vector3(0, neckY, 0);\n\n case BodyRegion.TORSO:\n return new THREE.Vector3(0, torsoY, 0);\n\n case BodyRegion.CORE:\n return new THREE.Vector3(0, coreY, 0);\n\n case BodyRegion.LEFT_ARM:\n return new THREE.Vector3(-SHOULDER_WIDTH / 2, armY, 0);\n\n case BodyRegion.RIGHT_ARM:\n return new THREE.Vector3(SHOULDER_WIDTH / 2, armY, 0);\n\n case BodyRegion.LEFT_LEG:\n return new THREE.Vector3(-SHOULDER_WIDTH * 0.25, legY, 0);\n\n case BodyRegion.RIGHT_LEG:\n return new THREE.Vector3(SHOULDER_WIDTH * 0.25, legY, 0);\n\n default:\n // Default to torso center\n return new THREE.Vector3(0, torsoY, 0);\n }\n}\n\n/**\n * Map BodyRegion to corresponding BodyPart.\n * \n * **Korean**: 신체 영역을 신체 부위로 매핑\n * \n * @param bodyRegion - Body region to map\n * @returns Corresponding body part\n * \n * @public\n */\nexport function mapBodyRegionToBodyPart(bodyRegion: BodyRegion): BodyPart {\n switch (bodyRegion) {\n case BodyRegion.HEAD:\n return BodyPart.HEAD;\n\n case BodyRegion.NECK:\n return BodyPart.NECK;\n\n case BodyRegion.TORSO:\n return BodyPart.TORSO_UPPER;\n\n case BodyRegion.CORE:\n return BodyPart.TORSO_LOWER;\n\n case BodyRegion.LEFT_ARM:\n return BodyPart.ARM_LEFT;\n\n case BodyRegion.RIGHT_ARM:\n return BodyPart.ARM_RIGHT;\n\n case BodyRegion.LEFT_LEG:\n return BodyPart.LEG_LEFT;\n\n case BodyRegion.RIGHT_LEG:\n return BodyPart.LEG_RIGHT;\n\n default:\n // Default to upper torso\n return BodyPart.TORSO_UPPER;\n }\n}\n\n/**\n * Add random offset to position for varied injury placement.\n * \n * **Korean**: 부상 위치에 무작위 오프셋 추가\n * \n * Adds slight randomness to injury positions to avoid exact overlap\n * and create more realistic trauma distribution.\n * \n * @param basePosition - Base position to offset from\n * @param maxOffset - Maximum offset in any direction (default: 0.1)\n * @returns New position with random offset\n * \n * @public\n */\nexport function addRandomOffset(\n basePosition: THREE.Vector3,\n maxOffset: number = 0.1\n): THREE.Vector3 {\n const offset = new THREE.Vector3(\n (Math.random() - 0.5) * maxOffset * 2,\n (Math.random() - 0.5) * maxOffset * 2,\n (Math.random() - 0.5) * maxOffset * 2\n );\n\n return basePosition.clone().add(offset);\n}\n\n/**\n * Get injury position with slight randomization.\n * \n * **Korean**: 무작위 오프셋이 포함된 부상 위치 가져오기\n * \n * Convenience function that combines region-to-position mapping\n * with random offset for natural injury placement.\n * \n * @param bodyRegion - Body region that was hit\n * @param maxOffset - Maximum offset for randomization\n * @returns Position with random offset\n * \n * @public\n */\nexport function getInjuryPositionWithOffset(\n bodyRegion: BodyRegion,\n maxOffset: number = 0.1\n): THREE.Vector3 {\n const basePosition = getBodyRegionPosition(bodyRegion);\n return addRandomOffset(basePosition, maxOffset);\n}\n\n/**\n * Check if position is within body part bounds.\n * \n * **Korean**: 위치가 신체 부위 경계 내에 있는지 확인\n * \n * @param position - Position to check\n * @param bodyPart - Body part to check against\n * @param tolerance - Distance tolerance (default: 0.3)\n * @returns Whether position is within body part bounds\n * \n * @public\n */\nexport function isPositionInBodyPart(\n position: THREE.Vector3,\n bodyPart: BodyPart,\n tolerance: number = 0.3\n): boolean {\n const partPosition = getBodyPartPosition(bodyPart);\n const distance = position.distanceTo(partPosition);\n return distance <= tolerance;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"BodyPartPositionMapping.js","names":[],"sources":["../../../src/systems/bodypart/BodyPartPositionMapping.ts"],"sourcesContent":["/**\n * Body Part Position Mapping Utilities\n * \n * **Korean**: 신체 부위 위치 매핑 유틸리티\n * \n * Maps body regions and body parts to 3D positions on character models\n * for accurate trauma visualization placement.\n * \n * @module systems/bodypart/BodyPartPositionMapping\n * @category Body Part System\n * @korean 신체부위위치매핑\n */\n\nimport * as THREE from \"three\";\nimport { BodyPart } from \"./types\";\nimport { BodyRegion } from \"../../types/common\";\n\n/**\n * Standard character model dimensions.\n * \n * Based on average human proportions scaled for game character.\n * Character center is at [0, 0, 0], standing upright.\n */\nexport const CHARACTER_DIMENSIONS = {\n /** Total height from feet to head */\n HEIGHT: 2.0,\n /** Width at shoulders */\n SHOULDER_WIDTH: 0.6,\n /** Torso height */\n TORSO_HEIGHT: 0.8,\n /** Leg length */\n LEG_LENGTH: 1.0,\n /** Arm length */\n ARM_LENGTH: 0.7,\n /** Head height */\n HEAD_HEIGHT: 0.3,\n} as const;\n\n/**\n * Get 3D position for a body part on character model.\n * \n * **Korean**: 신체 부위 3D 위치 가져오기\n * \n * Returns center position of the body part relative to character origin.\n * Character is centered at [0, 0, 0] standing upright.\n * Positions are calculated from CHARACTER_DIMENSIONS for consistency.\n * \n * @param bodyPart - Body part to get position for\n * @returns 3D position vector\n * \n */\nexport function getBodyPartPosition(bodyPart: BodyPart): THREE.Vector3 {\n // Calculate positions from CHARACTER_DIMENSIONS\n const headY = CHARACTER_DIMENSIONS.HEIGHT - CHARACTER_DIMENSIONS.HEAD_HEIGHT / 2;\n const neckY = CHARACTER_DIMENSIONS.HEIGHT - CHARACTER_DIMENSIONS.HEAD_HEIGHT;\n const torsoTop = neckY - CHARACTER_DIMENSIONS.TORSO_HEIGHT / 3;\n const torsoBottom = neckY - (2 * CHARACTER_DIMENSIONS.TORSO_HEIGHT) / 3;\n const armY = neckY - CHARACTER_DIMENSIONS.TORSO_HEIGHT / 3;\n const legY = CHARACTER_DIMENSIONS.LEG_LENGTH / 2;\n \n switch (bodyPart) {\n case BodyPart.HEAD:\n return new THREE.Vector3(0, headY, 0);\n\n case BodyPart.NECK:\n return new THREE.Vector3(0, neckY, 0);\n\n case BodyPart.TORSO_UPPER:\n return new THREE.Vector3(0, torsoTop, 0);\n\n case BodyPart.TORSO_LOWER:\n return new THREE.Vector3(0, torsoBottom, 0);\n\n case BodyPart.ARM_LEFT:\n return new THREE.Vector3(-CHARACTER_DIMENSIONS.SHOULDER_WIDTH / 2, armY, 0);\n\n case BodyPart.ARM_RIGHT:\n return new THREE.Vector3(CHARACTER_DIMENSIONS.SHOULDER_WIDTH / 2, armY, 0);\n\n case BodyPart.LEG_LEFT:\n return new THREE.Vector3(-CHARACTER_DIMENSIONS.SHOULDER_WIDTH / 4, legY, 0);\n\n case BodyPart.LEG_RIGHT:\n return new THREE.Vector3(CHARACTER_DIMENSIONS.SHOULDER_WIDTH / 4, legY, 0);\n\n default:\n // Default to torso center\n return new THREE.Vector3(0, CHARACTER_DIMENSIONS.HEIGHT / 2, 0);\n }\n}\n\n/**\n * Get 3D position for a body region on character model.\n * \n * **Korean**: 신체 영역 3D 위치 가져오기\n * \n * @param bodyRegion - Body region to get position for\n * @returns 3D position vector\n * \n */\nexport function getBodyRegionPosition(bodyRegion: BodyRegion): THREE.Vector3 {\n // Calculate positions based on CHARACTER_DIMENSIONS for single source of truth\n const { HEIGHT, LEG_LENGTH, SHOULDER_WIDTH } = CHARACTER_DIMENSIONS;\n \n const headY = HEIGHT * 0.9; // 1.8 for HEIGHT 2.0\n const neckY = HEIGHT * 0.8; // 1.6 for HEIGHT 2.0\n const torsoY = HEIGHT * 0.6; // 1.2 for HEIGHT 2.0\n const coreY = HEIGHT * 0.45; // 0.9 for HEIGHT 2.0\n const armY = torsoY; // Arms at torso level\n const legY = LEG_LENGTH * 0.4; // 0.4 for LEG_LENGTH 1.0\n\n switch (bodyRegion) {\n case BodyRegion.HEAD:\n return new THREE.Vector3(0, headY, 0);\n\n case BodyRegion.NECK:\n return new THREE.Vector3(0, neckY, 0);\n\n case BodyRegion.TORSO:\n return new THREE.Vector3(0, torsoY, 0);\n\n case BodyRegion.CORE:\n return new THREE.Vector3(0, coreY, 0);\n\n case BodyRegion.LEFT_ARM:\n return new THREE.Vector3(-SHOULDER_WIDTH / 2, armY, 0);\n\n case BodyRegion.RIGHT_ARM:\n return new THREE.Vector3(SHOULDER_WIDTH / 2, armY, 0);\n\n case BodyRegion.LEFT_LEG:\n return new THREE.Vector3(-SHOULDER_WIDTH * 0.25, legY, 0);\n\n case BodyRegion.RIGHT_LEG:\n return new THREE.Vector3(SHOULDER_WIDTH * 0.25, legY, 0);\n\n default:\n // Default to torso center\n return new THREE.Vector3(0, torsoY, 0);\n }\n}\n\n/**\n * Map BodyRegion to corresponding BodyPart.\n * \n * **Korean**: 신체 영역을 신체 부위로 매핑\n * \n * @param bodyRegion - Body region to map\n * @returns Corresponding body part\n * \n */\nexport function mapBodyRegionToBodyPart(bodyRegion: BodyRegion): BodyPart {\n switch (bodyRegion) {\n case BodyRegion.HEAD:\n return BodyPart.HEAD;\n\n case BodyRegion.NECK:\n return BodyPart.NECK;\n\n case BodyRegion.TORSO:\n return BodyPart.TORSO_UPPER;\n\n case BodyRegion.CORE:\n return BodyPart.TORSO_LOWER;\n\n case BodyRegion.LEFT_ARM:\n return BodyPart.ARM_LEFT;\n\n case BodyRegion.RIGHT_ARM:\n return BodyPart.ARM_RIGHT;\n\n case BodyRegion.LEFT_LEG:\n return BodyPart.LEG_LEFT;\n\n case BodyRegion.RIGHT_LEG:\n return BodyPart.LEG_RIGHT;\n\n default:\n // Default to upper torso\n return BodyPart.TORSO_UPPER;\n }\n}\n\n/**\n * Add random offset to position for varied injury placement.\n * \n * **Korean**: 부상 위치에 무작위 오프셋 추가\n * \n * Adds slight randomness to injury positions to avoid exact overlap\n * and create more realistic trauma distribution.\n * \n * @param basePosition - Base position to offset from\n * @param maxOffset - Maximum offset in any direction (default: 0.1)\n * @returns New position with random offset\n * \n */\nexport function addRandomOffset(\n basePosition: THREE.Vector3,\n maxOffset: number = 0.1\n): THREE.Vector3 {\n const offset = new THREE.Vector3(\n (Math.random() - 0.5) * maxOffset * 2,\n (Math.random() - 0.5) * maxOffset * 2,\n (Math.random() - 0.5) * maxOffset * 2\n );\n\n return basePosition.clone().add(offset);\n}\n\n/**\n * Get injury position with slight randomization.\n * \n * **Korean**: 무작위 오프셋이 포함된 부상 위치 가져오기\n * \n * Convenience function that combines region-to-position mapping\n * with random offset for natural injury placement.\n * \n * @param bodyRegion - Body region that was hit\n * @param maxOffset - Maximum offset for randomization\n * @returns Position with random offset\n * \n */\nexport function getInjuryPositionWithOffset(\n bodyRegion: BodyRegion,\n maxOffset: number = 0.1\n): THREE.Vector3 {\n const basePosition = getBodyRegionPosition(bodyRegion);\n return addRandomOffset(basePosition, maxOffset);\n}\n\n/**\n * Check if position is within body part bounds.\n * \n * **Korean**: 위치가 신체 부위 경계 내에 있는지 확인\n * \n * @param position - Position to check\n * @param bodyPart - Body part to check against\n * @param tolerance - Distance tolerance (default: 0.3)\n * @returns Whether position is within body part bounds\n * \n */\nexport function isPositionInBodyPart(\n position: THREE.Vector3,\n bodyPart: BodyPart,\n tolerance: number = 0.3\n): boolean {\n const partPosition = getBodyPartPosition(bodyPart);\n const distance = position.distanceTo(partPosition);\n return distance <= tolerance;\n}\n"],"mappings":"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"}
@@ -18,7 +18,6 @@ import { InjuryTracker } from "./InjuryTracker";
18
18
  *
19
19
  * **Korean**: 전투 피해 이벤트 데이터
20
20
  *
21
- * @public
22
21
  */
23
22
  export interface CombatDamageEvent {
24
23
  /** Damage amount (0-100) */
@@ -35,7 +34,6 @@ export interface CombatDamageEvent {
35
34
  /**
36
35
  * Configuration for combat injury integration.
37
36
  *
38
- * @public
39
37
  */
40
38
  export interface CombatInjuryConfig {
41
39
  /** Enable automatic injury tracking */
@@ -56,7 +54,6 @@ export interface CombatInjuryConfig {
56
54
  * Note: A valid `tracker` must still be supplied by the caller.
57
55
  * This provides defaults for other configuration values only.
58
56
  *
59
- * @public
60
57
  */
61
58
  export declare const DEFAULT_COMBAT_INJURY_CONFIG: Omit<CombatInjuryConfig, 'tracker'>;
62
59
  /**
@@ -90,7 +87,6 @@ export declare const DEFAULT_COMBAT_INJURY_CONFIG: Omit<CombatInjuryConfig, 'tra
90
87
  * const injuries = handler.getInjuries();
91
88
  * ```
92
89
  *
93
- * @public
94
90
  */
95
91
  export declare class CombatInjuryIntegration {
96
92
  private tracker;
@@ -107,7 +103,6 @@ export declare class CombatInjuryIntegration {
107
103
  * @param event - Combat damage event
108
104
  * @returns Whether injury was recorded (false if damage too low)
109
105
  *
110
- * @public
111
106
  */
112
107
  recordCombatDamage(event: CombatDamageEvent): boolean;
113
108
  /**
@@ -118,7 +113,6 @@ export declare class CombatInjuryIntegration {
118
113
  * @param damage - Damage amount
119
114
  * @returns Whether to show blood effects
120
115
  *
121
- * @public
122
116
  */
123
117
  shouldShowBloodEffect(damage: number): boolean;
124
118
  /**
@@ -139,7 +133,6 @@ export declare class CombatInjuryIntegration {
139
133
  *
140
134
  * @returns Array of injuries
141
135
  *
142
- * @public
143
136
  */
144
137
  getInjuries(): import("./InjuryTracker").InjuryLocation[];
145
138
  /**
@@ -147,7 +140,6 @@ export declare class CombatInjuryIntegration {
147
140
  *
148
141
  * @returns InjuryTracker instance
149
142
  *
150
- * @public
151
143
  */
152
144
  getTracker(): InjuryTracker;
153
145
  /**
@@ -155,7 +147,6 @@ export declare class CombatInjuryIntegration {
155
147
  *
156
148
  * **Korean**: 모든 부상 초기화
157
149
  *
158
- * @public
159
150
  */
160
151
  clearInjuries(): void;
161
152
  /**
@@ -163,7 +154,6 @@ export declare class CombatInjuryIntegration {
163
154
  *
164
155
  * **Korean**: 만료된 부상 제거
165
156
  *
166
- * @public
167
157
  */
168
158
  removeExpiredInjuries(): void;
169
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CombatInjuryIntegration.d.ts","sourceRoot":"","sources":["../../../src/systems/bodypart/CombatInjuryIntegration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,kBAAkB;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IAClC,qCAAqC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAInE,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,kBAAkB;IAMtC;;;;;;;;;;;;OAYG;IACH,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAgCrD;;;;;;;;;OASG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI9C;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IA0B/B;;;;;;;;OAQG;IACH,WAAW;IAIX;;;;;;OAMG;IACH,UAAU,IAAI,aAAa;IAI3B;;;;;;OAMG;IACH,aAAa,IAAI,IAAI;IAIrB;;;;;;OAMG;IACH,qBAAqB,IAAI,IAAI;CAG9B"}
1
+ {"version":3,"file":"CombatInjuryIntegration.d.ts","sourceRoot":"","sources":["../../../src/systems/bodypart/CombatInjuryIntegration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,kBAAkB;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IAClC,qCAAqC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAInE,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,kBAAkB;IAMtC;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAgCrD;;;;;;;;OAQG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI9C;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IA0B/B;;;;;;;OAOG;IACH,WAAW;IAIX;;;;;OAKG;IACH,UAAU,IAAI,aAAa;IAI3B;;;;;OAKG;IACH,aAAa,IAAI,IAAI;IAIrB;;;;;OAKG;IACH,qBAAqB,IAAI,IAAI;CAG9B"}
@@ -8,7 +8,6 @@ import { getInjuryPositionWithOffset, mapBodyRegionToBodyPart } from "./BodyPart
8
8
  * Note: A valid `tracker` must still be supplied by the caller.
9
9
  * This provides defaults for other configuration values only.
10
10
  *
11
- * @public
12
11
  */
13
12
  var DEFAULT_COMBAT_INJURY_CONFIG = {
14
13
  enabled: true,
@@ -46,7 +45,6 @@ var DEFAULT_COMBAT_INJURY_CONFIG = {
46
45
  * const injuries = handler.getInjuries();
47
46
  * ```
48
47
  *
49
- * @public
50
48
  */
51
49
  var CombatInjuryIntegration = class {
52
50
  tracker;
@@ -66,7 +64,6 @@ var CombatInjuryIntegration = class {
66
64
  * @param event - Combat damage event
67
65
  * @returns Whether injury was recorded (false if damage too low)
68
66
  *
69
- * @public
70
67
  */
71
68
  recordCombatDamage(event) {
72
69
  if (!this.config.enabled) return false;
@@ -84,7 +81,6 @@ var CombatInjuryIntegration = class {
84
81
  * @param damage - Damage amount
85
82
  * @returns Whether to show blood effects
86
83
  *
87
- * @public
88
84
  */
89
85
  shouldShowBloodEffect(damage) {
90
86
  return damage > this.config.bloodThreshold;
@@ -119,7 +115,6 @@ var CombatInjuryIntegration = class {
119
115
  *
120
116
  * @returns Array of injuries
121
117
  *
122
- * @public
123
118
  */
124
119
  getInjuries() {
125
120
  return this.tracker.getInjuries();
@@ -129,7 +124,6 @@ var CombatInjuryIntegration = class {
129
124
  *
130
125
  * @returns InjuryTracker instance
131
126
  *
132
- * @public
133
127
  */
134
128
  getTracker() {
135
129
  return this.tracker;
@@ -139,7 +133,6 @@ var CombatInjuryIntegration = class {
139
133
  *
140
134
  * **Korean**: 모든 부상 초기화
141
135
  *
142
- * @public
143
136
  */
144
137
  clearInjuries() {
145
138
  this.tracker.clearInjuries();
@@ -149,7 +142,6 @@ var CombatInjuryIntegration = class {
149
142
  *
150
143
  * **Korean**: 만료된 부상 제거
151
144
  *
152
- * @public
153
145
  */
154
146
  removeExpiredInjuries() {
155
147
  this.tracker.removeExpiredInjuries();
@@ -1 +1 @@
1
- {"version":3,"file":"CombatInjuryIntegration.js","names":[],"sources":["../../../src/systems/bodypart/CombatInjuryIntegration.ts"],"sourcesContent":["/**\n * Combat Injury Integration\n * \n * **Korean**: 전투 부상 통합\n * \n * Integrates InjuryTracker with combat damage events to automatically\n * record injuries and trigger visual trauma effects during combat.\n * \n * @module systems/bodypart/CombatInjuryIntegration\n * @category Body Part System\n * @korean 전투부상통합\n */\n\nimport * as THREE from \"three\";\nimport { BodyRegion, DamageType } from \"../../types/common\";\nimport { InjuryTracker } from \"./InjuryTracker\";\nimport {\n getInjuryPositionWithOffset,\n mapBodyRegionToBodyPart,\n} from \"./BodyPartPositionMapping\";\nimport { InjuryType } from \"../../types/injury\";\n\n/**\n * Combat damage event data.\n * \n * **Korean**: 전투 피해 이벤트 데이터\n * \n * @public\n */\nexport interface CombatDamageEvent {\n /** Damage amount (0-100) */\n readonly damage: number;\n /** Body region hit */\n readonly bodyRegion: BodyRegion;\n /** Damage type */\n readonly damageType?: DamageType;\n /** Optional specific position override */\n readonly position?: THREE.Vector3;\n /** Whether this is a critical hit */\n readonly isCritical?: boolean;\n}\n\n/**\n * Configuration for combat injury integration.\n * \n * @public\n */\nexport interface CombatInjuryConfig {\n /** Enable automatic injury tracking */\n readonly enabled: boolean;\n /** Minimum damage to create injury */\n readonly minDamage: number;\n /** Damage threshold for blood effects */\n readonly bloodThreshold: number;\n /** \n * InjuryTracker instance to use for this integration.\n * Must be explicitly provided per character; singleton usage is no longer supported.\n */\n readonly tracker: InjuryTracker;\n}\n\n/**\n * Default combat injury configuration.\n * \n * Note: A valid `tracker` must still be supplied by the caller.\n * This provides defaults for other configuration values only.\n * \n * @public\n */\nexport const DEFAULT_COMBAT_INJURY_CONFIG: Omit<CombatInjuryConfig, 'tracker'> = {\n enabled: true,\n minDamage: 5,\n bloodThreshold: 30,\n} as const;\n\n/**\n * Combat Injury Integration Handler.\n * \n * **Korean**: 전투 부상 통합 핸들러\n * \n * Processes combat damage events and records injuries for visualization.\n * Automatically maps damage types to injury types and applies blood effects.\n * \n * @example\n * ```typescript\n * // Recommended: Use PlayerInjuryTrackingManager for per-player tracking\n * import { playerInjuryManager } from '@/systems/bodypart';\n * const integration = playerInjuryManager.getIntegrationForPlayer('player-1');\n * \n * // Or create with explicit tracker for testing/custom scenarios\n * const handler = new CombatInjuryIntegration({\n * ...DEFAULT_COMBAT_INJURY_CONFIG,\n * tracker: new InjuryTracker(),\n * });\n * \n * // Record combat damage\n * handler.recordCombatDamage({\n * damage: 35,\n * bodyRegion: BodyRegion.TORSO,\n * damageType: DamageType.BLUNT,\n * });\n * \n * // Get injuries for visualization\n * const injuries = handler.getInjuries();\n * ```\n * \n * @public\n */\nexport class CombatInjuryIntegration {\n private tracker: InjuryTracker;\n private config: CombatInjuryConfig;\n\n constructor(config: CombatInjuryConfig) {\n this.config = config;\n // Tracker is now required in CombatInjuryConfig interface\n this.tracker = config.tracker;\n }\n\n /**\n * Record injury from combat damage event.\n * \n * **Korean**: 전투 피해로부터 부상 기록\n * \n * Automatically determines injury type from damage type and applies\n * appropriate visual effects.\n * \n * @param event - Combat damage event\n * @returns Whether injury was recorded (false if damage too low)\n * \n * @public\n */\n recordCombatDamage(event: CombatDamageEvent): boolean {\n if (!this.config.enabled) {\n return false;\n }\n\n if (event.damage < this.config.minDamage) {\n return false;\n }\n\n // Determine injury type from damage type\n const injuryType = this.getInjuryTypeFromDamage(event.damageType);\n\n // Get position for injury\n const position =\n event.position ?? getInjuryPositionWithOffset(event.bodyRegion, 0.15);\n\n // Map body region to body part\n const bodyPart = mapBodyRegionToBodyPart(event.bodyRegion);\n\n // Record injury\n const recordedInjury = this.tracker.recordInjury(\n bodyPart,\n event.bodyRegion,\n position,\n event.damage,\n injuryType\n );\n\n // Return true only if the injury was actually recorded\n return recordedInjury !== null;\n }\n\n /**\n * Check if damage should trigger blood effects.\n * \n * **Korean**: 피해가 출혈 효과를 발생시켜야 하는지 확인\n * \n * @param damage - Damage amount\n * @returns Whether to show blood effects\n * \n * @public\n */\n shouldShowBloodEffect(damage: number): boolean {\n return damage > this.config.bloodThreshold;\n }\n\n /**\n * Get injury type from damage type.\n * \n * **Korean**: 피해 타입으로부터 부상 타입 가져오기\n * \n * @param damageType - Type of damage dealt\n * @returns Corresponding injury type for visualization\n * \n * @private\n */\n private getInjuryTypeFromDamage(damageType?: DamageType): InjuryType {\n if (!damageType) {\n return InjuryType.BRUISE; // Default to bruise\n }\n\n switch (damageType) {\n case DamageType.BLUNT:\n case DamageType.IMPACT:\n case DamageType.CRUSHING:\n return InjuryType.BRUISE;\n\n case DamageType.PIERCING:\n case DamageType.SHARP:\n return InjuryType.CUT;\n\n case DamageType.SLASHING:\n return InjuryType.LACERATION;\n\n case DamageType.JOINT:\n return InjuryType.FRACTURE;\n\n default:\n return InjuryType.BRUISE;\n }\n }\n\n /**\n * Get all tracked injuries.\n * \n * **Korean**: 모든 추적된 부상 가져오기\n * \n * @returns Array of injuries\n * \n * @public\n */\n getInjuries() {\n return this.tracker.getInjuries();\n }\n\n /**\n * Get tracker instance.\n * \n * @returns InjuryTracker instance\n * \n * @public\n */\n getTracker(): InjuryTracker {\n return this.tracker;\n }\n\n /**\n * Clear all injuries (for new round/match).\n * \n * **Korean**: 모든 부상 초기화\n * \n * @public\n */\n clearInjuries(): void {\n this.tracker.clearInjuries();\n }\n\n /**\n * Remove expired injuries.\n * \n * **Korean**: 만료된 부상 제거\n * \n * @public\n */\n removeExpiredInjuries(): void {\n this.tracker.removeExpiredInjuries();\n }\n}\n"],"mappings":";;;;;;;;;;;;AAqEA,IAAa,+BAAoE;CAC/E,SAAS;CACT,WAAW;CACX,gBAAgB;CACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCD,IAAa,0BAAb,MAAqC;CACnC;CACA;CAEA,YAAY,QAA4B;EACtC,KAAK,SAAS;EAEd,KAAK,UAAU,OAAO;;;;;;;;;;;;;;;CAgBxB,mBAAmB,OAAmC;EACpD,IAAI,CAAC,KAAK,OAAO,SACf,OAAO;EAGT,IAAI,MAAM,SAAS,KAAK,OAAO,WAC7B,OAAO;EAIT,MAAM,aAAa,KAAK,wBAAwB,MAAM,WAAW;EAGjE,MAAM,WACJ,MAAM,YAAY,4BAA4B,MAAM,YAAY,IAAK;EAGvE,MAAM,WAAW,wBAAwB,MAAM,WAAW;EAY1D,OATuB,KAAK,QAAQ,aAClC,UACA,MAAM,YACN,UACA,MAAM,QACN,WAIK,KAAmB;;;;;;;;;;;;CAa5B,sBAAsB,QAAyB;EAC7C,OAAO,SAAS,KAAK,OAAO;;;;;;;;;;;;CAa9B,wBAAgC,YAAqC;EACnE,IAAI,CAAC,YACH,OAAO,WAAW;EAGpB,QAAQ,YAAR;GACE,KAAK,WAAW;GAChB,KAAK,WAAW;GAChB,KAAK,WAAW,UACd,OAAO,WAAW;GAEpB,KAAK,WAAW;GAChB,KAAK,WAAW,OACd,OAAO,WAAW;GAEpB,KAAK,WAAW,UACd,OAAO,WAAW;GAEpB,KAAK,WAAW,OACd,OAAO,WAAW;GAEpB,SACE,OAAO,WAAW;;;;;;;;;;;;CAaxB,cAAc;EACZ,OAAO,KAAK,QAAQ,aAAa;;;;;;;;;CAUnC,aAA4B;EAC1B,OAAO,KAAK;;;;;;;;;CAUd,gBAAsB;EACpB,KAAK,QAAQ,eAAe;;;;;;;;;CAU9B,wBAA8B;EAC5B,KAAK,QAAQ,uBAAuB"}
1
+ {"version":3,"file":"CombatInjuryIntegration.js","names":[],"sources":["../../../src/systems/bodypart/CombatInjuryIntegration.ts"],"sourcesContent":["/**\n * Combat Injury Integration\n * \n * **Korean**: 전투 부상 통합\n * \n * Integrates InjuryTracker with combat damage events to automatically\n * record injuries and trigger visual trauma effects during combat.\n * \n * @module systems/bodypart/CombatInjuryIntegration\n * @category Body Part System\n * @korean 전투부상통합\n */\n\nimport * as THREE from \"three\";\nimport { BodyRegion, DamageType } from \"../../types/common\";\nimport { InjuryTracker } from \"./InjuryTracker\";\nimport {\n getInjuryPositionWithOffset,\n mapBodyRegionToBodyPart,\n} from \"./BodyPartPositionMapping\";\nimport { InjuryType } from \"../../types/injury\";\n\n/**\n * Combat damage event data.\n * \n * **Korean**: 전투 피해 이벤트 데이터\n * \n */\nexport interface CombatDamageEvent {\n /** Damage amount (0-100) */\n readonly damage: number;\n /** Body region hit */\n readonly bodyRegion: BodyRegion;\n /** Damage type */\n readonly damageType?: DamageType;\n /** Optional specific position override */\n readonly position?: THREE.Vector3;\n /** Whether this is a critical hit */\n readonly isCritical?: boolean;\n}\n\n/**\n * Configuration for combat injury integration.\n * \n */\nexport interface CombatInjuryConfig {\n /** Enable automatic injury tracking */\n readonly enabled: boolean;\n /** Minimum damage to create injury */\n readonly minDamage: number;\n /** Damage threshold for blood effects */\n readonly bloodThreshold: number;\n /** \n * InjuryTracker instance to use for this integration.\n * Must be explicitly provided per character; singleton usage is no longer supported.\n */\n readonly tracker: InjuryTracker;\n}\n\n/**\n * Default combat injury configuration.\n * \n * Note: A valid `tracker` must still be supplied by the caller.\n * This provides defaults for other configuration values only.\n * \n */\nexport const DEFAULT_COMBAT_INJURY_CONFIG: Omit<CombatInjuryConfig, 'tracker'> = {\n enabled: true,\n minDamage: 5,\n bloodThreshold: 30,\n} as const;\n\n/**\n * Combat Injury Integration Handler.\n * \n * **Korean**: 전투 부상 통합 핸들러\n * \n * Processes combat damage events and records injuries for visualization.\n * Automatically maps damage types to injury types and applies blood effects.\n * \n * @example\n * ```typescript\n * // Recommended: Use PlayerInjuryTrackingManager for per-player tracking\n * import { playerInjuryManager } from '@/systems/bodypart';\n * const integration = playerInjuryManager.getIntegrationForPlayer('player-1');\n * \n * // Or create with explicit tracker for testing/custom scenarios\n * const handler = new CombatInjuryIntegration({\n * ...DEFAULT_COMBAT_INJURY_CONFIG,\n * tracker: new InjuryTracker(),\n * });\n * \n * // Record combat damage\n * handler.recordCombatDamage({\n * damage: 35,\n * bodyRegion: BodyRegion.TORSO,\n * damageType: DamageType.BLUNT,\n * });\n * \n * // Get injuries for visualization\n * const injuries = handler.getInjuries();\n * ```\n * \n */\nexport class CombatInjuryIntegration {\n private tracker: InjuryTracker;\n private config: CombatInjuryConfig;\n\n constructor(config: CombatInjuryConfig) {\n this.config = config;\n // Tracker is now required in CombatInjuryConfig interface\n this.tracker = config.tracker;\n }\n\n /**\n * Record injury from combat damage event.\n * \n * **Korean**: 전투 피해로부터 부상 기록\n * \n * Automatically determines injury type from damage type and applies\n * appropriate visual effects.\n * \n * @param event - Combat damage event\n * @returns Whether injury was recorded (false if damage too low)\n * \n */\n recordCombatDamage(event: CombatDamageEvent): boolean {\n if (!this.config.enabled) {\n return false;\n }\n\n if (event.damage < this.config.minDamage) {\n return false;\n }\n\n // Determine injury type from damage type\n const injuryType = this.getInjuryTypeFromDamage(event.damageType);\n\n // Get position for injury\n const position =\n event.position ?? getInjuryPositionWithOffset(event.bodyRegion, 0.15);\n\n // Map body region to body part\n const bodyPart = mapBodyRegionToBodyPart(event.bodyRegion);\n\n // Record injury\n const recordedInjury = this.tracker.recordInjury(\n bodyPart,\n event.bodyRegion,\n position,\n event.damage,\n injuryType\n );\n\n // Return true only if the injury was actually recorded\n return recordedInjury !== null;\n }\n\n /**\n * Check if damage should trigger blood effects.\n * \n * **Korean**: 피해가 출혈 효과를 발생시켜야 하는지 확인\n * \n * @param damage - Damage amount\n * @returns Whether to show blood effects\n * \n */\n shouldShowBloodEffect(damage: number): boolean {\n return damage > this.config.bloodThreshold;\n }\n\n /**\n * Get injury type from damage type.\n * \n * **Korean**: 피해 타입으로부터 부상 타입 가져오기\n * \n * @param damageType - Type of damage dealt\n * @returns Corresponding injury type for visualization\n * \n * @private\n */\n private getInjuryTypeFromDamage(damageType?: DamageType): InjuryType {\n if (!damageType) {\n return InjuryType.BRUISE; // Default to bruise\n }\n\n switch (damageType) {\n case DamageType.BLUNT:\n case DamageType.IMPACT:\n case DamageType.CRUSHING:\n return InjuryType.BRUISE;\n\n case DamageType.PIERCING:\n case DamageType.SHARP:\n return InjuryType.CUT;\n\n case DamageType.SLASHING:\n return InjuryType.LACERATION;\n\n case DamageType.JOINT:\n return InjuryType.FRACTURE;\n\n default:\n return InjuryType.BRUISE;\n }\n }\n\n /**\n * Get all tracked injuries.\n * \n * **Korean**: 모든 추적된 부상 가져오기\n * \n * @returns Array of injuries\n * \n */\n getInjuries() {\n return this.tracker.getInjuries();\n }\n\n /**\n * Get tracker instance.\n * \n * @returns InjuryTracker instance\n * \n */\n getTracker(): InjuryTracker {\n return this.tracker;\n }\n\n /**\n * Clear all injuries (for new round/match).\n * \n * **Korean**: 모든 부상 초기화\n * \n */\n clearInjuries(): void {\n this.tracker.clearInjuries();\n }\n\n /**\n * Remove expired injuries.\n * \n * **Korean**: 만료된 부상 제거\n * \n */\n removeExpiredInjuries(): void {\n this.tracker.removeExpiredInjuries();\n }\n}\n"],"mappings":";;;;;;;;;;;AAkEA,IAAa,+BAAoE;CAC/E,SAAS;CACT,WAAW;CACX,gBAAgB;CACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCD,IAAa,0BAAb,MAAqC;CACnC;CACA;CAEA,YAAY,QAA4B;EACtC,KAAK,SAAS;EAEd,KAAK,UAAU,OAAO;;;;;;;;;;;;;;CAexB,mBAAmB,OAAmC;EACpD,IAAI,CAAC,KAAK,OAAO,SACf,OAAO;EAGT,IAAI,MAAM,SAAS,KAAK,OAAO,WAC7B,OAAO;EAIT,MAAM,aAAa,KAAK,wBAAwB,MAAM,WAAW;EAGjE,MAAM,WACJ,MAAM,YAAY,4BAA4B,MAAM,YAAY,IAAK;EAGvE,MAAM,WAAW,wBAAwB,MAAM,WAAW;EAY1D,OATuB,KAAK,QAAQ,aAClC,UACA,MAAM,YACN,UACA,MAAM,QACN,WAIK,KAAmB;;;;;;;;;;;CAY5B,sBAAsB,QAAyB;EAC7C,OAAO,SAAS,KAAK,OAAO;;;;;;;;;;;;CAa9B,wBAAgC,YAAqC;EACnE,IAAI,CAAC,YACH,OAAO,WAAW;EAGpB,QAAQ,YAAR;GACE,KAAK,WAAW;GAChB,KAAK,WAAW;GAChB,KAAK,WAAW,UACd,OAAO,WAAW;GAEpB,KAAK,WAAW;GAChB,KAAK,WAAW,OACd,OAAO,WAAW;GAEpB,KAAK,WAAW,UACd,OAAO,WAAW;GAEpB,KAAK,WAAW,OACd,OAAO,WAAW;GAEpB,SACE,OAAO,WAAW;;;;;;;;;;;CAYxB,cAAc;EACZ,OAAO,KAAK,QAAQ,aAAa;;;;;;;;CASnC,aAA4B;EAC1B,OAAO,KAAK;;;;;;;;CASd,gBAAsB;EACpB,KAAK,QAAQ,eAAe;;;;;;;;CAS9B,wBAA8B;EAC5B,KAAK,QAAQ,uBAAuB"}
@@ -21,7 +21,6 @@ import { Injury } from "../../types/injury";
21
21
  * @param playerId - Optional player ID for multi-player scenarios
22
22
  * @returns Injury in TraumaOverlay3D format
23
23
  *
24
- * @public
25
24
  */
26
25
  export declare function convertInjuryForVisualization(injuryLocation: InjuryLocation, playerId?: string | number): Injury;
27
26
  /**
@@ -33,7 +32,6 @@ export declare function convertInjuryForVisualization(injuryLocation: InjuryLoca
33
32
  * @param playerId - Optional player ID
34
33
  * @returns Array of injuries in TraumaOverlay3D format
35
34
  *
36
- * @public
37
35
  */
38
36
  export declare function convertInjuriesForVisualization(injuryLocations: InjuryLocation[], playerId?: string | number): Injury[];
39
37
  //# sourceMappingURL=InjuryIntegration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InjuryIntegration.d.ts","sourceRoot":"","sources":["../../../src/systems/bodypart/InjuryIntegration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GACzB,MAAM,CAeR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,eAAe,EAAE,cAAc,EAAE,EACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GACzB,MAAM,EAAE,CAIV"}
1
+ {"version":3,"file":"InjuryIntegration.d.ts","sourceRoot":"","sources":["../../../src/systems/bodypart/InjuryIntegration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GACzB,MAAM,CAeR;AAED;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAC7C,eAAe,EAAE,cAAc,EAAE,EACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GACzB,MAAM,EAAE,CAIV"}
@@ -8,7 +8,6 @@
8
8
  * @param playerId - Optional player ID for multi-player scenarios
9
9
  * @returns Injury in TraumaOverlay3D format
10
10
  *
11
- * @public
12
11
  */
13
12
  function convertInjuryForVisualization(injuryLocation, playerId) {
14
13
  return {
@@ -35,7 +34,6 @@ function convertInjuryForVisualization(injuryLocation, playerId) {
35
34
  * @param playerId - Optional player ID
36
35
  * @returns Array of injuries in TraumaOverlay3D format
37
36
  *
38
- * @public
39
37
  */
40
38
  function convertInjuriesForVisualization(injuryLocations, playerId) {
41
39
  return injuryLocations.map((loc) => convertInjuryForVisualization(loc, playerId));
@@ -1 +1 @@
1
- {"version":3,"file":"InjuryIntegration.js","names":[],"sources":["../../../src/systems/bodypart/InjuryIntegration.ts"],"sourcesContent":["/**\n * Injury Integration Utilities\n * \n * **Korean**: 부상 통합 유틸리티\n * \n * Utilities to convert between InjuryTracker format and TraumaOverlay3D format,\n * enabling seamless integration of injury tracking with visual trauma display.\n * \n * @module systems/bodypart/InjuryIntegration\n * @category Body Part System\n * @korean 부상통합\n */\n\nimport { InjuryLocation } from \"./InjuryTracker\";\nimport { Injury } from \"../../types/injury\";\n\n/**\n * Convert InjuryLocation to TraumaOverlay3D Injury format.\n * \n * **Korean**: InjuryLocation을 TraumaOverlay3D Injury 형식으로 변환\n * \n * @param injuryLocation - Injury from InjuryTracker\n * @param playerId - Optional player ID for multi-player scenarios\n * @returns Injury in TraumaOverlay3D format\n * \n * @public\n */\nexport function convertInjuryForVisualization(\n injuryLocation: InjuryLocation,\n playerId?: string | number\n): Injury {\n return {\n id: injuryLocation.id,\n region: injuryLocation.bodyRegion,\n type: injuryLocation.type,\n position: [\n injuryLocation.position.x,\n injuryLocation.position.y,\n injuryLocation.position.z,\n ],\n severity: injuryLocation.severity / 100, // Convert 0-100 to 0-1\n hitCount: injuryLocation.hitCount,\n timestamp: injuryLocation.timestamp,\n playerId,\n };\n}\n\n/**\n * Convert array of InjuryLocations to TraumaOverlay3D Injuries.\n * \n * **Korean**: InjuryLocation 배열을 TraumaOverlay3D Injuries로 변환\n * \n * @param injuryLocations - Array of injuries from InjuryTracker\n * @param playerId - Optional player ID\n * @returns Array of injuries in TraumaOverlay3D format\n * \n * @public\n */\nexport function convertInjuriesForVisualization(\n injuryLocations: InjuryLocation[],\n playerId?: string | number\n): Injury[] {\n return injuryLocations.map((loc) =>\n convertInjuryForVisualization(loc, playerId)\n );\n}\n"],"mappings":";;;;;;;;;;;;AA2BA,SAAgB,8BACd,gBACA,UACQ;CACR,OAAO;EACL,IAAI,eAAe;EACnB,QAAQ,eAAe;EACvB,MAAM,eAAe;EACrB,UAAU;GACR,eAAe,SAAS;GACxB,eAAe,SAAS;GACxB,eAAe,SAAS;GACzB;EACD,UAAU,eAAe,WAAW;EACpC,UAAU,eAAe;EACzB,WAAW,eAAe;EAC1B;EACD;;;;;;;;;;;;;AAcH,SAAgB,gCACd,iBACA,UACU;CACV,OAAO,gBAAgB,KAAK,QAC1B,8BAA8B,KAAK,SAAS,CAC7C"}
1
+ {"version":3,"file":"InjuryIntegration.js","names":[],"sources":["../../../src/systems/bodypart/InjuryIntegration.ts"],"sourcesContent":["/**\n * Injury Integration Utilities\n * \n * **Korean**: 부상 통합 유틸리티\n * \n * Utilities to convert between InjuryTracker format and TraumaOverlay3D format,\n * enabling seamless integration of injury tracking with visual trauma display.\n * \n * @module systems/bodypart/InjuryIntegration\n * @category Body Part System\n * @korean 부상통합\n */\n\nimport { InjuryLocation } from \"./InjuryTracker\";\nimport { Injury } from \"../../types/injury\";\n\n/**\n * Convert InjuryLocation to TraumaOverlay3D Injury format.\n * \n * **Korean**: InjuryLocation을 TraumaOverlay3D Injury 형식으로 변환\n * \n * @param injuryLocation - Injury from InjuryTracker\n * @param playerId - Optional player ID for multi-player scenarios\n * @returns Injury in TraumaOverlay3D format\n * \n */\nexport function convertInjuryForVisualization(\n injuryLocation: InjuryLocation,\n playerId?: string | number\n): Injury {\n return {\n id: injuryLocation.id,\n region: injuryLocation.bodyRegion,\n type: injuryLocation.type,\n position: [\n injuryLocation.position.x,\n injuryLocation.position.y,\n injuryLocation.position.z,\n ],\n severity: injuryLocation.severity / 100, // Convert 0-100 to 0-1\n hitCount: injuryLocation.hitCount,\n timestamp: injuryLocation.timestamp,\n playerId,\n };\n}\n\n/**\n * Convert array of InjuryLocations to TraumaOverlay3D Injuries.\n * \n * **Korean**: InjuryLocation 배열을 TraumaOverlay3D Injuries로 변환\n * \n * @param injuryLocations - Array of injuries from InjuryTracker\n * @param playerId - Optional player ID\n * @returns Array of injuries in TraumaOverlay3D format\n * \n */\nexport function convertInjuriesForVisualization(\n injuryLocations: InjuryLocation[],\n playerId?: string | number\n): Injury[] {\n return injuryLocations.map((loc) =>\n convertInjuryForVisualization(loc, playerId)\n );\n}\n"],"mappings":";;;;;;;;;;;AA0BA,SAAgB,8BACd,gBACA,UACQ;CACR,OAAO;EACL,IAAI,eAAe;EACnB,QAAQ,eAAe;EACvB,MAAM,eAAe;EACrB,UAAU;GACR,eAAe,SAAS;GACxB,eAAe,SAAS;GACxB,eAAe,SAAS;GACzB;EACD,UAAU,eAAe,WAAW;EACpC,UAAU,eAAe;EACzB,WAAW,eAAe;EAC1B;EACD;;;;;;;;;;;;AAaH,SAAgB,gCACd,iBACA,UACU;CACV,OAAO,gBAAgB,KAAK,QAC1B,8BAA8B,KAAK,SAAS,CAC7C"}