blacktrigram 0.7.2
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.
- package/LICENSE +201 -0
- package/README.md +866 -0
- package/SECURITY.md +124 -0
- package/lib/App.d.ts +4 -0
- package/lib/App.d.ts.map +1 -0
- package/lib/App2.js +386 -0
- package/lib/App2.js.map +1 -0
- package/lib/_virtual/_rolldown/runtime.js +13 -0
- package/lib/assets/index.css +1146 -0
- package/lib/audio/AudioAssetLoader.d.ts +101 -0
- package/lib/audio/AudioAssetLoader.d.ts.map +1 -0
- package/lib/audio/AudioAssetLoader.js +245 -0
- package/lib/audio/AudioAssetLoader.js.map +1 -0
- package/lib/audio/AudioAssetRegistry.d.ts +126 -0
- package/lib/audio/AudioAssetRegistry.d.ts.map +1 -0
- package/lib/audio/AudioAssetRegistry.js +970 -0
- package/lib/audio/AudioAssetRegistry.js.map +1 -0
- package/lib/audio/AudioCache.d.ts +135 -0
- package/lib/audio/AudioCache.d.ts.map +1 -0
- package/lib/audio/AudioCache.js +211 -0
- package/lib/audio/AudioCache.js.map +1 -0
- package/lib/audio/AudioManager.d.ts +162 -0
- package/lib/audio/AudioManager.d.ts.map +1 -0
- package/lib/audio/AudioManager.js +508 -0
- package/lib/audio/AudioManager.js.map +1 -0
- package/lib/audio/AudioMonitor.d.ts +122 -0
- package/lib/audio/AudioMonitor.d.ts.map +1 -0
- package/lib/audio/AudioMonitor.js +215 -0
- package/lib/audio/AudioMonitor.js.map +1 -0
- package/lib/audio/AudioPool.d.ts +108 -0
- package/lib/audio/AudioPool.d.ts.map +1 -0
- package/lib/audio/AudioPool.js +206 -0
- package/lib/audio/AudioPool.js.map +1 -0
- package/lib/audio/AudioProvider.d.ts +28 -0
- package/lib/audio/AudioProvider.d.ts.map +1 -0
- package/lib/audio/AudioProvider.js +135 -0
- package/lib/audio/AudioProvider.js.map +1 -0
- package/lib/audio/AudioUtils.d.ts +77 -0
- package/lib/audio/AudioUtils.d.ts.map +1 -0
- package/lib/audio/AudioUtils.js +164 -0
- package/lib/audio/AudioUtils.js.map +1 -0
- package/lib/audio/BoneImpactAudioMap.d.ts +64 -0
- package/lib/audio/BoneImpactAudioMap.d.ts.map +1 -0
- package/lib/audio/BoneImpactAudioMap.js +133 -0
- package/lib/audio/BoneImpactAudioMap.js.map +1 -0
- package/lib/audio/VariantSelector.d.ts +69 -0
- package/lib/audio/VariantSelector.d.ts.map +1 -0
- package/lib/audio/VariantSelector.js +177 -0
- package/lib/audio/VariantSelector.js.map +1 -0
- package/lib/audio/index.d.ts +13 -0
- package/lib/audio/index.d.ts.map +1 -0
- package/lib/audio/index.js +41 -0
- package/lib/audio/index.js.map +1 -0
- package/lib/audio/types.d.ts +220 -0
- package/lib/audio/types.d.ts.map +1 -0
- package/lib/audio/types.js +12 -0
- package/lib/audio/types.js.map +1 -0
- package/lib/components/effects/WindParticles3D.d.ts +83 -0
- package/lib/components/effects/WindParticles3D.d.ts.map +1 -0
- package/lib/components/effects/index.d.ts +6 -0
- package/lib/components/effects/index.d.ts.map +1 -0
- package/lib/components/index.d.ts +5 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/index.js +74 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/screens/combat/CombatScreen3D.d.ts +74 -0
- package/lib/components/screens/combat/CombatScreen3D.d.ts.map +1 -0
- package/lib/components/screens/combat/CombatScreen3D.js +1912 -0
- package/lib/components/screens/combat/CombatScreen3D.js.map +1 -0
- package/lib/components/screens/combat/components/controls/CombatButtons.d.ts +39 -0
- package/lib/components/screens/combat/components/controls/CombatButtons.d.ts.map +1 -0
- package/lib/components/screens/combat/components/controls/CombatButtons.js +52 -0
- package/lib/components/screens/combat/components/controls/CombatButtons.js.map +1 -0
- package/lib/components/screens/combat/components/controls/CombatControlsPanel.d.ts +35 -0
- package/lib/components/screens/combat/components/controls/CombatControlsPanel.d.ts.map +1 -0
- package/lib/components/screens/combat/components/controls/CombatControlsPanel.js +78 -0
- package/lib/components/screens/combat/components/controls/CombatControlsPanel.js.map +1 -0
- package/lib/components/screens/combat/components/controls/ControlsGuide.d.ts +23 -0
- package/lib/components/screens/combat/components/controls/ControlsGuide.d.ts.map +1 -0
- package/lib/components/screens/combat/components/controls/ControlsGuide.js +214 -0
- package/lib/components/screens/combat/components/controls/ControlsGuide.js.map +1 -0
- package/lib/components/screens/combat/components/controls/KeyboardHints.d.ts +54 -0
- package/lib/components/screens/combat/components/controls/KeyboardHints.d.ts.map +1 -0
- package/lib/components/screens/combat/components/controls/KeyboardHints.js +357 -0
- package/lib/components/screens/combat/components/controls/KeyboardHints.js.map +1 -0
- package/lib/components/screens/combat/components/controls/PauseMenu.d.ts +32 -0
- package/lib/components/screens/combat/components/controls/PauseMenu.d.ts.map +1 -0
- package/lib/components/screens/combat/components/controls/PauseMenu.js +254 -0
- package/lib/components/screens/combat/components/controls/PauseMenu.js.map +1 -0
- package/lib/components/screens/combat/components/controls/PauseMenuButton.d.ts +63 -0
- package/lib/components/screens/combat/components/controls/PauseMenuButton.d.ts.map +1 -0
- package/lib/components/screens/combat/components/controls/PauseMenuButton.js +108 -0
- package/lib/components/screens/combat/components/controls/PauseMenuButton.js.map +1 -0
- package/lib/components/screens/combat/components/controls/QuickSettings.d.ts +42 -0
- package/lib/components/screens/combat/components/controls/QuickSettings.d.ts.map +1 -0
- package/lib/components/screens/combat/components/controls/QuickSettings.js +259 -0
- package/lib/components/screens/combat/components/controls/QuickSettings.js.map +1 -0
- package/lib/components/screens/combat/components/effects/ArterialSpray3D.d.ts +73 -0
- package/lib/components/screens/combat/components/effects/ArterialSpray3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/BloodDecals3D.d.ts +108 -0
- package/lib/components/screens/combat/components/effects/BloodDecals3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/BloodDecals3D.js +232 -0
- package/lib/components/screens/combat/components/effects/BloodDecals3D.js.map +1 -0
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.d.ts +53 -0
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.js +87 -0
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.js.map +1 -0
- package/lib/components/screens/combat/components/effects/BloodParticles3D.d.ts +80 -0
- package/lib/components/screens/combat/components/effects/BloodParticles3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/BloodParticles3D.js +278 -0
- package/lib/components/screens/combat/components/effects/BloodParticles3D.js.map +1 -0
- package/lib/components/screens/combat/components/effects/BloodViscosity3D.d.ts +64 -0
- package/lib/components/screens/combat/components/effects/BloodViscosity3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/BloodViscosity3D.js +248 -0
- package/lib/components/screens/combat/components/effects/BloodViscosity3D.js.map +1 -0
- package/lib/components/screens/combat/components/effects/BoneCrackParticles3D.d.ts +60 -0
- package/lib/components/screens/combat/components/effects/BoneCrackParticles3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.d.ts +37 -0
- package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.js +184 -0
- package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.js.map +1 -0
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.d.ts +49 -0
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.js +66 -0
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.js.map +1 -0
- package/lib/components/screens/combat/components/effects/DustClouds3D.d.ts +93 -0
- package/lib/components/screens/combat/components/effects/DustClouds3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/EarthCrackEffect3D.d.ts +57 -0
- package/lib/components/screens/combat/components/effects/EarthCrackEffect3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/EarthHealingEffect3D.d.ts +88 -0
- package/lib/components/screens/combat/components/effects/EarthHealingEffect3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/ImpactSparks3D.d.ts +91 -0
- package/lib/components/screens/combat/components/effects/ImpactSparks3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/InternalDamage3D.d.ts +67 -0
- package/lib/components/screens/combat/components/effects/InternalDamage3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/InternalDamage3D.js +261 -0
- package/lib/components/screens/combat/components/effects/InternalDamage3D.js.map +1 -0
- package/lib/components/screens/combat/components/effects/LiPrecisionTargetingOverlay.d.ts +45 -0
- package/lib/components/screens/combat/components/effects/LiPrecisionTargetingOverlay.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/NerveStrikeParticles3D.d.ts +61 -0
- package/lib/components/screens/combat/components/effects/NerveStrikeParticles3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/PainVignette.d.ts +47 -0
- package/lib/components/screens/combat/components/effects/PainVignette.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/PainVignette.js +65 -0
- package/lib/components/screens/combat/components/effects/PainVignette.js.map +1 -0
- package/lib/components/screens/combat/components/effects/ParticleAudio3D.d.ts +52 -0
- package/lib/components/screens/combat/components/effects/ParticleAudio3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/ParticleAudio3D.js +103 -0
- package/lib/components/screens/combat/components/effects/ParticleAudio3D.js.map +1 -0
- package/lib/components/screens/combat/components/effects/TraumaOverlay3D.d.ts +91 -0
- package/lib/components/screens/combat/components/effects/TraumaOverlay3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/TraumaOverlay3D.js +296 -0
- package/lib/components/screens/combat/components/effects/TraumaOverlay3D.js.map +1 -0
- package/lib/components/screens/combat/components/effects/WaterRipple3D.d.ts +64 -0
- package/lib/components/screens/combat/components/effects/WaterRipple3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/WaterWave3D.d.ts +72 -0
- package/lib/components/screens/combat/components/effects/WaterWave3D.d.ts.map +1 -0
- package/lib/components/screens/combat/components/effects/index.d.ts +121 -0
- package/lib/components/screens/combat/components/effects/index.d.ts.map +1 -0
- package/lib/components/screens/combat/components/feedback/MatchCountdown.d.ts +31 -0
- package/lib/components/screens/combat/components/feedback/MatchCountdown.d.ts.map +1 -0
- package/lib/components/screens/combat/components/feedback/MatchCountdown.js +242 -0
- package/lib/components/screens/combat/components/feedback/MatchCountdown.js.map +1 -0
- package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.d.ts +74 -0
- package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.js +275 -0
- package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.js.map +1 -0
- package/lib/components/screens/combat/components/feedback/RoundDisplayStatus.d.ts +25 -0
- package/lib/components/screens/combat/components/feedback/RoundDisplayStatus.d.ts.map +1 -0
- package/lib/components/screens/combat/components/feedback/RoundDisplayStatus.js +61 -0
- package/lib/components/screens/combat/components/feedback/RoundDisplayStatus.js.map +1 -0
- package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.d.ts +43 -0
- package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.js +139 -0
- package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.js.map +1 -0
- package/lib/components/screens/combat/components/hud/CombatBottomHUD.d.ts +50 -0
- package/lib/components/screens/combat/components/hud/CombatBottomHUD.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/CombatBottomHUD.js +155 -0
- package/lib/components/screens/combat/components/hud/CombatBottomHUD.js.map +1 -0
- package/lib/components/screens/combat/components/hud/CombatLeftHUD.d.ts +54 -0
- package/lib/components/screens/combat/components/hud/CombatLeftHUD.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/CombatLeftHUD.js +103 -0
- package/lib/components/screens/combat/components/hud/CombatLeftHUD.js.map +1 -0
- package/lib/components/screens/combat/components/hud/CombatRightHUD.d.ts +54 -0
- package/lib/components/screens/combat/components/hud/CombatRightHUD.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/CombatRightHUD.js +101 -0
- package/lib/components/screens/combat/components/hud/CombatRightHUD.js.map +1 -0
- package/lib/components/screens/combat/components/hud/CombatTopHUD.d.ts +47 -0
- package/lib/components/screens/combat/components/hud/CombatTopHUD.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/CombatTopHUD.js +141 -0
- package/lib/components/screens/combat/components/hud/CombatTopHUD.js.map +1 -0
- package/lib/components/screens/combat/components/hud/DifficultyIndicator.d.ts +25 -0
- package/lib/components/screens/combat/components/hud/DifficultyIndicator.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/DifficultyIndicator.js +129 -0
- package/lib/components/screens/combat/components/hud/DifficultyIndicator.js.map +1 -0
- package/lib/components/screens/combat/components/hud/FPSMonitor.d.ts +48 -0
- package/lib/components/screens/combat/components/hud/FPSMonitor.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/FPSMonitor.js +131 -0
- package/lib/components/screens/combat/components/hud/FPSMonitor.js.map +1 -0
- package/lib/components/screens/combat/components/hud/MobileControlsWrapper.d.ts +82 -0
- package/lib/components/screens/combat/components/hud/MobileControlsWrapper.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/MobileControlsWrapper.js +73 -0
- package/lib/components/screens/combat/components/hud/MobileControlsWrapper.js.map +1 -0
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.d.ts +80 -0
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.js +79 -0
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.js.map +1 -0
- package/lib/components/screens/combat/components/hud/index.d.ts +22 -0
- package/lib/components/screens/combat/components/hud/index.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/index.js +4 -0
- package/lib/components/screens/combat/components/index.d.ts +47 -0
- package/lib/components/screens/combat/components/index.d.ts.map +1 -0
- package/lib/components/screens/combat/components/index.js +23 -0
- package/lib/components/screens/combat/components/indicators/BalanceIndicator.d.ts +52 -0
- package/lib/components/screens/combat/components/indicators/BalanceIndicator.d.ts.map +1 -0
- package/lib/components/screens/combat/components/indicators/BalanceIndicator.js +113 -0
- package/lib/components/screens/combat/components/indicators/BalanceIndicator.js.map +1 -0
- package/lib/components/screens/combat/components/indicators/InputBufferDisplay.d.ts +49 -0
- package/lib/components/screens/combat/components/indicators/InputBufferDisplay.d.ts.map +1 -0
- package/lib/components/screens/combat/components/indicators/InputBufferDisplay.js +150 -0
- package/lib/components/screens/combat/components/indicators/InputBufferDisplay.js.map +1 -0
- package/lib/components/screens/combat/components/indicators/StaminaWarning.d.ts +44 -0
- package/lib/components/screens/combat/components/indicators/StaminaWarning.d.ts.map +1 -0
- package/lib/components/screens/combat/components/indicators/StaminaWarning.js +83 -0
- package/lib/components/screens/combat/components/indicators/StaminaWarning.js.map +1 -0
- package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.d.ts +83 -0
- package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.d.ts.map +1 -0
- package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js +161 -0
- package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js.map +1 -0
- package/lib/components/screens/combat/helpers/AnimationUpdater.d.ts +38 -0
- package/lib/components/screens/combat/helpers/AnimationUpdater.d.ts.map +1 -0
- package/lib/components/screens/combat/helpers/AnimationUpdater.js +37 -0
- package/lib/components/screens/combat/helpers/AnimationUpdater.js.map +1 -0
- package/lib/components/screens/combat/helpers/combatHelpers.d.ts +37 -0
- package/lib/components/screens/combat/helpers/combatHelpers.d.ts.map +1 -0
- package/lib/components/screens/combat/helpers/combatHelpers.js +33 -0
- package/lib/components/screens/combat/helpers/combatHelpers.js.map +1 -0
- package/lib/components/screens/combat/helpers/index.d.ts +8 -0
- package/lib/components/screens/combat/helpers/index.d.ts.map +1 -0
- package/lib/components/screens/combat/helpers/index.js +2 -0
- package/lib/components/screens/combat/hooks/useAICombat.d.ts +108 -0
- package/lib/components/screens/combat/hooks/useAICombat.d.ts.map +1 -0
- package/lib/components/screens/combat/hooks/useAICombat.js +806 -0
- package/lib/components/screens/combat/hooks/useAICombat.js.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatActions.d.ts +106 -0
- package/lib/components/screens/combat/hooks/useCombatActions.d.ts.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatActions.js +766 -0
- package/lib/components/screens/combat/hooks/useCombatActions.js.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.d.ts +85 -0
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.d.ts.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.js +202 -0
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.js.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatAudio.d.ts +40 -0
- package/lib/components/screens/combat/hooks/useCombatAudio.d.ts.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatAudio.js +287 -0
- package/lib/components/screens/combat/hooks/useCombatAudio.js.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatLayout.d.ts +61 -0
- package/lib/components/screens/combat/hooks/useCombatLayout.d.ts.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatLayout.js +89 -0
- package/lib/components/screens/combat/hooks/useCombatLayout.js.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatState.d.ts +75 -0
- package/lib/components/screens/combat/hooks/useCombatState.d.ts.map +1 -0
- package/lib/components/screens/combat/hooks/useCombatState.js +182 -0
- package/lib/components/screens/combat/hooks/useCombatState.js.map +1 -0
- package/lib/components/screens/combat/hooks/useGrapplingAudio.d.ts +36 -0
- package/lib/components/screens/combat/hooks/useGrapplingAudio.d.ts.map +1 -0
- package/lib/components/screens/combat/hooks/usePreloadCombatAudio.d.ts +63 -0
- package/lib/components/screens/combat/hooks/usePreloadCombatAudio.d.ts.map +1 -0
- package/lib/components/screens/combat/index.d.ts +4 -0
- package/lib/components/screens/combat/index.d.ts.map +1 -0
- package/lib/components/screens/combat/index.js +25 -0
- package/lib/components/screens/controls/ControlsScreen3D.d.ts +12 -0
- package/lib/components/screens/controls/ControlsScreen3D.d.ts.map +1 -0
- package/lib/components/screens/controls/ControlsScreen3D.js +1248 -0
- package/lib/components/screens/controls/ControlsScreen3D.js.map +1 -0
- package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.d.ts +35 -0
- package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.js +155 -0
- package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.js.map +1 -0
- package/lib/components/screens/controls/components/ControlCategoryTabsOverlayHtml.d.ts +31 -0
- package/lib/components/screens/controls/components/ControlCategoryTabsOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/controls/components/ControlCategoryTabsOverlayHtml.js +100 -0
- package/lib/components/screens/controls/components/ControlCategoryTabsOverlayHtml.js.map +1 -0
- package/lib/components/screens/controls/components/GamepadVisualization3D.d.ts +32 -0
- package/lib/components/screens/controls/components/GamepadVisualization3D.d.ts.map +1 -0
- package/lib/components/screens/controls/components/GamepadVisualization3D.js +250 -0
- package/lib/components/screens/controls/components/GamepadVisualization3D.js.map +1 -0
- package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.d.ts +35 -0
- package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.js +222 -0
- package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.js.map +1 -0
- package/lib/components/screens/controls/components/Key3D.d.ts +36 -0
- package/lib/components/screens/controls/components/Key3D.d.ts.map +1 -0
- package/lib/components/screens/controls/components/Key3D.js +169 -0
- package/lib/components/screens/controls/components/Key3D.js.map +1 -0
- package/lib/components/screens/controls/components/VisualKeyboard3D.d.ts +37 -0
- package/lib/components/screens/controls/components/VisualKeyboard3D.d.ts.map +1 -0
- package/lib/components/screens/controls/components/VisualKeyboard3D.js +120 -0
- package/lib/components/screens/controls/components/VisualKeyboard3D.js.map +1 -0
- package/lib/components/screens/controls/components/index.d.ts +20 -0
- package/lib/components/screens/controls/components/index.d.ts.map +1 -0
- package/lib/components/screens/controls/constants/ControlsConstants.d.ts +67 -0
- package/lib/components/screens/controls/constants/ControlsConstants.d.ts.map +1 -0
- package/lib/components/screens/controls/constants/ControlsConstants.js +504 -0
- package/lib/components/screens/controls/constants/ControlsConstants.js.map +1 -0
- package/lib/components/screens/controls/hooks/useControlsState.d.ts +46 -0
- package/lib/components/screens/controls/hooks/useControlsState.d.ts.map +1 -0
- package/lib/components/screens/controls/hooks/useControlsState.js +71 -0
- package/lib/components/screens/controls/hooks/useControlsState.js.map +1 -0
- package/lib/components/screens/endscreen/EndScreen3D.d.ts +18 -0
- package/lib/components/screens/endscreen/EndScreen3D.d.ts.map +1 -0
- package/lib/components/screens/endscreen/EndScreen3D.js +367 -0
- package/lib/components/screens/endscreen/EndScreen3D.js.map +1 -0
- package/lib/components/screens/endscreen/components/DefeatAnimation3D.d.ts +9 -0
- package/lib/components/screens/endscreen/components/DefeatAnimation3D.d.ts.map +1 -0
- package/lib/components/screens/endscreen/components/DefeatAnimation3D.js +205 -0
- package/lib/components/screens/endscreen/components/DefeatAnimation3D.js.map +1 -0
- package/lib/components/screens/endscreen/components/MatchStatisticsDisplayOverlayHtml.d.ts +13 -0
- package/lib/components/screens/endscreen/components/MatchStatisticsDisplayOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/endscreen/components/MatchStatisticsDisplayOverlayHtml.js +321 -0
- package/lib/components/screens/endscreen/components/MatchStatisticsDisplayOverlayHtml.js.map +1 -0
- package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.d.ts +28 -0
- package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.js +93 -0
- package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.js.map +1 -0
- package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.d.ts +13 -0
- package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.js +294 -0
- package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.js.map +1 -0
- package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.d.ts +13 -0
- package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.js +210 -0
- package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.js.map +1 -0
- package/lib/components/screens/endscreen/components/VictoryAnimation3D.d.ts +9 -0
- package/lib/components/screens/endscreen/components/VictoryAnimation3D.d.ts.map +1 -0
- package/lib/components/screens/endscreen/components/VictoryAnimation3D.js +299 -0
- package/lib/components/screens/endscreen/components/VictoryAnimation3D.js.map +1 -0
- package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.d.ts +14 -0
- package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.js +170 -0
- package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.js.map +1 -0
- package/lib/components/screens/endscreen/components/animations.d.ts +25 -0
- package/lib/components/screens/endscreen/components/animations.d.ts.map +1 -0
- package/lib/components/screens/endscreen/components/animations.js +71 -0
- package/lib/components/screens/endscreen/components/animations.js.map +1 -0
- package/lib/components/screens/endscreen/components/index.d.ts +19 -0
- package/lib/components/screens/endscreen/components/index.d.ts.map +1 -0
- package/lib/components/screens/endscreen/components/index.js +8 -0
- package/lib/components/screens/endscreen/index.d.ts +9 -0
- package/lib/components/screens/endscreen/index.d.ts.map +1 -0
- package/lib/components/screens/endscreen/index.js +10 -0
- package/lib/components/screens/intro/IntroScreen3D.d.ts +16 -0
- package/lib/components/screens/intro/IntroScreen3D.d.ts.map +1 -0
- package/lib/components/screens/intro/IntroScreen3D.js +488 -0
- package/lib/components/screens/intro/IntroScreen3D.js.map +1 -0
- package/lib/components/screens/intro/components/AbilityListOverlayHtml.d.ts +53 -0
- package/lib/components/screens/intro/components/AbilityListOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/intro/components/AbilityListOverlayHtml.js +146 -0
- package/lib/components/screens/intro/components/AbilityListOverlayHtml.js.map +1 -0
- package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.d.ts +20 -0
- package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.js +154 -0
- package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.js.map +1 -0
- package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.d.ts +38 -0
- package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.js +235 -0
- package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.js.map +1 -0
- package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.d.ts +35 -0
- package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.js +325 -0
- package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.js.map +1 -0
- package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.d.ts +19 -0
- package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.js +88 -0
- package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.js.map +1 -0
- package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.d.ts +65 -0
- package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.js +143 -0
- package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.js.map +1 -0
- package/lib/components/screens/intro/components/MenuSectionOverlayHtml.d.ts +27 -0
- package/lib/components/screens/intro/components/MenuSectionOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/intro/components/MenuSectionOverlayHtml.js +153 -0
- package/lib/components/screens/intro/components/MenuSectionOverlayHtml.js.map +1 -0
- package/lib/components/screens/intro/components/StatBarOverlayHtml.d.ts +47 -0
- package/lib/components/screens/intro/components/StatBarOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/intro/components/StatBarOverlayHtml.js +128 -0
- package/lib/components/screens/intro/components/StatBarOverlayHtml.js.map +1 -0
- package/lib/components/screens/philosophy/PhilosophyScreen3D.d.ts +12 -0
- package/lib/components/screens/philosophy/PhilosophyScreen3D.d.ts.map +1 -0
- package/lib/components/screens/philosophy/PhilosophyScreen3D.js +561 -0
- package/lib/components/screens/philosophy/PhilosophyScreen3D.js.map +1 -0
- package/lib/components/screens/philosophy/components/InteractiveTrigramGridOverlayHtml.d.ts +40 -0
- package/lib/components/screens/philosophy/components/InteractiveTrigramGridOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/philosophy/components/PhilosophyNavigationOverlayHtml.d.ts +40 -0
- package/lib/components/screens/philosophy/components/PhilosophyNavigationOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/philosophy/components/PhilosophySectionOverlayHtml.d.ts +46 -0
- package/lib/components/screens/philosophy/components/PhilosophySectionOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/philosophy/components/PhilosophyTextOverlayHtml.d.ts +42 -0
- package/lib/components/screens/philosophy/components/PhilosophyTextOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/philosophy/components/TrigramSymbol3D.d.ts +49 -0
- package/lib/components/screens/philosophy/components/TrigramSymbol3D.d.ts.map +1 -0
- package/lib/components/screens/philosophy/components/TrigramVisualization3D.d.ts +43 -0
- package/lib/components/screens/philosophy/components/TrigramVisualization3D.d.ts.map +1 -0
- package/lib/components/screens/philosophy/components/index.d.ts +23 -0
- package/lib/components/screens/philosophy/components/index.d.ts.map +1 -0
- package/lib/components/screens/philosophy/hooks/index.d.ts +10 -0
- package/lib/components/screens/philosophy/hooks/index.d.ts.map +1 -0
- package/lib/components/screens/philosophy/hooks/usePhilosophyState.d.ts +50 -0
- package/lib/components/screens/philosophy/hooks/usePhilosophyState.d.ts.map +1 -0
- package/lib/components/screens/training/TrainingScreen3D.d.ts +51 -0
- package/lib/components/screens/training/TrainingScreen3D.d.ts.map +1 -0
- package/lib/components/screens/training/TrainingScreen3D.js +947 -0
- package/lib/components/screens/training/TrainingScreen3D.js.map +1 -0
- package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.d.ts +31 -0
- package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.js +189 -0
- package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.js.map +1 -0
- package/lib/components/screens/training/components/AnatomyOverlay3D.d.ts +31 -0
- package/lib/components/screens/training/components/AnatomyOverlay3D.d.ts.map +1 -0
- package/lib/components/screens/training/components/AnatomyOverlay3D.js +679 -0
- package/lib/components/screens/training/components/AnatomyOverlay3D.js.map +1 -0
- package/lib/components/screens/training/components/DamageNumber3D.d.ts +28 -0
- package/lib/components/screens/training/components/DamageNumber3D.d.ts.map +1 -0
- package/lib/components/screens/training/components/DamageNumber3D.js +6 -0
- package/lib/components/screens/training/components/FootPlacementMarkers3D.d.ts +47 -0
- package/lib/components/screens/training/components/FootPlacementMarkers3D.d.ts.map +1 -0
- package/lib/components/screens/training/components/FootPlacementMarkers3D.js +380 -0
- package/lib/components/screens/training/components/FootPlacementMarkers3D.js.map +1 -0
- package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.d.ts +47 -0
- package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.js +292 -0
- package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.js.map +1 -0
- package/lib/components/screens/training/components/HitFeedbackEffect3D.d.ts +32 -0
- package/lib/components/screens/training/components/HitFeedbackEffect3D.d.ts.map +1 -0
- package/lib/components/screens/training/components/HitFeedbackEffect3D.js +258 -0
- package/lib/components/screens/training/components/HitFeedbackEffect3D.js.map +1 -0
- package/lib/components/screens/training/components/TrainingAICharacter3D.d.ts +36 -0
- package/lib/components/screens/training/components/TrainingAICharacter3D.d.ts.map +1 -0
- package/lib/components/screens/training/components/TrainingAICharacter3D.js +6 -0
- package/lib/components/screens/training/components/TrainingArena3D.d.ts +22 -0
- package/lib/components/screens/training/components/TrainingArena3D.d.ts.map +1 -0
- package/lib/components/screens/training/components/TrainingArena3D.js +5 -0
- package/lib/components/screens/training/components/TrainingButtonsOverlayHtml.d.ts +73 -0
- package/lib/components/screens/training/components/TrainingButtonsOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/training/components/TrainingButtonsOverlayHtml.js +107 -0
- package/lib/components/screens/training/components/TrainingButtonsOverlayHtml.js.map +1 -0
- package/lib/components/screens/training/components/TrainingControlsOverlayHtml.d.ts +50 -0
- package/lib/components/screens/training/components/TrainingControlsOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/training/components/TrainingControlsOverlayHtml.js +129 -0
- package/lib/components/screens/training/components/TrainingControlsOverlayHtml.js.map +1 -0
- package/lib/components/screens/training/components/TrainingDummy3D.d.ts +72 -0
- package/lib/components/screens/training/components/TrainingDummy3D.d.ts.map +1 -0
- package/lib/components/screens/training/components/TrainingDummy3D.js +298 -0
- package/lib/components/screens/training/components/TrainingDummy3D.js.map +1 -0
- package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.d.ts +30 -0
- package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.js +44 -0
- package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.js.map +1 -0
- package/lib/components/screens/training/components/TrainingHitEffects3D.d.ts +27 -0
- package/lib/components/screens/training/components/TrainingHitEffects3D.d.ts.map +1 -0
- package/lib/components/screens/training/components/TrainingHitEffects3D.js +6 -0
- package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.d.ts +51 -0
- package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.js +188 -0
- package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.js.map +1 -0
- package/lib/components/screens/training/components/TrainingStatsOverlayHtml.d.ts +63 -0
- package/lib/components/screens/training/components/TrainingStatsOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/training/components/TrainingStatsOverlayHtml.js +253 -0
- package/lib/components/screens/training/components/TrainingStatsOverlayHtml.js.map +1 -0
- package/lib/components/screens/training/components/VitalPointMarker3D.d.ts +37 -0
- package/lib/components/screens/training/components/VitalPointMarker3D.d.ts.map +1 -0
- package/lib/components/screens/training/components/VitalPointMarker3D.js +210 -0
- package/lib/components/screens/training/components/VitalPointMarker3D.js.map +1 -0
- package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.d.ts +29 -0
- package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.d.ts.map +1 -0
- package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.js +195 -0
- package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.js.map +1 -0
- package/lib/components/screens/training/components/hud/TrainingBottomHUD.d.ts +59 -0
- package/lib/components/screens/training/components/hud/TrainingBottomHUD.d.ts.map +1 -0
- package/lib/components/screens/training/components/hud/TrainingBottomHUD.js +145 -0
- package/lib/components/screens/training/components/hud/TrainingBottomHUD.js.map +1 -0
- package/lib/components/screens/training/components/hud/TrainingLeftHUD.d.ts +47 -0
- package/lib/components/screens/training/components/hud/TrainingLeftHUD.d.ts.map +1 -0
- package/lib/components/screens/training/components/hud/TrainingLeftHUD.js +59 -0
- package/lib/components/screens/training/components/hud/TrainingLeftHUD.js.map +1 -0
- package/lib/components/screens/training/components/hud/TrainingRightHUD.d.ts +68 -0
- package/lib/components/screens/training/components/hud/TrainingRightHUD.d.ts.map +1 -0
- package/lib/components/screens/training/components/hud/TrainingRightHUD.js +93 -0
- package/lib/components/screens/training/components/hud/TrainingRightHUD.js.map +1 -0
- package/lib/components/screens/training/components/hud/TrainingTopHUD.d.ts +55 -0
- package/lib/components/screens/training/components/hud/TrainingTopHUD.d.ts.map +1 -0
- package/lib/components/screens/training/components/hud/TrainingTopHUD.js +184 -0
- package/lib/components/screens/training/components/hud/TrainingTopHUD.js.map +1 -0
- package/lib/components/screens/training/components/hud/index.d.ts +13 -0
- package/lib/components/screens/training/components/hud/index.d.ts.map +1 -0
- package/lib/components/screens/training/components/hud/index.js +4 -0
- package/lib/components/screens/training/components/index.d.ts +22 -0
- package/lib/components/screens/training/components/index.d.ts.map +1 -0
- package/lib/components/screens/training/components/index.js +19 -0
- package/lib/components/screens/training/hooks/useAttackMovement.d.ts +69 -0
- package/lib/components/screens/training/hooks/useAttackMovement.d.ts.map +1 -0
- package/lib/components/screens/training/hooks/useAttackMovement.js +118 -0
- package/lib/components/screens/training/hooks/useAttackMovement.js.map +1 -0
- package/lib/components/screens/training/hooks/useTrainingActions.d.ts +82 -0
- package/lib/components/screens/training/hooks/useTrainingActions.d.ts.map +1 -0
- package/lib/components/screens/training/hooks/useTrainingActions.js +284 -0
- package/lib/components/screens/training/hooks/useTrainingActions.js.map +1 -0
- package/lib/components/screens/training/hooks/useTrainingLayout.d.ts +62 -0
- package/lib/components/screens/training/hooks/useTrainingLayout.d.ts.map +1 -0
- package/lib/components/screens/training/hooks/useTrainingLayout.js +96 -0
- package/lib/components/screens/training/hooks/useTrainingLayout.js.map +1 -0
- package/lib/components/screens/training/hooks/useTrainingState.d.ts +100 -0
- package/lib/components/screens/training/hooks/useTrainingState.d.ts.map +1 -0
- package/lib/components/screens/training/hooks/useTrainingState.js +344 -0
- package/lib/components/screens/training/hooks/useTrainingState.js.map +1 -0
- package/lib/components/screens/training/index.d.ts +4 -0
- package/lib/components/screens/training/index.d.ts.map +1 -0
- package/lib/components/screens/training/index.js +16 -0
- package/lib/components/shared/base/AccessibilityProvider.d.ts +51 -0
- package/lib/components/shared/base/AccessibilityProvider.d.ts.map +1 -0
- package/lib/components/shared/base/AccessibilityProvider.js +71 -0
- package/lib/components/shared/base/AccessibilityProvider.js.map +1 -0
- package/lib/components/shared/base/BaseButton.d.ts +42 -0
- package/lib/components/shared/base/BaseButton.d.ts.map +1 -0
- package/lib/components/shared/base/BaseButton.js +214 -0
- package/lib/components/shared/base/BaseButton.js.map +1 -0
- package/lib/components/shared/base/BaseButtonOverlayHtml.d.ts +52 -0
- package/lib/components/shared/base/BaseButtonOverlayHtml.d.ts.map +1 -0
- package/lib/components/shared/base/BaseButtonOverlayHtml.js +130 -0
- package/lib/components/shared/base/BaseButtonOverlayHtml.js.map +1 -0
- package/lib/components/shared/base/BasePanel.d.ts +30 -0
- package/lib/components/shared/base/BasePanel.d.ts.map +1 -0
- package/lib/components/shared/base/BasePanel.js +83 -0
- package/lib/components/shared/base/BasePanel.js.map +1 -0
- package/lib/components/shared/base/BaseText.d.ts +40 -0
- package/lib/components/shared/base/BaseText.d.ts.map +1 -0
- package/lib/components/shared/base/BaseText.js +157 -0
- package/lib/components/shared/base/BaseText.js.map +1 -0
- package/lib/components/shared/base/ResponsiveContainer.d.ts +126 -0
- package/lib/components/shared/base/ResponsiveContainer.d.ts.map +1 -0
- package/lib/components/shared/base/index.d.ts +23 -0
- package/lib/components/shared/base/index.d.ts.map +1 -0
- package/lib/components/shared/base/index.js +6 -0
- package/lib/components/shared/base/layoutUtils.d.ts +102 -0
- package/lib/components/shared/base/layoutUtils.d.ts.map +1 -0
- package/lib/components/shared/base/useKoreanTheme.d.ts +206 -0
- package/lib/components/shared/base/useKoreanTheme.d.ts.map +1 -0
- package/lib/components/shared/base/useKoreanTheme.js +169 -0
- package/lib/components/shared/base/useKoreanTheme.js.map +1 -0
- package/lib/components/shared/debug/PerformanceDebugOverlayHtml.d.ts +32 -0
- package/lib/components/shared/debug/PerformanceDebugOverlayHtml.d.ts.map +1 -0
- package/lib/components/shared/debug/PerformanceDebugOverlayHtml.js +69 -0
- package/lib/components/shared/debug/PerformanceDebugOverlayHtml.js.map +1 -0
- package/lib/components/shared/effects/ScreenFlash.d.ts +98 -0
- package/lib/components/shared/effects/ScreenFlash.d.ts.map +1 -0
- package/lib/components/shared/mobile/ActionButtons.d.ts +44 -0
- package/lib/components/shared/mobile/ActionButtons.d.ts.map +1 -0
- package/lib/components/shared/mobile/ActionButtons.js +324 -0
- package/lib/components/shared/mobile/ActionButtons.js.map +1 -0
- package/lib/components/shared/mobile/GestureRecognizerPure.d.ts +64 -0
- package/lib/components/shared/mobile/GestureRecognizerPure.d.ts.map +1 -0
- package/lib/components/shared/mobile/GestureRecognizerPure.js +231 -0
- package/lib/components/shared/mobile/GestureRecognizerPure.js.map +1 -0
- package/lib/components/shared/mobile/HapticController.d.ts +253 -0
- package/lib/components/shared/mobile/HapticController.d.ts.map +1 -0
- package/lib/components/shared/mobile/HapticController.js +280 -0
- package/lib/components/shared/mobile/HapticController.js.map +1 -0
- package/lib/components/shared/mobile/MobileControlsPure.d.ts +43 -0
- package/lib/components/shared/mobile/MobileControlsPure.d.ts.map +1 -0
- package/lib/components/shared/mobile/MobileControlsPure.js +294 -0
- package/lib/components/shared/mobile/MobileControlsPure.js.map +1 -0
- package/lib/components/shared/mobile/PerformanceMonitor.d.ts +249 -0
- package/lib/components/shared/mobile/PerformanceMonitor.d.ts.map +1 -0
- package/lib/components/shared/mobile/StanceWheelPure.d.ts +78 -0
- package/lib/components/shared/mobile/StanceWheelPure.d.ts.map +1 -0
- package/lib/components/shared/mobile/StanceWheelPure.js +386 -0
- package/lib/components/shared/mobile/StanceWheelPure.js.map +1 -0
- package/lib/components/shared/mobile/TouchOptimizer.d.ts +154 -0
- package/lib/components/shared/mobile/TouchOptimizer.d.ts.map +1 -0
- package/lib/components/shared/mobile/TouchOptimizer.js +83 -0
- package/lib/components/shared/mobile/TouchOptimizer.js.map +1 -0
- package/lib/components/shared/mobile/VirtualDPad.d.ts +49 -0
- package/lib/components/shared/mobile/VirtualDPad.d.ts.map +1 -0
- package/lib/components/shared/mobile/VirtualDPad.js +289 -0
- package/lib/components/shared/mobile/VirtualDPad.js.map +1 -0
- package/lib/components/shared/mobile/index.d.ts +31 -0
- package/lib/components/shared/mobile/index.d.ts.map +1 -0
- package/lib/components/shared/mobile/index.js +7 -0
- package/lib/components/shared/three/anatomy/BodySurface.d.ts +78 -0
- package/lib/components/shared/three/anatomy/BodySurface.d.ts.map +1 -0
- package/lib/components/shared/three/anatomy/BodySurface.js +393 -0
- package/lib/components/shared/three/anatomy/BodySurface.js.map +1 -0
- package/lib/components/shared/three/anatomy/BoneAttachedMuscles.d.ts +147 -0
- package/lib/components/shared/three/anatomy/BoneAttachedMuscles.d.ts.map +1 -0
- package/lib/components/shared/three/anatomy/BoneAttachedMuscles.js +541 -0
- package/lib/components/shared/three/anatomy/BoneAttachedMuscles.js.map +1 -0
- package/lib/components/shared/three/anatomy/BoneClothing.d.ts +89 -0
- package/lib/components/shared/three/anatomy/BoneClothing.d.ts.map +1 -0
- package/lib/components/shared/three/anatomy/BoneClothing.js +345 -0
- package/lib/components/shared/three/anatomy/BoneClothing.js.map +1 -0
- package/lib/components/shared/three/anatomy/BoneRenderer.d.ts +129 -0
- package/lib/components/shared/three/anatomy/BoneRenderer.d.ts.map +1 -0
- package/lib/components/shared/three/anatomy/BoneRenderer.js +266 -0
- package/lib/components/shared/three/anatomy/BoneRenderer.js.map +1 -0
- package/lib/components/shared/three/anatomy/Face3D.d.ts +40 -0
- package/lib/components/shared/three/anatomy/Face3D.d.ts.map +1 -0
- package/lib/components/shared/three/anatomy/Face3D.js +426 -0
- package/lib/components/shared/three/anatomy/Face3D.js.map +1 -0
- package/lib/components/shared/three/anatomy/Foot3D.d.ts +71 -0
- package/lib/components/shared/three/anatomy/Foot3D.d.ts.map +1 -0
- package/lib/components/shared/three/anatomy/Foot3D.js +178 -0
- package/lib/components/shared/three/anatomy/Foot3D.js.map +1 -0
- package/lib/components/shared/three/anatomy/Hand3D.d.ts +101 -0
- package/lib/components/shared/three/anatomy/Hand3D.d.ts.map +1 -0
- package/lib/components/shared/three/anatomy/Hand3D.js +376 -0
- package/lib/components/shared/three/anatomy/Hand3D.js.map +1 -0
- package/lib/components/shared/three/effects/ActionFeedback.d.ts +78 -0
- package/lib/components/shared/three/effects/ActionFeedback.d.ts.map +1 -0
- package/lib/components/shared/three/effects/ActionFeedback.js +236 -0
- package/lib/components/shared/three/effects/ActionFeedback.js.map +1 -0
- package/lib/components/shared/three/effects/DamageNumbers.d.ts +36 -0
- package/lib/components/shared/three/effects/DamageNumbers.d.ts.map +1 -0
- package/lib/components/shared/three/effects/DamageNumbers.js +148 -0
- package/lib/components/shared/three/effects/DamageNumbers.js.map +1 -0
- package/lib/components/shared/three/effects/ExplosiveBurstEffect3D.d.ts +41 -0
- package/lib/components/shared/three/effects/ExplosiveBurstEffect3D.d.ts.map +1 -0
- package/lib/components/shared/three/effects/GrapplingIndicator3D.d.ts +49 -0
- package/lib/components/shared/three/effects/GrapplingIndicator3D.d.ts.map +1 -0
- package/lib/components/shared/three/effects/HitEffects3D.d.ts +28 -0
- package/lib/components/shared/three/effects/HitEffects3D.d.ts.map +1 -0
- package/lib/components/shared/three/effects/HitEffects3D.js +427 -0
- package/lib/components/shared/three/effects/HitEffects3D.js.map +1 -0
- package/lib/components/shared/three/effects/LimbExposureIndicator3D.d.ts +67 -0
- package/lib/components/shared/three/effects/LimbExposureIndicator3D.d.ts.map +1 -0
- package/lib/components/shared/three/effects/NerveDisruptionEffect3D.d.ts +63 -0
- package/lib/components/shared/three/effects/NerveDisruptionEffect3D.d.ts.map +1 -0
- package/lib/components/shared/three/effects/PlayerStateIndicators.d.ts +36 -0
- package/lib/components/shared/three/effects/PlayerStateIndicators.d.ts.map +1 -0
- package/lib/components/shared/three/effects/PlayerStateIndicators.js +237 -0
- package/lib/components/shared/three/effects/PlayerStateIndicators.js.map +1 -0
- package/lib/components/shared/three/effects/StanceSymbol3D.d.ts +52 -0
- package/lib/components/shared/three/effects/StanceSymbol3D.d.ts.map +1 -0
- package/lib/components/shared/three/effects/StanceSymbol3D.js +128 -0
- package/lib/components/shared/three/effects/StanceSymbol3D.js.map +1 -0
- package/lib/components/shared/three/effects/StanceTransitionEffect.d.ts +56 -0
- package/lib/components/shared/three/effects/StanceTransitionEffect.d.ts.map +1 -0
- package/lib/components/shared/three/effects/StanceTransitionEffect.js +174 -0
- package/lib/components/shared/three/effects/StanceTransitionEffect.js.map +1 -0
- package/lib/components/shared/three/effects/ThunderEffect3D.d.ts +39 -0
- package/lib/components/shared/three/effects/ThunderEffect3D.d.ts.map +1 -0
- package/lib/components/shared/three/effects/VitalPointMarkers3D.d.ts +48 -0
- package/lib/components/shared/three/effects/VitalPointMarkers3D.d.ts.map +1 -0
- package/lib/components/shared/three/effects/VitalPointMarkers3D.js +249 -0
- package/lib/components/shared/three/effects/VitalPointMarkers3D.js.map +1 -0
- package/lib/components/shared/three/index.d.ts +30 -0
- package/lib/components/shared/three/index.d.ts.map +1 -0
- package/lib/components/shared/three/index.js +9 -0
- package/lib/components/shared/three/indicators/ElementalColorSystem.d.ts +184 -0
- package/lib/components/shared/three/indicators/ElementalColorSystem.d.ts.map +1 -0
- package/lib/components/shared/three/indicators/ElementalColorSystem.js +147 -0
- package/lib/components/shared/three/indicators/ElementalColorSystem.js.map +1 -0
- package/lib/components/shared/three/indicators/GuardIndicator.d.ts +58 -0
- package/lib/components/shared/three/indicators/GuardIndicator.d.ts.map +1 -0
- package/lib/components/shared/three/indicators/GuardIndicator.js +259 -0
- package/lib/components/shared/three/indicators/GuardIndicator.js.map +1 -0
- package/lib/components/shared/three/indicators/HapticFeedback.d.ts +184 -0
- package/lib/components/shared/three/indicators/HapticFeedback.d.ts.map +1 -0
- package/lib/components/shared/three/indicators/HapticFeedback.js +46 -0
- package/lib/components/shared/three/indicators/HapticFeedback.js.map +1 -0
- package/lib/components/shared/three/indicators/StanceChangeIndicator.d.ts +53 -0
- package/lib/components/shared/three/indicators/StanceChangeIndicator.d.ts.map +1 -0
- package/lib/components/shared/three/indicators/StanceChangeIndicator.js +222 -0
- package/lib/components/shared/three/indicators/StanceChangeIndicator.js.map +1 -0
- package/lib/components/shared/three/indicators/TrigramSymbol3D.d.ts +82 -0
- package/lib/components/shared/three/indicators/TrigramSymbol3D.d.ts.map +1 -0
- package/lib/components/shared/three/models/Player3DWithTransitions.d.ts +77 -0
- package/lib/components/shared/three/models/Player3DWithTransitions.d.ts.map +1 -0
- package/lib/components/shared/three/models/Player3DWithTransitions.js +118 -0
- package/lib/components/shared/three/models/Player3DWithTransitions.js.map +1 -0
- package/lib/components/shared/three/models/SkeletalPlayer3D.d.ts +44 -0
- package/lib/components/shared/three/models/SkeletalPlayer3D.d.ts.map +1 -0
- package/lib/components/shared/three/models/SkeletalPlayer3D.js +358 -0
- package/lib/components/shared/three/models/SkeletalPlayer3D.js.map +1 -0
- package/lib/components/shared/three/optimization/AdaptiveQuality.d.ts +107 -0
- package/lib/components/shared/three/optimization/AdaptiveQuality.d.ts.map +1 -0
- package/lib/components/shared/three/optimization/AdaptiveQuality.js +197 -0
- package/lib/components/shared/three/optimization/AdaptiveQuality.js.map +1 -0
- package/lib/components/shared/three/optimization/InstancedGeometry.d.ts +189 -0
- package/lib/components/shared/three/optimization/InstancedGeometry.d.ts.map +1 -0
- package/lib/components/shared/three/optimization/InstancedGeometry.js +3 -0
- package/lib/components/shared/three/optimization/LODSystem.d.ts +126 -0
- package/lib/components/shared/three/optimization/LODSystem.d.ts.map +1 -0
- package/lib/components/shared/three/optimization/LODSystem.js +3 -0
- package/lib/components/shared/three/optimization/index.d.ts +14 -0
- package/lib/components/shared/three/optimization/index.d.ts.map +1 -0
- package/lib/components/shared/three/optimization/index.js +3 -0
- package/lib/components/shared/three/scene/AtmosphericParticles3D.d.ts +31 -0
- package/lib/components/shared/three/scene/AtmosphericParticles3D.d.ts.map +1 -0
- package/lib/components/shared/three/scene/AtmosphericParticles3D.js +84 -0
- package/lib/components/shared/three/scene/AtmosphericParticles3D.js.map +1 -0
- package/lib/components/shared/three/scene/BackgroundScene3D.d.ts +76 -0
- package/lib/components/shared/three/scene/BackgroundScene3D.d.ts.map +1 -0
- package/lib/components/shared/three/scene/BackgroundScene3D.js +124 -0
- package/lib/components/shared/three/scene/BackgroundScene3D.js.map +1 -0
- package/lib/components/shared/three/scene/CombatArena3D.d.ts +38 -0
- package/lib/components/shared/three/scene/CombatArena3D.d.ts.map +1 -0
- package/lib/components/shared/three/scene/CombatArena3D.js +256 -0
- package/lib/components/shared/three/scene/CombatArena3D.js.map +1 -0
- package/lib/components/shared/three/scene/DebugCollision.d.ts +64 -0
- package/lib/components/shared/three/scene/DebugCollision.d.ts.map +1 -0
- package/lib/components/shared/three/scene/KoreanSignage3D.d.ts +29 -0
- package/lib/components/shared/three/scene/KoreanSignage3D.d.ts.map +1 -0
- package/lib/components/shared/three/scene/KoreanSignage3D.js +122 -0
- package/lib/components/shared/three/scene/KoreanSignage3D.js.map +1 -0
- package/lib/components/shared/three/ui/ArchetypeCard.d.ts +38 -0
- package/lib/components/shared/three/ui/ArchetypeCard.d.ts.map +1 -0
- package/lib/components/shared/three/ui/ArchetypeCard.js +213 -0
- package/lib/components/shared/three/ui/ArchetypeCard.js.map +1 -0
- package/lib/components/shared/three/ui/BodyPartHealthDisplay.d.ts +45 -0
- package/lib/components/shared/three/ui/BodyPartHealthDisplay.d.ts.map +1 -0
- package/lib/components/shared/three/ui/BodyPartHealthDisplay.js +206 -0
- package/lib/components/shared/three/ui/BodyPartHealthDisplay.js.map +1 -0
- package/lib/components/shared/three/ui/BreathingIndicator.d.ts +25 -0
- package/lib/components/shared/three/ui/BreathingIndicator.d.ts.map +1 -0
- package/lib/components/shared/three/ui/BreathingIndicator2.js +104 -0
- package/lib/components/shared/three/ui/BreathingIndicator2.js.map +1 -0
- package/lib/components/shared/three/ui/CombatReadinessBar.d.ts +43 -0
- package/lib/components/shared/three/ui/CombatReadinessBar.d.ts.map +1 -0
- package/lib/components/shared/three/ui/CombatReadinessBar.js +135 -0
- package/lib/components/shared/three/ui/CombatReadinessBar.js.map +1 -0
- package/lib/components/shared/three/ui/ComboCounter.d.ts +42 -0
- package/lib/components/shared/three/ui/ComboCounter.d.ts.map +1 -0
- package/lib/components/shared/three/ui/ComboCounter.js +222 -0
- package/lib/components/shared/three/ui/ComboCounter.js.map +1 -0
- package/lib/components/shared/three/ui/HealthBar.d.ts +37 -0
- package/lib/components/shared/three/ui/HealthBar.d.ts.map +1 -0
- package/lib/components/shared/three/ui/HealthBar.js +112 -0
- package/lib/components/shared/three/ui/HealthBar.js.map +1 -0
- package/lib/components/shared/three/ui/KoreanButton.d.ts +37 -0
- package/lib/components/shared/three/ui/KoreanButton.d.ts.map +1 -0
- package/lib/components/shared/three/ui/KoreanButton.js +33 -0
- package/lib/components/shared/three/ui/KoreanButton.js.map +1 -0
- package/lib/components/shared/three/ui/KoreanPanel.d.ts +32 -0
- package/lib/components/shared/three/ui/KoreanPanel.d.ts.map +1 -0
- package/lib/components/shared/three/ui/KoreanPanel.js +29 -0
- package/lib/components/shared/three/ui/KoreanPanel.js.map +1 -0
- package/lib/components/shared/three/ui/KoreanText.d.ts +35 -0
- package/lib/components/shared/three/ui/KoreanText.d.ts.map +1 -0
- package/lib/components/shared/three/ui/KoreanText.js +32 -0
- package/lib/components/shared/three/ui/KoreanText.js.map +1 -0
- package/lib/components/shared/three/ui/MenuList.d.ts +47 -0
- package/lib/components/shared/three/ui/MenuList.d.ts.map +1 -0
- package/lib/components/shared/three/ui/MenuList.js +123 -0
- package/lib/components/shared/three/ui/MenuList.js.map +1 -0
- package/lib/components/shared/three/ui/PlayerHUD.d.ts +34 -0
- package/lib/components/shared/three/ui/PlayerHUD.d.ts.map +1 -0
- package/lib/components/shared/three/ui/PlayerHUD.js +231 -0
- package/lib/components/shared/three/ui/PlayerHUD.js.map +1 -0
- package/lib/components/shared/three/ui/ProgressBar.d.ts +48 -0
- package/lib/components/shared/three/ui/ProgressBar.d.ts.map +1 -0
- package/lib/components/shared/three/ui/ProgressBar.js +173 -0
- package/lib/components/shared/three/ui/ProgressBar.js.map +1 -0
- package/lib/components/shared/three/ui/SpeedIndicatorHUD.d.ts +62 -0
- package/lib/components/shared/three/ui/SpeedIndicatorHUD.d.ts.map +1 -0
- package/lib/components/shared/three/ui/SpeedIndicatorHUD.js +185 -0
- package/lib/components/shared/three/ui/SpeedIndicatorHUD.js.map +1 -0
- package/lib/components/shared/three/ui/StaminaBar.d.ts +37 -0
- package/lib/components/shared/three/ui/StaminaBar.d.ts.map +1 -0
- package/lib/components/shared/three/ui/StaminaBar.js +103 -0
- package/lib/components/shared/three/ui/StaminaBar.js.map +1 -0
- package/lib/components/shared/three/ui/TechniqueBar.d.ts +52 -0
- package/lib/components/shared/three/ui/TechniqueBar.d.ts.map +1 -0
- package/lib/components/shared/three/ui/TechniqueBar.js +128 -0
- package/lib/components/shared/three/ui/TechniqueBar.js.map +1 -0
- package/lib/components/shared/three/ui/TechniqueBarContainer.d.ts +49 -0
- package/lib/components/shared/three/ui/TechniqueBarContainer.d.ts.map +1 -0
- package/lib/components/shared/three/ui/TechniqueCard.d.ts +64 -0
- package/lib/components/shared/three/ui/TechniqueCard.d.ts.map +1 -0
- package/lib/components/shared/three/ui/TechniqueCard.js +333 -0
- package/lib/components/shared/three/ui/TechniqueCard.js.map +1 -0
- package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.d.ts +76 -0
- package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.d.ts.map +1 -0
- package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.js +551 -0
- package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.js.map +1 -0
- package/lib/components/shared/three/ui/VulnerabilityWindowHUD.d.ts +63 -0
- package/lib/components/shared/three/ui/VulnerabilityWindowHUD.d.ts.map +1 -0
- package/lib/components/shared/ui/BackButton.d.ts +82 -0
- package/lib/components/shared/ui/BackButton.d.ts.map +1 -0
- package/lib/components/shared/ui/BackButton.js +67 -0
- package/lib/components/shared/ui/BackButton.js.map +1 -0
- package/lib/components/shared/ui/BaseHUDContainer.d.ts +71 -0
- package/lib/components/shared/ui/BaseHUDContainer.d.ts.map +1 -0
- package/lib/components/shared/ui/BaseHUDContainer.js +126 -0
- package/lib/components/shared/ui/BaseHUDContainer.js.map +1 -0
- package/lib/components/shared/ui/CombatTimer.d.ts +60 -0
- package/lib/components/shared/ui/CombatTimer.d.ts.map +1 -0
- package/lib/components/shared/ui/CombatTimer.js +145 -0
- package/lib/components/shared/ui/CombatTimer.js.map +1 -0
- package/lib/components/shared/ui/ErrorBoundary.d.ts +44 -0
- package/lib/components/shared/ui/ErrorBoundary.d.ts.map +1 -0
- package/lib/components/shared/ui/ErrorModal.d.ts +21 -0
- package/lib/components/shared/ui/ErrorModal.d.ts.map +1 -0
- package/lib/components/shared/ui/ErrorModal.js +133 -0
- package/lib/components/shared/ui/ErrorModal.js.map +1 -0
- package/lib/components/shared/ui/HUDSection.d.ts +65 -0
- package/lib/components/shared/ui/HUDSection.d.ts.map +1 -0
- package/lib/components/shared/ui/LoadingState.d.ts +50 -0
- package/lib/components/shared/ui/LoadingState.d.ts.map +1 -0
- package/lib/components/shared/ui/LoadingState.js +92 -0
- package/lib/components/shared/ui/LoadingState.js.map +1 -0
- package/lib/components/shared/ui/MobileHUDLayout.d.ts +70 -0
- package/lib/components/shared/ui/MobileHUDLayout.d.ts.map +1 -0
- package/lib/components/shared/ui/ResponsiveContainer.d.ts +69 -0
- package/lib/components/shared/ui/ResponsiveContainer.d.ts.map +1 -0
- package/lib/components/shared/ui/SplashScreen.d.ts +13 -0
- package/lib/components/shared/ui/SplashScreen.d.ts.map +1 -0
- package/lib/components/shared/ui/SplashScreen.js +204 -0
- package/lib/components/shared/ui/SplashScreen.js.map +1 -0
- package/lib/components/shared/ui/StyledHUDPanel.d.ts +56 -0
- package/lib/components/shared/ui/StyledHUDPanel.d.ts.map +1 -0
- package/lib/components/shared/ui/VitalPointOverlayControlsPure.d.ts +79 -0
- package/lib/components/shared/ui/VitalPointOverlayControlsPure.d.ts.map +1 -0
- package/lib/components/shared/ui/VitalPointOverlayControlsPure.js +550 -0
- package/lib/components/shared/ui/VitalPointOverlayControlsPure.js.map +1 -0
- package/lib/components/shared/ui/VolumeControl.d.ts +20 -0
- package/lib/components/shared/ui/VolumeControl.d.ts.map +1 -0
- package/lib/components/shared/ui/VolumeControl.js +292 -0
- package/lib/components/shared/ui/VolumeControl.js.map +1 -0
- package/lib/components/shared/ui/shared/ConfirmDialog.d.ts +29 -0
- package/lib/components/shared/ui/shared/ConfirmDialog.d.ts.map +1 -0
- package/lib/components/shared/ui/shared/ConfirmDialog.js +149 -0
- package/lib/components/shared/ui/shared/ConfirmDialog.js.map +1 -0
- package/lib/components/test/Hello3D.d.ts +36 -0
- package/lib/components/test/Hello3D.d.ts.map +1 -0
- package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.d.ts +63 -0
- package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.d.ts.map +1 -0
- package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.js +179 -0
- package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.js.map +1 -0
- package/lib/components/ui/combat/ComboCounter.d.ts +85 -0
- package/lib/components/ui/combat/ComboCounter.d.ts.map +1 -0
- package/lib/components/ui/combat/PressureMeter.d.ts +60 -0
- package/lib/components/ui/combat/PressureMeter.d.ts.map +1 -0
- package/lib/components/ui/combat/index.d.ts +8 -0
- package/lib/components/ui/combat/index.d.ts.map +1 -0
- package/lib/constants/bodyDimensions.d.ts +241 -0
- package/lib/constants/bodyDimensions.d.ts.map +1 -0
- package/lib/constants/bodyDimensions.js +213 -0
- package/lib/constants/bodyDimensions.js.map +1 -0
- package/lib/constants/bodyRenderingConstants.d.ts +295 -0
- package/lib/constants/bodyRenderingConstants.d.ts.map +1 -0
- package/lib/constants/bodyRenderingConstants.js +128 -0
- package/lib/constants/bodyRenderingConstants.js.map +1 -0
- package/lib/data/archetypeClothing.d.ts +40 -0
- package/lib/data/archetypeClothing.d.ts.map +1 -0
- package/lib/data/archetypeClothing.js +584 -0
- package/lib/data/archetypeClothing.js.map +1 -0
- package/lib/data/archetypePhysicalAttributes.d.ts +279 -0
- package/lib/data/archetypePhysicalAttributes.d.ts.map +1 -0
- package/lib/data/archetypePhysicalAttributes.js +227 -0
- package/lib/data/archetypePhysicalAttributes.js.map +1 -0
- package/lib/data/techniqueMappings.d.ts +64 -0
- package/lib/data/techniqueMappings.d.ts.map +1 -0
- package/lib/data/techniqueMappings.js +56 -0
- package/lib/data/techniqueMappings.js.map +1 -0
- package/lib/data/techniques.d.ts +84 -0
- package/lib/data/techniques.d.ts.map +1 -0
- package/lib/data/techniques.js +739 -0
- package/lib/data/techniques.js.map +1 -0
- package/lib/hooks/useActionFeedback.d.ts +114 -0
- package/lib/hooks/useActionFeedback.d.ts.map +1 -0
- package/lib/hooks/useActionFeedback.js +158 -0
- package/lib/hooks/useActionFeedback.js.map +1 -0
- package/lib/hooks/useBalanceAnimations.d.ts +62 -0
- package/lib/hooks/useBalanceAnimations.d.ts.map +1 -0
- package/lib/hooks/useBalanceAnimations.js +133 -0
- package/lib/hooks/useBalanceAnimations.js.map +1 -0
- package/lib/hooks/useCombatTimer.d.ts +77 -0
- package/lib/hooks/useCombatTimer.d.ts.map +1 -0
- package/lib/hooks/useCombatTimer.js +139 -0
- package/lib/hooks/useCombatTimer.js.map +1 -0
- package/lib/hooks/useDebounce.d.ts +30 -0
- package/lib/hooks/useDebounce.d.ts.map +1 -0
- package/lib/hooks/useHUDLayout.d.ts +67 -0
- package/lib/hooks/useHUDLayout.d.ts.map +1 -0
- package/lib/hooks/useHUDLayout.js +92 -0
- package/lib/hooks/useHUDLayout.js.map +1 -0
- package/lib/hooks/useHandPoseTransitions.d.ts +65 -0
- package/lib/hooks/useHandPoseTransitions.d.ts.map +1 -0
- package/lib/hooks/useHandPoseTransitions.js +127 -0
- package/lib/hooks/useHandPoseTransitions.js.map +1 -0
- package/lib/hooks/useKeyboardControls.d.ts +73 -0
- package/lib/hooks/useKeyboardControls.d.ts.map +1 -0
- package/lib/hooks/useKeyboardControls.js +311 -0
- package/lib/hooks/useKeyboardControls.js.map +1 -0
- package/lib/hooks/useMatchCountdown.d.ts +87 -0
- package/lib/hooks/useMatchCountdown.d.ts.map +1 -0
- package/lib/hooks/useMatchCountdown.js +162 -0
- package/lib/hooks/useMatchCountdown.js.map +1 -0
- package/lib/hooks/useMuscleActivation.d.ts +76 -0
- package/lib/hooks/useMuscleActivation.d.ts.map +1 -0
- package/lib/hooks/useMuscleActivation.js +99 -0
- package/lib/hooks/useMuscleActivation.js.map +1 -0
- package/lib/hooks/usePauseMenu.d.ts +32 -0
- package/lib/hooks/usePauseMenu.d.ts.map +1 -0
- package/lib/hooks/usePlayerAnimation.d.ts +188 -0
- package/lib/hooks/usePlayerAnimation.d.ts.map +1 -0
- package/lib/hooks/usePlayerAnimation.js +145 -0
- package/lib/hooks/usePlayerAnimation.js.map +1 -0
- package/lib/hooks/useResponsiveLayout.d.ts +184 -0
- package/lib/hooks/useResponsiveLayout.d.ts.map +1 -0
- package/lib/hooks/useRoundTransition.d.ts +87 -0
- package/lib/hooks/useRoundTransition.d.ts.map +1 -0
- package/lib/hooks/useRoundTransition.js +158 -0
- package/lib/hooks/useRoundTransition.js.map +1 -0
- package/lib/hooks/useSkeletalAnimation.d.ts +88 -0
- package/lib/hooks/useSkeletalAnimation.d.ts.map +1 -0
- package/lib/hooks/useSkeletalAnimation.js +176 -0
- package/lib/hooks/useSkeletalAnimation.js.map +1 -0
- package/lib/hooks/useTechniqueSelection.d.ts +73 -0
- package/lib/hooks/useTechniqueSelection.d.ts.map +1 -0
- package/lib/hooks/useTechniqueSelection.js +190 -0
- package/lib/hooks/useTechniqueSelection.js.map +1 -0
- package/lib/hooks/useThrottle.d.ts +30 -0
- package/lib/hooks/useThrottle.d.ts.map +1 -0
- package/lib/hooks/useThrottle.js +61 -0
- package/lib/hooks/useThrottle.js.map +1 -0
- package/lib/hooks/useTouchControls.d.ts +107 -0
- package/lib/hooks/useTouchControls.d.ts.map +1 -0
- package/lib/hooks/useTouchControls.js +260 -0
- package/lib/hooks/useTouchControls.js.map +1 -0
- package/lib/hooks/useWebGLContextLossHandler.d.ts +77 -0
- package/lib/hooks/useWebGLContextLossHandler.d.ts.map +1 -0
- package/lib/hooks/useWebGLContextLossHandler.js +119 -0
- package/lib/hooks/useWebGLContextLossHandler.js.map +1 -0
- package/lib/hooks/useWindowSize.d.ts +60 -0
- package/lib/hooks/useWindowSize.d.ts.map +1 -0
- package/lib/hooks/useWindowSize.js +62 -0
- package/lib/hooks/useWindowSize.js.map +1 -0
- package/lib/index.d.ts +21 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +114 -0
- package/lib/systems/CombatSystem.d.ts +348 -0
- package/lib/systems/CombatSystem.d.ts.map +1 -0
- package/lib/systems/CombatSystem.js +877 -0
- package/lib/systems/CombatSystem.js.map +1 -0
- package/lib/systems/EffectCalculator.d.ts +176 -0
- package/lib/systems/EffectCalculator.d.ts.map +1 -0
- package/lib/systems/EffectCalculator.js +251 -0
- package/lib/systems/EffectCalculator.js.map +1 -0
- package/lib/systems/LayoutSystem.d.ts +250 -0
- package/lib/systems/LayoutSystem.d.ts.map +1 -0
- package/lib/systems/LayoutSystem.js +337 -0
- package/lib/systems/LayoutSystem.js.map +1 -0
- package/lib/systems/PlayerEffectManager.d.ts +210 -0
- package/lib/systems/PlayerEffectManager.d.ts.map +1 -0
- package/lib/systems/PlayerEffectManager.js +178 -0
- package/lib/systems/PlayerEffectManager.js.map +1 -0
- package/lib/systems/ResponsiveScaling.d.ts +298 -0
- package/lib/systems/ResponsiveScaling.d.ts.map +1 -0
- package/lib/systems/ResponsiveScaling.js +376 -0
- package/lib/systems/ResponsiveScaling.js.map +1 -0
- package/lib/systems/TrigramSystem.d.ts +388 -0
- package/lib/systems/TrigramSystem.d.ts.map +1 -0
- package/lib/systems/TrigramSystem.js +512 -0
- package/lib/systems/TrigramSystem.js.map +1 -0
- package/lib/systems/VitalPointSystem.d.ts +330 -0
- package/lib/systems/VitalPointSystem.d.ts.map +1 -0
- package/lib/systems/VitalPointSystem.js +455 -0
- package/lib/systems/VitalPointSystem.js.map +1 -0
- package/lib/systems/ai/AIPersonality.d.ts +133 -0
- package/lib/systems/ai/AIPersonality.d.ts.map +1 -0
- package/lib/systems/ai/AIPersonality.js +245 -0
- package/lib/systems/ai/AIPersonality.js.map +1 -0
- package/lib/systems/ai/AdaptiveDifficulty.d.ts +159 -0
- package/lib/systems/ai/AdaptiveDifficulty.d.ts.map +1 -0
- package/lib/systems/ai/AdaptiveDifficulty.js +297 -0
- package/lib/systems/ai/AdaptiveDifficulty.js.map +1 -0
- package/lib/systems/ai/ArchetypeEnforcer.d.ts +132 -0
- package/lib/systems/ai/ArchetypeEnforcer.d.ts.map +1 -0
- package/lib/systems/ai/ArchetypeEnforcer.js +279 -0
- package/lib/systems/ai/ArchetypeEnforcer.js.map +1 -0
- package/lib/systems/ai/ComboSystem.d.ts +136 -0
- package/lib/systems/ai/ComboSystem.d.ts.map +1 -0
- package/lib/systems/ai/ComboSystem.js +384 -0
- package/lib/systems/ai/ComboSystem.js.map +1 -0
- package/lib/systems/ai/DecisionTree.d.ts +563 -0
- package/lib/systems/ai/DecisionTree.d.ts.map +1 -0
- package/lib/systems/ai/DecisionTree.js +1516 -0
- package/lib/systems/ai/DecisionTree.js.map +1 -0
- package/lib/systems/ai/TrainingAI.d.ts +132 -0
- package/lib/systems/ai/TrainingAI.d.ts.map +1 -0
- package/lib/systems/ai/TrainingAI.js +265 -0
- package/lib/systems/ai/TrainingAI.js.map +1 -0
- package/lib/systems/ai/__tests__/AI-Performance.bench.d.ts +19 -0
- package/lib/systems/ai/__tests__/AI-Performance.bench.d.ts.map +1 -0
- package/lib/systems/ai/index.d.ts +12 -0
- package/lib/systems/ai/index.d.ts.map +1 -0
- package/lib/systems/ai/index.js +7 -0
- package/lib/systems/ai/types.d.ts +111 -0
- package/lib/systems/ai/types.d.ts.map +1 -0
- package/lib/systems/ai/types.js +24 -0
- package/lib/systems/ai/types.js.map +1 -0
- package/lib/systems/animation/AnimationCategory.d.ts +64 -0
- package/lib/systems/animation/AnimationCategory.d.ts.map +1 -0
- package/lib/systems/animation/builders/AnimationBuilder.d.ts +288 -0
- package/lib/systems/animation/builders/AnimationBuilder.d.ts.map +1 -0
- package/lib/systems/animation/builders/AnimationBuilder.js +261 -0
- package/lib/systems/animation/builders/AnimationBuilder.js.map +1 -0
- package/lib/systems/animation/builders/AnimationFactoryPresets.d.ts +280 -0
- package/lib/systems/animation/builders/AnimationFactoryPresets.d.ts.map +1 -0
- package/lib/systems/animation/builders/AnimationFactoryPresets.js +234 -0
- package/lib/systems/animation/builders/AnimationFactoryPresets.js.map +1 -0
- package/lib/systems/animation/builders/HandPoseApplicator.d.ts +56 -0
- package/lib/systems/animation/builders/HandPoseApplicator.d.ts.map +1 -0
- package/lib/systems/animation/builders/HandPoseApplicator.js +130 -0
- package/lib/systems/animation/builders/HandPoseApplicator.js.map +1 -0
- package/lib/systems/animation/builders/HandPoses.d.ts +186 -0
- package/lib/systems/animation/builders/HandPoses.d.ts.map +1 -0
- package/lib/systems/animation/builders/HandPoses.js +509 -0
- package/lib/systems/animation/builders/HandPoses.js.map +1 -0
- package/lib/systems/animation/builders/KeyframeConfig.d.ts +207 -0
- package/lib/systems/animation/builders/KeyframeConfig.d.ts.map +1 -0
- package/lib/systems/animation/builders/KeyframeConfig.js +264 -0
- package/lib/systems/animation/builders/KeyframeConfig.js.map +1 -0
- package/lib/systems/animation/builders/KeyframeInterpolation.d.ts +491 -0
- package/lib/systems/animation/builders/KeyframeInterpolation.d.ts.map +1 -0
- package/lib/systems/animation/builders/KeyframeInterpolation.js +252 -0
- package/lib/systems/animation/builders/KeyframeInterpolation.js.map +1 -0
- package/lib/systems/animation/builders/KickPhaseApplicator.d.ts +119 -0
- package/lib/systems/animation/builders/KickPhaseApplicator.d.ts.map +1 -0
- package/lib/systems/animation/builders/KickPhaseApplicator.js +119 -0
- package/lib/systems/animation/builders/KickPhaseApplicator.js.map +1 -0
- package/lib/systems/animation/builders/KoreanGuardPositions.d.ts +208 -0
- package/lib/systems/animation/builders/KoreanGuardPositions.d.ts.map +1 -0
- package/lib/systems/animation/builders/KoreanGuardPositions.js +267 -0
- package/lib/systems/animation/builders/KoreanGuardPositions.js.map +1 -0
- package/lib/systems/animation/builders/MartialArtsAnimationBuilder.d.ts +1310 -0
- package/lib/systems/animation/builders/MartialArtsAnimationBuilder.d.ts.map +1 -0
- package/lib/systems/animation/builders/MartialArtsAnimationBuilder.js +2857 -0
- package/lib/systems/animation/builders/MartialArtsAnimationBuilder.js.map +1 -0
- package/lib/systems/animation/builders/MartialArtsConstants.d.ts +1034 -0
- package/lib/systems/animation/builders/MartialArtsConstants.d.ts.map +1 -0
- package/lib/systems/animation/builders/MartialArtsConstants.js +1644 -0
- package/lib/systems/animation/builders/MartialArtsConstants.js.map +1 -0
- package/lib/systems/animation/builders/MartialPoseApplicator.d.ts +54 -0
- package/lib/systems/animation/builders/MartialPoseApplicator.d.ts.map +1 -0
- package/lib/systems/animation/builders/MartialPoseApplicator.js +54 -0
- package/lib/systems/animation/builders/MartialPoseApplicator.js.map +1 -0
- package/lib/systems/animation/builders/PunchPhaseApplicator.d.ts +73 -0
- package/lib/systems/animation/builders/PunchPhaseApplicator.d.ts.map +1 -0
- package/lib/systems/animation/builders/PunchPhaseApplicator.js +68 -0
- package/lib/systems/animation/builders/PunchPhaseApplicator.js.map +1 -0
- package/lib/systems/animation/builders/SkeletonRig.d.ts +321 -0
- package/lib/systems/animation/builders/SkeletonRig.d.ts.map +1 -0
- package/lib/systems/animation/builders/SkeletonRig.js +330 -0
- package/lib/systems/animation/builders/SkeletonRig.js.map +1 -0
- package/lib/systems/animation/builders/TrigramGuardApplicator.d.ts +99 -0
- package/lib/systems/animation/builders/TrigramGuardApplicator.d.ts.map +1 -0
- package/lib/systems/animation/builders/TrigramGuardApplicator.js +185 -0
- package/lib/systems/animation/builders/TrigramGuardApplicator.js.map +1 -0
- package/lib/systems/animation/builders/index.d.ts +23 -0
- package/lib/systems/animation/builders/index.d.ts.map +1 -0
- package/lib/systems/animation/builders/index.js +13 -0
- package/lib/systems/animation/catalogs/AttackAnimations.d.ts +523 -0
- package/lib/systems/animation/catalogs/AttackAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/AttackAnimations.js +537 -0
- package/lib/systems/animation/catalogs/AttackAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/BasicAnimations.d.ts +84 -0
- package/lib/systems/animation/catalogs/BasicAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/BasicAnimations.js +92 -0
- package/lib/systems/animation/catalogs/BasicAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/ComboAnimations.d.ts +370 -0
- package/lib/systems/animation/catalogs/ComboAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/ComboAnimations.js +400 -0
- package/lib/systems/animation/catalogs/ComboAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/DarkOpsAnimations.d.ts +301 -0
- package/lib/systems/animation/catalogs/DarkOpsAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/DarkOpsAnimations.js +322 -0
- package/lib/systems/animation/catalogs/DarkOpsAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/DefensiveAnimations.d.ts +134 -0
- package/lib/systems/animation/catalogs/DefensiveAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/DefensiveAnimations.js +142 -0
- package/lib/systems/animation/catalogs/DefensiveAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/ElbowKneeAnimations.d.ts +437 -0
- package/lib/systems/animation/catalogs/ElbowKneeAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/ElbowKneeAnimations.js +452 -0
- package/lib/systems/animation/catalogs/ElbowKneeAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/EnhancedAttackAnimations.d.ts +146 -0
- package/lib/systems/animation/catalogs/EnhancedAttackAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/EnhancedAttackAnimations.js +100 -0
- package/lib/systems/animation/catalogs/EnhancedAttackAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/EnhancedElbowKneeAnimations.d.ts +81 -0
- package/lib/systems/animation/catalogs/EnhancedElbowKneeAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/EnhancedElbowKneeAnimations.js +94 -0
- package/lib/systems/animation/catalogs/EnhancedElbowKneeAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/FootworkSkeletalAnimations.d.ts +268 -0
- package/lib/systems/animation/catalogs/FootworkSkeletalAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/FootworkSkeletalAnimations.js +196 -0
- package/lib/systems/animation/catalogs/FootworkSkeletalAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/GamRedirectionAnimations.d.ts +64 -0
- package/lib/systems/animation/catalogs/GamRedirectionAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GamRedirectionAnimations.js +68 -0
- package/lib/systems/animation/catalogs/GamRedirectionAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/GamStanceAnimations.d.ts +111 -0
- package/lib/systems/animation/catalogs/GamStanceAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GamStanceAnimations.js +9 -0
- package/lib/systems/animation/catalogs/GamStanceAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/GamTechniqueAnimations.d.ts +82 -0
- package/lib/systems/animation/catalogs/GamTechniqueAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GamTechniqueAnimations.js +55 -0
- package/lib/systems/animation/catalogs/GamTechniqueAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/GanStanceAnimations.d.ts +122 -0
- package/lib/systems/animation/catalogs/GanStanceAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GanStanceAnimations.js +135 -0
- package/lib/systems/animation/catalogs/GanStanceAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/GanTechniqueAnimations.d.ts +78 -0
- package/lib/systems/animation/catalogs/GanTechniqueAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GanTechniqueAnimations.js +83 -0
- package/lib/systems/animation/catalogs/GanTechniqueAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/GeonStanceAnimations.d.ts +323 -0
- package/lib/systems/animation/catalogs/GeonStanceAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GeonStanceAnimations.js +341 -0
- package/lib/systems/animation/catalogs/GeonStanceAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/GonGuardPoses.d.ts +84 -0
- package/lib/systems/animation/catalogs/GonGuardPoses.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GonGuardPoses.js +6 -0
- package/lib/systems/animation/catalogs/GonGuardPoses.js.map +1 -0
- package/lib/systems/animation/catalogs/GonStanceAnimations.d.ts +134 -0
- package/lib/systems/animation/catalogs/GonStanceAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GonStanceAnimations.js +9 -0
- package/lib/systems/animation/catalogs/GonStanceAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/GonTechniqueAnimations.d.ts +265 -0
- package/lib/systems/animation/catalogs/GonTechniqueAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GonTechniqueAnimations.js +13 -0
- package/lib/systems/animation/catalogs/GonTechniqueAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/GrapplingAnimations.d.ts +452 -0
- package/lib/systems/animation/catalogs/GrapplingAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/GrapplingAnimations.js +475 -0
- package/lib/systems/animation/catalogs/GrapplingAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/JinStanceAnimations.d.ts +98 -0
- package/lib/systems/animation/catalogs/JinStanceAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/JinStanceAnimations.js +111 -0
- package/lib/systems/animation/catalogs/JinStanceAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/JinTechniqueAnimations.d.ts +80 -0
- package/lib/systems/animation/catalogs/JinTechniqueAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/JinTechniqueAnimations.js +89 -0
- package/lib/systems/animation/catalogs/JinTechniqueAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/KickAnimations.d.ts +916 -0
- package/lib/systems/animation/catalogs/KickAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/KickAnimations.js +929 -0
- package/lib/systems/animation/catalogs/KickAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/LiStanceAnimations.d.ts +140 -0
- package/lib/systems/animation/catalogs/LiStanceAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/LiStanceAnimations.js +122 -0
- package/lib/systems/animation/catalogs/LiStanceAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/LiTechniqueAnimations.d.ts +104 -0
- package/lib/systems/animation/catalogs/LiTechniqueAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/LiTechniqueAnimations.js +90 -0
- package/lib/systems/animation/catalogs/LiTechniqueAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/MovementAnimations.d.ts +344 -0
- package/lib/systems/animation/catalogs/MovementAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/MovementAnimations.js +371 -0
- package/lib/systems/animation/catalogs/MovementAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/PunchAnimations.d.ts +496 -0
- package/lib/systems/animation/catalogs/PunchAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/PunchAnimations.js +498 -0
- package/lib/systems/animation/catalogs/PunchAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/RecoveryAnimations.d.ts +184 -0
- package/lib/systems/animation/catalogs/RecoveryAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/RecoveryAnimations.js +465 -0
- package/lib/systems/animation/catalogs/RecoveryAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/SonStanceAnimations.d.ts +149 -0
- package/lib/systems/animation/catalogs/SonStanceAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/SonStanceAnimations.js +131 -0
- package/lib/systems/animation/catalogs/SonStanceAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/SonTechniqueAnimations.d.ts +90 -0
- package/lib/systems/animation/catalogs/SonTechniqueAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/SonTechniqueAnimations.js +95 -0
- package/lib/systems/animation/catalogs/SonTechniqueAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/SpecializedPunchAnimations.d.ts +178 -0
- package/lib/systems/animation/catalogs/SpecializedPunchAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/SpecializedPunchAnimations.js +188 -0
- package/lib/systems/animation/catalogs/SpecializedPunchAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/StanceAnimations.d.ts +687 -0
- package/lib/systems/animation/catalogs/StanceAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/StanceAnimations.js +840 -0
- package/lib/systems/animation/catalogs/StanceAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/StanceAttackAnimations.d.ts +483 -0
- package/lib/systems/animation/catalogs/StanceAttackAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/StanceAttackAnimations.js +2369 -0
- package/lib/systems/animation/catalogs/StanceAttackAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/StanceGuardPoses.d.ts +327 -0
- package/lib/systems/animation/catalogs/StanceGuardPoses.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/StanceGuardPoses.js +655 -0
- package/lib/systems/animation/catalogs/StanceGuardPoses.js.map +1 -0
- package/lib/systems/animation/catalogs/StanceIdleAnimations.d.ts +255 -0
- package/lib/systems/animation/catalogs/StanceIdleAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/StanceIdleAnimations.js +446 -0
- package/lib/systems/animation/catalogs/StanceIdleAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/StanceLocomotionAnimations.d.ts +207 -0
- package/lib/systems/animation/catalogs/StanceLocomotionAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/StanceLocomotionAnimations.js +309 -0
- package/lib/systems/animation/catalogs/StanceLocomotionAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/StepAnimations.d.ts +274 -0
- package/lib/systems/animation/catalogs/StepAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/StepAnimations.js +73 -0
- package/lib/systems/animation/catalogs/StepAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/StepSkeletalAnimations.d.ts +100 -0
- package/lib/systems/animation/catalogs/StepSkeletalAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/StepSkeletalAnimations.js +99 -0
- package/lib/systems/animation/catalogs/StepSkeletalAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/TaeJointLockAnimations.d.ts +170 -0
- package/lib/systems/animation/catalogs/TaeJointLockAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/TaeJointLockAnimations.js +141 -0
- package/lib/systems/animation/catalogs/TaeJointLockAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/TaeStanceAnimations.d.ts +120 -0
- package/lib/systems/animation/catalogs/TaeStanceAnimations.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/TaeStanceAnimations.js +139 -0
- package/lib/systems/animation/catalogs/TaeStanceAnimations.js.map +1 -0
- package/lib/systems/animation/catalogs/index.d.ts +43 -0
- package/lib/systems/animation/catalogs/index.d.ts.map +1 -0
- package/lib/systems/animation/catalogs/index.js +36 -0
- package/lib/systems/animation/constants/AnatomicalLimits.d.ts +234 -0
- package/lib/systems/animation/constants/AnatomicalLimits.d.ts.map +1 -0
- package/lib/systems/animation/constants/AnatomicalLimits.js +61 -0
- package/lib/systems/animation/constants/AnatomicalLimits.js.map +1 -0
- package/lib/systems/animation/constants/index.d.ts +13 -0
- package/lib/systems/animation/constants/index.d.ts.map +1 -0
- package/lib/systems/animation/core/AnimationHitTiming.d.ts +184 -0
- package/lib/systems/animation/core/AnimationHitTiming.d.ts.map +1 -0
- package/lib/systems/animation/core/AnimationHitTiming.js +766 -0
- package/lib/systems/animation/core/AnimationHitTiming.js.map +1 -0
- package/lib/systems/animation/core/AnimationOptimizations.d.ts +221 -0
- package/lib/systems/animation/core/AnimationOptimizations.d.ts.map +1 -0
- package/lib/systems/animation/core/AnimationOptimizations.js +322 -0
- package/lib/systems/animation/core/AnimationOptimizations.js.map +1 -0
- package/lib/systems/animation/core/AnimationPriority.d.ts +391 -0
- package/lib/systems/animation/core/AnimationPriority.d.ts.map +1 -0
- package/lib/systems/animation/core/AnimationPriority.js +349 -0
- package/lib/systems/animation/core/AnimationPriority.js.map +1 -0
- package/lib/systems/animation/core/AnimationRegistry.d.ts +220 -0
- package/lib/systems/animation/core/AnimationRegistry.d.ts.map +1 -0
- package/lib/systems/animation/core/AnimationRegistry.js +416 -0
- package/lib/systems/animation/core/AnimationRegistry.js.map +1 -0
- package/lib/systems/animation/core/AnimationStateMachine.d.ts +701 -0
- package/lib/systems/animation/core/AnimationStateMachine.d.ts.map +1 -0
- package/lib/systems/animation/core/AnimationStateMachine.js +1458 -0
- package/lib/systems/animation/core/AnimationStateMachine.js.map +1 -0
- package/lib/systems/animation/core/AnimationTransitions.d.ts +275 -0
- package/lib/systems/animation/core/AnimationTransitions.d.ts.map +1 -0
- package/lib/systems/animation/core/AnimationTransitions.js +920 -0
- package/lib/systems/animation/core/AnimationTransitions.js.map +1 -0
- package/lib/systems/animation/core/LateralityTransform.d.ts +120 -0
- package/lib/systems/animation/core/LateralityTransform.d.ts.map +1 -0
- package/lib/systems/animation/core/LateralityTransform.js +204 -0
- package/lib/systems/animation/core/LateralityTransform.js.map +1 -0
- package/lib/systems/animation/core/RecoveryPhaseEnhancer.d.ts +171 -0
- package/lib/systems/animation/core/RecoveryPhaseEnhancer.d.ts.map +1 -0
- package/lib/systems/animation/core/RecoveryPhaseEnhancer.js +122 -0
- package/lib/systems/animation/core/RecoveryPhaseEnhancer.js.map +1 -0
- package/lib/systems/animation/core/TechniqueAnimationMapper.d.ts +303 -0
- package/lib/systems/animation/core/TechniqueAnimationMapper.d.ts.map +1 -0
- package/lib/systems/animation/core/TechniqueAnimationMapper.js +770 -0
- package/lib/systems/animation/core/TechniqueAnimationMapper.js.map +1 -0
- package/lib/systems/animation/core/TechniqueAnimationMapping.d.ts +74 -0
- package/lib/systems/animation/core/TechniqueAnimationMapping.d.ts.map +1 -0
- package/lib/systems/animation/core/TechniqueAnimationMapping.js +1313 -0
- package/lib/systems/animation/core/TechniqueAnimationMapping.js.map +1 -0
- package/lib/systems/animation/core/TrigramAnimationMapping.d.ts +286 -0
- package/lib/systems/animation/core/TrigramAnimationMapping.d.ts.map +1 -0
- package/lib/systems/animation/core/TrigramAnimationMapping.js +6 -0
- package/lib/systems/animation/core/TrigramStanceTransitions.d.ts +186 -0
- package/lib/systems/animation/core/TrigramStanceTransitions.d.ts.map +1 -0
- package/lib/systems/animation/core/TrigramStanceTransitions.js +8 -0
- package/lib/systems/animation/core/TrigramStanceTransitions.js.map +1 -0
- package/lib/systems/animation/core/index.d.ts +23 -0
- package/lib/systems/animation/core/index.d.ts.map +1 -0
- package/lib/systems/animation/core/index.js +16 -0
- package/lib/systems/animation/core/types.d.ts +1360 -0
- package/lib/systems/animation/core/types.d.ts.map +1 -0
- package/lib/systems/animation/core/types.js +539 -0
- package/lib/systems/animation/core/types.js.map +1 -0
- package/lib/systems/animation/index.d.ts +16 -0
- package/lib/systems/animation/index.d.ts.map +1 -0
- package/lib/systems/animation/index.js +63 -0
- package/lib/systems/animation/systems/AdvancedJointMovements.d.ts +614 -0
- package/lib/systems/animation/systems/AdvancedJointMovements.d.ts.map +1 -0
- package/lib/systems/animation/systems/AdvancedJointMovements.js +95 -0
- package/lib/systems/animation/systems/AdvancedJointMovements.js.map +1 -0
- package/lib/systems/animation/systems/BodyFacingSystem.d.ts +331 -0
- package/lib/systems/animation/systems/BodyFacingSystem.d.ts.map +1 -0
- package/lib/systems/animation/systems/BodyFacingSystem.js +327 -0
- package/lib/systems/animation/systems/BodyFacingSystem.js.map +1 -0
- package/lib/systems/animation/systems/FacialExpressions.d.ts +167 -0
- package/lib/systems/animation/systems/FacialExpressions.d.ts.map +1 -0
- package/lib/systems/animation/systems/FacialExpressions.js +76 -0
- package/lib/systems/animation/systems/FacialExpressions.js.map +1 -0
- package/lib/systems/animation/systems/FallAnimations.d.ts +174 -0
- package/lib/systems/animation/systems/FallAnimations.d.ts.map +1 -0
- package/lib/systems/animation/systems/FallAnimations.js +104 -0
- package/lib/systems/animation/systems/FallAnimations.js.map +1 -0
- package/lib/systems/animation/systems/HeadMovements.d.ts +152 -0
- package/lib/systems/animation/systems/HeadMovements.d.ts.map +1 -0
- package/lib/systems/animation/systems/HeadMovements.js +2 -0
- package/lib/systems/animation/systems/MuscleActivation.d.ts +163 -0
- package/lib/systems/animation/systems/MuscleActivation.d.ts.map +1 -0
- package/lib/systems/animation/systems/MuscleActivation.js +427 -0
- package/lib/systems/animation/systems/MuscleActivation.js.map +1 -0
- package/lib/systems/animation/systems/RecoveryVisualization.d.ts +142 -0
- package/lib/systems/animation/systems/RecoveryVisualization.d.ts.map +1 -0
- package/lib/systems/animation/systems/RecoveryVisualization.js +1 -0
- package/lib/systems/animation/systems/index.d.ts +17 -0
- package/lib/systems/animation/systems/index.d.ts.map +1 -0
- package/lib/systems/animation/systems/index.js +7 -0
- package/lib/systems/animation/utils/AnimationMirror.d.ts +157 -0
- package/lib/systems/animation/utils/AnimationMirror.d.ts.map +1 -0
- package/lib/systems/animation/utils/AnimationMirror.js +30 -0
- package/lib/systems/animation/utils/AnimationMirror.js.map +1 -0
- package/lib/systems/audio/BoneImpactAudioSystem.d.ts +182 -0
- package/lib/systems/audio/BoneImpactAudioSystem.d.ts.map +1 -0
- package/lib/systems/audio/index.d.ts +7 -0
- package/lib/systems/audio/index.d.ts.map +1 -0
- package/lib/systems/bodypart/BodyPartDamageIntegration.d.ts +149 -0
- package/lib/systems/bodypart/BodyPartDamageIntegration.d.ts.map +1 -0
- package/lib/systems/bodypart/BodyPartDamageIntegration.js +38 -0
- package/lib/systems/bodypart/BodyPartDamageIntegration.js.map +1 -0
- package/lib/systems/bodypart/BodyPartHealthSystem.d.ts +233 -0
- package/lib/systems/bodypart/BodyPartHealthSystem.d.ts.map +1 -0
- package/lib/systems/bodypart/BodyPartHealthSystem.js +476 -0
- package/lib/systems/bodypart/BodyPartHealthSystem.js.map +1 -0
- package/lib/systems/bodypart/BodyPartPositionMapping.d.ts +116 -0
- package/lib/systems/bodypart/BodyPartPositionMapping.d.ts.map +1 -0
- package/lib/systems/bodypart/BodyPartPositionMapping.js +122 -0
- package/lib/systems/bodypart/BodyPartPositionMapping.js.map +1 -0
- package/lib/systems/bodypart/CombatInjuryIntegration.d.ts +191 -0
- package/lib/systems/bodypart/CombatInjuryIntegration.d.ts.map +1 -0
- package/lib/systems/bodypart/CombatInjuryIntegration.js +169 -0
- package/lib/systems/bodypart/CombatInjuryIntegration.js.map +1 -0
- package/lib/systems/bodypart/InjuryIntegration.d.ts +39 -0
- package/lib/systems/bodypart/InjuryIntegration.d.ts.map +1 -0
- package/lib/systems/bodypart/InjuryTracker.d.ts +256 -0
- package/lib/systems/bodypart/InjuryTracker.d.ts.map +1 -0
- package/lib/systems/bodypart/InjuryTracker.js +240 -0
- package/lib/systems/bodypart/InjuryTracker.js.map +1 -0
- package/lib/systems/bodypart/MovementPenaltySystem.d.ts +191 -0
- package/lib/systems/bodypart/MovementPenaltySystem.d.ts.map +1 -0
- package/lib/systems/bodypart/MovementPenaltySystem.js +255 -0
- package/lib/systems/bodypart/MovementPenaltySystem.js.map +1 -0
- package/lib/systems/bodypart/PlayerInjuryTrackingManager.d.ts +137 -0
- package/lib/systems/bodypart/PlayerInjuryTrackingManager.d.ts.map +1 -0
- package/lib/systems/bodypart/PlayerInjuryTrackingManager.js +175 -0
- package/lib/systems/bodypart/PlayerInjuryTrackingManager.js.map +1 -0
- package/lib/systems/bodypart/index.d.ts +22 -0
- package/lib/systems/bodypart/index.d.ts.map +1 -0
- package/lib/systems/bodypart/index.js +8 -0
- package/lib/systems/bodypart/types.d.ts +453 -0
- package/lib/systems/bodypart/types.d.ts.map +1 -0
- package/lib/systems/bodypart/types.js +157 -0
- package/lib/systems/bodypart/types.js.map +1 -0
- package/lib/systems/breathing/BreathingDisruptionSystem.d.ts +289 -0
- package/lib/systems/breathing/BreathingDisruptionSystem.d.ts.map +1 -0
- package/lib/systems/breathing/BreathingDisruptionSystem.js +388 -0
- package/lib/systems/breathing/BreathingDisruptionSystem.js.map +1 -0
- package/lib/systems/breathing/feedback.d.ts +131 -0
- package/lib/systems/breathing/feedback.d.ts.map +1 -0
- package/lib/systems/breathing/feedback.js +80 -0
- package/lib/systems/breathing/feedback.js.map +1 -0
- package/lib/systems/breathing/index.d.ts +12 -0
- package/lib/systems/breathing/index.d.ts.map +1 -0
- package/lib/systems/breathing/index.js +3 -0
- package/lib/systems/breathing/integration.d.ts +140 -0
- package/lib/systems/breathing/integration.d.ts.map +1 -0
- package/lib/systems/breathing/integration.js +194 -0
- package/lib/systems/breathing/integration.js.map +1 -0
- package/lib/systems/combat/AICounterAttackIntegration.d.ts +223 -0
- package/lib/systems/combat/AICounterAttackIntegration.d.ts.map +1 -0
- package/lib/systems/combat/BalanceSystem.d.ts +667 -0
- package/lib/systems/combat/BalanceSystem.d.ts.map +1 -0
- package/lib/systems/combat/BalanceSystem.js +811 -0
- package/lib/systems/combat/BalanceSystem.js.map +1 -0
- package/lib/systems/combat/BreakingStatusEffects.d.ts +96 -0
- package/lib/systems/combat/BreakingStatusEffects.d.ts.map +1 -0
- package/lib/systems/combat/BreakingStatusEffects.js +60 -0
- package/lib/systems/combat/BreakingStatusEffects.js.map +1 -0
- package/lib/systems/combat/CombatStateSystem.d.ts +264 -0
- package/lib/systems/combat/CombatStateSystem.d.ts.map +1 -0
- package/lib/systems/combat/CombatStateSystem.js +353 -0
- package/lib/systems/combat/CombatStateSystem.js.map +1 -0
- package/lib/systems/combat/ConsciousnessSystem.d.ts +402 -0
- package/lib/systems/combat/ConsciousnessSystem.d.ts.map +1 -0
- package/lib/systems/combat/ConsciousnessSystem.js +529 -0
- package/lib/systems/combat/ConsciousnessSystem.js.map +1 -0
- package/lib/systems/combat/FallIntegration.d.ts +82 -0
- package/lib/systems/combat/FallIntegration.d.ts.map +1 -0
- package/lib/systems/combat/FallIntegration.js +100 -0
- package/lib/systems/combat/FallIntegration.js.map +1 -0
- package/lib/systems/combat/GrappleSystem.d.ts +264 -0
- package/lib/systems/combat/GrappleSystem.d.ts.map +1 -0
- package/lib/systems/combat/GrappleSystem.js +393 -0
- package/lib/systems/combat/GrappleSystem.js.map +1 -0
- package/lib/systems/combat/LimbExposureSystem.d.ts +150 -0
- package/lib/systems/combat/LimbExposureSystem.d.ts.map +1 -0
- package/lib/systems/combat/LimbExposureSystem.js +308 -0
- package/lib/systems/combat/LimbExposureSystem.js.map +1 -0
- package/lib/systems/combat/PainResponseSystem.d.ts +299 -0
- package/lib/systems/combat/PainResponseSystem.d.ts.map +1 -0
- package/lib/systems/combat/PainResponseSystem.js +401 -0
- package/lib/systems/combat/PainResponseSystem.js.map +1 -0
- package/lib/systems/combat/SlowMotionController.d.ts +123 -0
- package/lib/systems/combat/SlowMotionController.d.ts.map +1 -0
- package/lib/systems/combat/TrainingCombatSystem.d.ts +89 -0
- package/lib/systems/combat/TrainingCombatSystem.d.ts.map +1 -0
- package/lib/systems/combat/TrainingCombatSystem.js +224 -0
- package/lib/systems/combat/TrainingCombatSystem.js.map +1 -0
- package/lib/systems/combat/index.d.ts +16 -0
- package/lib/systems/combat/index.d.ts.map +1 -0
- package/lib/systems/combat/index.js +10 -0
- package/lib/systems/combat/painConsciousnessUtils.d.ts +147 -0
- package/lib/systems/combat/painConsciousnessUtils.d.ts.map +1 -0
- package/lib/systems/combat/painConsciousnessUtils.js +185 -0
- package/lib/systems/combat/painConsciousnessUtils.js.map +1 -0
- package/lib/systems/combat/typeGuards.d.ts +25 -0
- package/lib/systems/combat/typeGuards.d.ts.map +1 -0
- package/lib/systems/combat/typeGuards.js +39 -0
- package/lib/systems/combat/typeGuards.js.map +1 -0
- package/lib/systems/combat/types.d.ts +197 -0
- package/lib/systems/combat/types.d.ts.map +1 -0
- package/lib/systems/effects.d.ts +40 -0
- package/lib/systems/effects.d.ts.map +1 -0
- package/lib/systems/effects.js +44 -0
- package/lib/systems/effects.js.map +1 -0
- package/lib/systems/game.d.ts +77 -0
- package/lib/systems/game.d.ts.map +1 -0
- package/lib/systems/game.js +20 -0
- package/lib/systems/game.js.map +1 -0
- package/lib/systems/index.d.ts +24 -0
- package/lib/systems/index.d.ts.map +1 -0
- package/lib/systems/index.js +281 -0
- package/lib/systems/index.js.map +1 -0
- package/lib/systems/movement/InjuryMovementModifier.d.ts +275 -0
- package/lib/systems/movement/InjuryMovementModifier.d.ts.map +1 -0
- package/lib/systems/movement/InjuryMovementModifier.js +281 -0
- package/lib/systems/movement/InjuryMovementModifier.js.map +1 -0
- package/lib/systems/movement/helpers/AccelerationUpdater.d.ts +61 -0
- package/lib/systems/movement/helpers/AccelerationUpdater.d.ts.map +1 -0
- package/lib/systems/movement/helpers/AccelerationUpdater.js +75 -0
- package/lib/systems/movement/helpers/AccelerationUpdater.js.map +1 -0
- package/lib/systems/movement/helpers/accelerationUtils.d.ts +85 -0
- package/lib/systems/movement/helpers/accelerationUtils.d.ts.map +1 -0
- package/lib/systems/movement/helpers/accelerationUtils.js +86 -0
- package/lib/systems/movement/helpers/accelerationUtils.js.map +1 -0
- package/lib/systems/movement/index.d.ts +16 -0
- package/lib/systems/movement/index.d.ts.map +1 -0
- package/lib/systems/movement/integration.d.ts +91 -0
- package/lib/systems/movement/integration.d.ts.map +1 -0
- package/lib/systems/physics/AttackMovementPhysics.d.ts +283 -0
- package/lib/systems/physics/AttackMovementPhysics.d.ts.map +1 -0
- package/lib/systems/physics/AttackMovementPhysics.js +272 -0
- package/lib/systems/physics/AttackMovementPhysics.js.map +1 -0
- package/lib/systems/physics/CollisionDetection.d.ts +323 -0
- package/lib/systems/physics/CollisionDetection.d.ts.map +1 -0
- package/lib/systems/physics/CollisionDetection.js +543 -0
- package/lib/systems/physics/CollisionDetection.js.map +1 -0
- package/lib/systems/physics/CoordinateMapper.d.ts +203 -0
- package/lib/systems/physics/CoordinateMapper.d.ts.map +1 -0
- package/lib/systems/physics/CoordinateMapper.js +242 -0
- package/lib/systems/physics/CoordinateMapper.js.map +1 -0
- package/lib/systems/physics/KnockbackPhysics.d.ts +367 -0
- package/lib/systems/physics/KnockbackPhysics.d.ts.map +1 -0
- package/lib/systems/physics/KnockbackPhysics.js +338 -0
- package/lib/systems/physics/KnockbackPhysics.js.map +1 -0
- package/lib/systems/physics/MovementPhysics.d.ts +428 -0
- package/lib/systems/physics/MovementPhysics.d.ts.map +1 -0
- package/lib/systems/physics/MovementPhysics.js +488 -0
- package/lib/systems/physics/MovementPhysics.js.map +1 -0
- package/lib/systems/physics/PhysicalReachCalculator.d.ts +261 -0
- package/lib/systems/physics/PhysicalReachCalculator.d.ts.map +1 -0
- package/lib/systems/physics/PhysicalReachCalculator.js +226 -0
- package/lib/systems/physics/PhysicalReachCalculator.js.map +1 -0
- package/lib/systems/physics/SpeedModifierSystem.d.ts +302 -0
- package/lib/systems/physics/SpeedModifierSystem.d.ts.map +1 -0
- package/lib/systems/physics/SpeedModifierSystem.js +301 -0
- package/lib/systems/physics/SpeedModifierSystem.js.map +1 -0
- package/lib/systems/physics/__tests__/PhysicsPerformance.bench.d.ts +16 -0
- package/lib/systems/physics/__tests__/PhysicsPerformance.bench.d.ts.map +1 -0
- package/lib/systems/physics/index.d.ts +21 -0
- package/lib/systems/physics/index.d.ts.map +1 -0
- package/lib/systems/physics/index.js +7 -0
- package/lib/systems/player.d.ts +386 -0
- package/lib/systems/player.d.ts.map +1 -0
- package/lib/systems/trigram/KoreanCulture.d.ts +127 -0
- package/lib/systems/trigram/KoreanCulture.d.ts.map +1 -0
- package/lib/systems/trigram/KoreanCulture.js +194 -0
- package/lib/systems/trigram/KoreanCulture.js.map +1 -0
- package/lib/systems/trigram/KoreanTechniques.d.ts +59 -0
- package/lib/systems/trigram/KoreanTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/KoreanTechniques.js +140 -0
- package/lib/systems/trigram/KoreanTechniques.js.map +1 -0
- package/lib/systems/trigram/StanceManager.d.ts +90 -0
- package/lib/systems/trigram/StanceManager.d.ts.map +1 -0
- package/lib/systems/trigram/StanceManager.js +192 -0
- package/lib/systems/trigram/StanceManager.js.map +1 -0
- package/lib/systems/trigram/TransitionCalculator.d.ts +132 -0
- package/lib/systems/trigram/TransitionCalculator.d.ts.map +1 -0
- package/lib/systems/trigram/TransitionCalculator.js +233 -0
- package/lib/systems/trigram/TransitionCalculator.js.map +1 -0
- package/lib/systems/trigram/TrigramCalculator.d.ts +63 -0
- package/lib/systems/trigram/TrigramCalculator.d.ts.map +1 -0
- package/lib/systems/trigram/TrigramCalculator.js +148 -0
- package/lib/systems/trigram/TrigramCalculator.js.map +1 -0
- package/lib/systems/trigram/index.d.ts +12 -0
- package/lib/systems/trigram/index.d.ts.map +1 -0
- package/lib/systems/trigram/index.js +17 -0
- package/lib/systems/trigram/techniques/DarkOpsTechniques.d.ts +118 -0
- package/lib/systems/trigram/techniques/DarkOpsTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/DarkOpsTechniques.js +683 -0
- package/lib/systems/trigram/techniques/DarkOpsTechniques.js.map +1 -0
- package/lib/systems/trigram/techniques/GamTechniques.d.ts +44 -0
- package/lib/systems/trigram/techniques/GamTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/GamTechniques.js +293 -0
- package/lib/systems/trigram/techniques/GamTechniques.js.map +1 -0
- package/lib/systems/trigram/techniques/GanTechniques.d.ts +58 -0
- package/lib/systems/trigram/techniques/GanTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/GanTechniques.js +323 -0
- package/lib/systems/trigram/techniques/GanTechniques.js.map +1 -0
- package/lib/systems/trigram/techniques/GeonTechniques.d.ts +23 -0
- package/lib/systems/trigram/techniques/GeonTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/GeonTechniques.js +299 -0
- package/lib/systems/trigram/techniques/GeonTechniques.js.map +1 -0
- package/lib/systems/trigram/techniques/GonTechniques.d.ts +51 -0
- package/lib/systems/trigram/techniques/GonTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/GonTechniques.js +399 -0
- package/lib/systems/trigram/techniques/GonTechniques.js.map +1 -0
- package/lib/systems/trigram/techniques/JinTechniques.d.ts +23 -0
- package/lib/systems/trigram/techniques/JinTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/JinTechniques.js +253 -0
- package/lib/systems/trigram/techniques/JinTechniques.js.map +1 -0
- package/lib/systems/trigram/techniques/LiTechniques.d.ts +23 -0
- package/lib/systems/trigram/techniques/LiTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/LiTechniques.js +253 -0
- package/lib/systems/trigram/techniques/LiTechniques.js.map +1 -0
- package/lib/systems/trigram/techniques/SonTechniques.d.ts +43 -0
- package/lib/systems/trigram/techniques/SonTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/SonTechniques.js +293 -0
- package/lib/systems/trigram/techniques/SonTechniques.js.map +1 -0
- package/lib/systems/trigram/techniques/TaeTechniques.d.ts +23 -0
- package/lib/systems/trigram/techniques/TaeTechniques.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/TaeTechniques.js +292 -0
- package/lib/systems/trigram/techniques/TaeTechniques.js.map +1 -0
- package/lib/systems/trigram/techniques/TechniqueConfig.d.ts +403 -0
- package/lib/systems/trigram/techniques/TechniqueConfig.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/TechniqueConfig.js +493 -0
- package/lib/systems/trigram/techniques/TechniqueConfig.js.map +1 -0
- package/lib/systems/trigram/techniques/index.d.ts +54 -0
- package/lib/systems/trigram/techniques/index.d.ts.map +1 -0
- package/lib/systems/trigram/techniques/index.js +88 -0
- package/lib/systems/trigram/techniques/index.js.map +1 -0
- package/lib/systems/trigram/types/GonTechniqueExtensions.d.ts +506 -0
- package/lib/systems/trigram/types/GonTechniqueExtensions.d.ts.map +1 -0
- package/lib/systems/trigram/types/GonTechniqueExtensions.js +37 -0
- package/lib/systems/trigram/types/GonTechniqueExtensions.js.map +1 -0
- package/lib/systems/trigram/types.d.ts +288 -0
- package/lib/systems/trigram/types.d.ts.map +1 -0
- package/lib/systems/trigram/types.js +459 -0
- package/lib/systems/trigram/types.js.map +1 -0
- package/lib/systems/types.d.ts +1038 -0
- package/lib/systems/types.d.ts.map +1 -0
- package/lib/systems/types.js +872 -0
- package/lib/systems/types.js.map +1 -0
- package/lib/systems/vitalpoint/DamageCalculator.d.ts +255 -0
- package/lib/systems/vitalpoint/DamageCalculator.d.ts.map +1 -0
- package/lib/systems/vitalpoint/DamageCalculator.js +435 -0
- package/lib/systems/vitalpoint/DamageCalculator.js.map +1 -0
- package/lib/systems/vitalpoint/HitDetection.d.ts +11 -0
- package/lib/systems/vitalpoint/HitDetection.d.ts.map +1 -0
- package/lib/systems/vitalpoint/HitDetection.js +69 -0
- package/lib/systems/vitalpoint/HitDetection.js.map +1 -0
- package/lib/systems/vitalpoint/KoreanAnatomy.d.ts +361 -0
- package/lib/systems/vitalpoint/KoreanAnatomy.d.ts.map +1 -0
- package/lib/systems/vitalpoint/KoreanAnatomy.js +1709 -0
- package/lib/systems/vitalpoint/KoreanAnatomy.js.map +1 -0
- package/lib/systems/vitalpoint/KoreanVitalPoints.d.ts +133 -0
- package/lib/systems/vitalpoint/KoreanVitalPoints.d.ts.map +1 -0
- package/lib/systems/vitalpoint/KoreanVitalPoints.js +150 -0
- package/lib/systems/vitalpoint/KoreanVitalPoints.js.map +1 -0
- package/lib/systems/vitalpoint/MeridianVitalPointMapping.d.ts +92 -0
- package/lib/systems/vitalpoint/MeridianVitalPointMapping.d.ts.map +1 -0
- package/lib/systems/vitalpoint/MeridianVitalPointMapping.js +227 -0
- package/lib/systems/vitalpoint/MeridianVitalPointMapping.js.map +1 -0
- package/lib/systems/vitalpoint/VitalPointsData.d.ts +51 -0
- package/lib/systems/vitalpoint/VitalPointsData.d.ts.map +1 -0
- package/lib/systems/vitalpoint/VitalPointsData.js +1917 -0
- package/lib/systems/vitalpoint/VitalPointsData.js.map +1 -0
- package/lib/systems/vitalpoint/index.d.ts +12 -0
- package/lib/systems/vitalpoint/index.d.ts.map +1 -0
- package/lib/systems/vitalpoint/index.js +5 -0
- package/lib/systems/vitalpoint/types.d.ts +417 -0
- package/lib/systems/vitalpoint/types.d.ts.map +1 -0
- package/lib/test/test-utils.d.ts +46 -0
- package/lib/test/test-utils.d.ts.map +1 -0
- package/lib/types/AccessibilityTypes.d.ts +232 -0
- package/lib/types/AccessibilityTypes.d.ts.map +1 -0
- package/lib/types/AccessibilityTypes.js +13 -0
- package/lib/types/AccessibilityTypes.js.map +1 -0
- package/lib/types/HtmlOverlayTypes.d.ts +161 -0
- package/lib/types/HtmlOverlayTypes.d.ts.map +1 -0
- package/lib/types/LayoutTypes.d.ts +330 -0
- package/lib/types/LayoutTypes.d.ts.map +1 -0
- package/lib/types/LayoutTypes.js +118 -0
- package/lib/types/LayoutTypes.js.map +1 -0
- package/lib/types/PhysicsTypes.d.ts +327 -0
- package/lib/types/PhysicsTypes.d.ts.map +1 -0
- package/lib/types/PhysicsTypes.js +105 -0
- package/lib/types/PhysicsTypes.js.map +1 -0
- package/lib/types/ResponsiveTypes.d.ts +210 -0
- package/lib/types/ResponsiveTypes.d.ts.map +1 -0
- package/lib/types/clothing.d.ts +298 -0
- package/lib/types/clothing.d.ts.map +1 -0
- package/lib/types/common.d.ts +1247 -0
- package/lib/types/common.d.ts.map +1 -0
- package/lib/types/common.js +622 -0
- package/lib/types/common.js.map +1 -0
- package/lib/types/constants/animations.d.ts +93 -0
- package/lib/types/constants/animations.d.ts.map +1 -0
- package/lib/types/constants/animations.js +26 -0
- package/lib/types/constants/animations.js.map +1 -0
- package/lib/types/constants/colors.d.ts +151 -0
- package/lib/types/constants/colors.d.ts.map +1 -0
- package/lib/types/constants/colors.js +155 -0
- package/lib/types/constants/colors.js.map +1 -0
- package/lib/types/constants/designSystem.d.ts +469 -0
- package/lib/types/constants/designSystem.d.ts.map +1 -0
- package/lib/types/constants/designSystem.js +406 -0
- package/lib/types/constants/designSystem.js.map +1 -0
- package/lib/types/constants/index.d.ts +181 -0
- package/lib/types/constants/index.d.ts.map +1 -0
- package/lib/types/constants/index.js +176 -0
- package/lib/types/constants/index.js.map +1 -0
- package/lib/types/constants/layout.d.ts +76 -0
- package/lib/types/constants/layout.d.ts.map +1 -0
- package/lib/types/constants/layout.js +37 -0
- package/lib/types/constants/layout.js.map +1 -0
- package/lib/types/constants/performance.d.ts +183 -0
- package/lib/types/constants/performance.d.ts.map +1 -0
- package/lib/types/constants/performance.js +134 -0
- package/lib/types/constants/performance.js.map +1 -0
- package/lib/types/constants/typography.d.ts +85 -0
- package/lib/types/constants/typography.d.ts.map +1 -0
- package/lib/types/constants/typography.js +110 -0
- package/lib/types/constants/typography.js.map +1 -0
- package/lib/types/constants/ui.d.ts +187 -0
- package/lib/types/constants/ui.d.ts.map +1 -0
- package/lib/types/constants/ui.js +113 -0
- package/lib/types/constants/ui.js.map +1 -0
- package/lib/types/facial.d.ts +266 -0
- package/lib/types/facial.d.ts.map +1 -0
- package/lib/types/facial.js +92 -0
- package/lib/types/facial.js.map +1 -0
- package/lib/types/hand-animation.d.ts +370 -0
- package/lib/types/hand-animation.d.ts.map +1 -0
- package/lib/types/hand-animation.js +55 -0
- package/lib/types/hand-animation.js.map +1 -0
- package/lib/types/index.d.ts +14 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +112 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/injury.d.ts +58 -0
- package/lib/types/injury.d.ts.map +1 -0
- package/lib/types/injury.js +23 -0
- package/lib/types/injury.js.map +1 -0
- package/lib/types/muscle.d.ts +146 -0
- package/lib/types/muscle.d.ts.map +1 -0
- package/lib/types/muscle.js +22 -0
- package/lib/types/muscle.js.map +1 -0
- package/lib/types/physics.d.ts +606 -0
- package/lib/types/physics.d.ts.map +1 -0
- package/lib/types/physics.js +162 -0
- package/lib/types/physics.js.map +1 -0
- package/lib/types/physicsConstants.d.ts +270 -0
- package/lib/types/physicsConstants.d.ts.map +1 -0
- package/lib/types/physicsConstants.js +71 -0
- package/lib/types/physicsConstants.js.map +1 -0
- package/lib/types/player-visual.d.ts +299 -0
- package/lib/types/player-visual.d.ts.map +1 -0
- package/lib/types/skeletal.d.ts +693 -0
- package/lib/types/skeletal.d.ts.map +1 -0
- package/lib/types/skeletal.js +189 -0
- package/lib/types/skeletal.js.map +1 -0
- package/lib/types/technique.d.ts +175 -0
- package/lib/types/technique.d.ts.map +1 -0
- package/lib/types/techniqueId.d.ts +51 -0
- package/lib/types/techniqueId.d.ts.map +1 -0
- package/lib/types/techniqueId.js +55 -0
- package/lib/types/techniqueId.js.map +1 -0
- package/lib/utils/EventManager.d.ts +133 -0
- package/lib/utils/EventManager.d.ts.map +1 -0
- package/lib/utils/EventManager.js +1 -0
- package/lib/utils/accessibility.d.ts +218 -0
- package/lib/utils/accessibility.d.ts.map +1 -0
- package/lib/utils/accessibility.js +167 -0
- package/lib/utils/accessibility.js.map +1 -0
- package/lib/utils/arenaWorldDimensions.d.ts +219 -0
- package/lib/utils/arenaWorldDimensions.d.ts.map +1 -0
- package/lib/utils/arenaWorldDimensions.js +154 -0
- package/lib/utils/arenaWorldDimensions.js.map +1 -0
- package/lib/utils/assetConfig.d.ts +39 -0
- package/lib/utils/assetConfig.d.ts.map +1 -0
- package/lib/utils/assetConfig.js +52 -0
- package/lib/utils/assetConfig.js.map +1 -0
- package/lib/utils/cameraShake.d.ts +115 -0
- package/lib/utils/cameraShake.d.ts.map +1 -0
- package/lib/utils/characterScaling.d.ts +305 -0
- package/lib/utils/characterScaling.d.ts.map +1 -0
- package/lib/utils/characterScaling.js +105 -0
- package/lib/utils/characterScaling.js.map +1 -0
- package/lib/utils/clothingColors.d.ts +120 -0
- package/lib/utils/clothingColors.d.ts.map +1 -0
- package/lib/utils/clothingMaterials.d.ts +65 -0
- package/lib/utils/clothingMaterials.d.ts.map +1 -0
- package/lib/utils/colorHelpers.d.ts +67 -0
- package/lib/utils/colorHelpers.d.ts.map +1 -0
- package/lib/utils/colorHelpers.js +81 -0
- package/lib/utils/colorHelpers.js.map +1 -0
- package/lib/utils/colorUtils.d.ts +113 -0
- package/lib/utils/colorUtils.d.ts.map +1 -0
- package/lib/utils/colorUtils.js +225 -0
- package/lib/utils/colorUtils.js.map +1 -0
- package/lib/utils/combatReadiness.d.ts +132 -0
- package/lib/utils/combatReadiness.d.ts.map +1 -0
- package/lib/utils/combatReadiness.js +176 -0
- package/lib/utils/combatReadiness.js.map +1 -0
- package/lib/utils/controlMapping.d.ts +171 -0
- package/lib/utils/controlMapping.d.ts.map +1 -0
- package/lib/utils/controlMapping.js +288 -0
- package/lib/utils/controlMapping.js.map +1 -0
- package/lib/utils/deviceDetection.d.ts +159 -0
- package/lib/utils/deviceDetection.d.ts.map +1 -0
- package/lib/utils/deviceDetection.js +337 -0
- package/lib/utils/deviceDetection.js.map +1 -0
- package/lib/utils/effectUtils.d.ts +63 -0
- package/lib/utils/effectUtils.d.ts.map +1 -0
- package/lib/utils/effectUtils.js +737 -0
- package/lib/utils/effectUtils.js.map +1 -0
- package/lib/utils/eventConstants.d.ts +25 -0
- package/lib/utils/eventConstants.d.ts.map +1 -0
- package/lib/utils/eventConstants.js +3 -0
- package/lib/utils/eventConstants.js.map +1 -0
- package/lib/utils/fabricTextures.d.ts +136 -0
- package/lib/utils/fabricTextures.d.ts.map +1 -0
- package/lib/utils/fabricTextures.js +301 -0
- package/lib/utils/fabricTextures.js.map +1 -0
- package/lib/utils/hapticFeedback.d.ts +224 -0
- package/lib/utils/hapticFeedback.d.ts.map +1 -0
- package/lib/utils/hapticFeedback.js +143 -0
- package/lib/utils/hapticFeedback.js.map +1 -0
- package/lib/utils/haptics.d.ts +139 -0
- package/lib/utils/haptics.d.ts.map +1 -0
- package/lib/utils/haptics.js +66 -0
- package/lib/utils/haptics.js.map +1 -0
- package/lib/utils/htmlOverlayHelpers.d.ts +168 -0
- package/lib/utils/htmlOverlayHelpers.d.ts.map +1 -0
- package/lib/utils/htmlOverlayHelpers.js +279 -0
- package/lib/utils/htmlOverlayHelpers.js.map +1 -0
- package/lib/utils/index.d.ts +15 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +92 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/inputSystem.d.ts +154 -0
- package/lib/utils/inputSystem.d.ts.map +1 -0
- package/lib/utils/inputSystem.js +324 -0
- package/lib/utils/inputSystem.js.map +1 -0
- package/lib/utils/koreanThemeHelpers.d.ts +328 -0
- package/lib/utils/koreanThemeHelpers.d.ts.map +1 -0
- package/lib/utils/koreanThemeHelpers.js +348 -0
- package/lib/utils/koreanThemeHelpers.js.map +1 -0
- package/lib/utils/math.d.ts +80 -0
- package/lib/utils/math.d.ts.map +1 -0
- package/lib/utils/math.js +70 -0
- package/lib/utils/math.js.map +1 -0
- package/lib/utils/mobileLayoutHelpers.d.ts +52 -0
- package/lib/utils/mobileLayoutHelpers.d.ts.map +1 -0
- package/lib/utils/mobileLayoutHelpers.js +66 -0
- package/lib/utils/mobileLayoutHelpers.js.map +1 -0
- package/lib/utils/mobileUIUtils.d.ts +266 -0
- package/lib/utils/mobileUIUtils.d.ts.map +1 -0
- package/lib/utils/mobileUIUtils.js +33 -0
- package/lib/utils/mobileUIUtils.js.map +1 -0
- package/lib/utils/objectPool.d.ts +92 -0
- package/lib/utils/objectPool.d.ts.map +1 -0
- package/lib/utils/particlePool.d.ts +138 -0
- package/lib/utils/particlePool.d.ts.map +1 -0
- package/lib/utils/performance/PerformanceMonitor.d.ts +93 -0
- package/lib/utils/performance/PerformanceMonitor.d.ts.map +1 -0
- package/lib/utils/performance/PerformanceMonitor.js +155 -0
- package/lib/utils/performance/PerformanceMonitor.js.map +1 -0
- package/lib/utils/performance/PerformanceOverlay3D.d.ts +20 -0
- package/lib/utils/performance/PerformanceOverlay3D.d.ts.map +1 -0
- package/lib/utils/performance/PerformanceOverlay3D.js +200 -0
- package/lib/utils/performance/PerformanceOverlay3D.js.map +1 -0
- package/lib/utils/performance/index.d.ts +12 -0
- package/lib/utils/performance/index.d.ts.map +1 -0
- package/lib/utils/performance/index.js +3 -0
- package/lib/utils/performance/usePerformanceMonitor.d.ts +46 -0
- package/lib/utils/performance/usePerformanceMonitor.d.ts.map +1 -0
- package/lib/utils/performance/usePerformanceMonitor.js +71 -0
- package/lib/utils/performance/usePerformanceMonitor.js.map +1 -0
- package/lib/utils/performanceOptimization.d.ts +142 -0
- package/lib/utils/performanceOptimization.d.ts.map +1 -0
- package/lib/utils/performanceOptimization.js +27 -0
- package/lib/utils/performanceOptimization.js.map +1 -0
- package/lib/utils/physicalAttributeValidation.d.ts +197 -0
- package/lib/utils/physicalAttributeValidation.d.ts.map +1 -0
- package/lib/utils/player3DHelpers.d.ts +82 -0
- package/lib/utils/player3DHelpers.d.ts.map +1 -0
- package/lib/utils/player3DHelpers.js +176 -0
- package/lib/utils/player3DHelpers.js.map +1 -0
- package/lib/utils/playerUtils.d.ts +137 -0
- package/lib/utils/playerUtils.d.ts.map +1 -0
- package/lib/utils/playerUtils.js +296 -0
- package/lib/utils/playerUtils.js.map +1 -0
- package/lib/utils/responsiveLayout.d.ts +207 -0
- package/lib/utils/responsiveLayout.d.ts.map +1 -0
- package/lib/utils/responsiveLayout.js +114 -0
- package/lib/utils/responsiveLayout.js.map +1 -0
- package/lib/utils/responsiveLayoutHelpers.d.ts +156 -0
- package/lib/utils/responsiveLayoutHelpers.d.ts.map +1 -0
- package/lib/utils/responsiveLayoutHelpers.js +253 -0
- package/lib/utils/responsiveLayoutHelpers.js.map +1 -0
- package/lib/utils/safeAreaUtils.d.ts +133 -0
- package/lib/utils/safeAreaUtils.d.ts.map +1 -0
- package/lib/utils/safeAreaUtils.js +65 -0
- package/lib/utils/safeAreaUtils.js.map +1 -0
- package/lib/utils/sharedPhysicsConfig.d.ts +125 -0
- package/lib/utils/sharedPhysicsConfig.d.ts.map +1 -0
- package/lib/utils/sharedPhysicsConfig.js +119 -0
- package/lib/utils/sharedPhysicsConfig.js.map +1 -0
- package/lib/utils/skeletonScaling.d.ts +285 -0
- package/lib/utils/skeletonScaling.d.ts.map +1 -0
- package/lib/utils/skeletonScaling.js +46 -0
- package/lib/utils/skeletonScaling.js.map +1 -0
- package/lib/utils/stanceHelpers.d.ts +85 -0
- package/lib/utils/stanceHelpers.d.ts.map +1 -0
- package/lib/utils/stanceHelpers.js +132 -0
- package/lib/utils/stanceHelpers.js.map +1 -0
- package/lib/utils/threeObjectPool.d.ts +323 -0
- package/lib/utils/threeObjectPool.d.ts.map +1 -0
- package/lib/utils/threeObjectPool.js +345 -0
- package/lib/utils/threeObjectPool.js.map +1 -0
- package/lib/utils/visualEffects.d.ts +358 -0
- package/lib/utils/visualEffects.d.ts.map +1 -0
- package/lib/utils/visualEffects.js +423 -0
- package/lib/utils/visualEffects.js.map +1 -0
- package/package.json +222 -0
|
@@ -0,0 +1,1516 @@
|
|
|
1
|
+
import { PlayerArchetype, TrigramStance } from "../../types/common.js";
|
|
2
|
+
import "../../types/index.js";
|
|
3
|
+
import { AI_MOVEMENT_METERS } from "../../types/physicsConstants.js";
|
|
4
|
+
import { getArchetypePhysicalAttributes } from "../../data/archetypePhysicalAttributes.js";
|
|
5
|
+
import TrigramSystem from "../TrigramSystem.js";
|
|
6
|
+
import { getArchetypeBehavior } from "./AIPersonality.js";
|
|
7
|
+
import KOREAN_VITAL_POINTS, { getVitalPointById } from "../vitalpoint/KoreanVitalPoints.js";
|
|
8
|
+
import { AIActionType } from "./types.js";
|
|
9
|
+
import { enforceArchetypeBehavior } from "./ArchetypeEnforcer.js";
|
|
10
|
+
//#region src/systems/ai/DecisionTree.ts
|
|
11
|
+
/**
|
|
12
|
+
* AI Decision Tree for Korean Martial Arts Combat
|
|
13
|
+
* Strategic decision-making system with multiple tactical options
|
|
14
|
+
*
|
|
15
|
+
* **Korean Philosophy Integration (한국 무술 철학)**:
|
|
16
|
+
* - 지피지기백전불태 (知彼知己百戰不殆) - Know the enemy, know yourself, and victory is certain
|
|
17
|
+
* - 이순응변 (以柔應變) - Adapt with flexibility and flow like water
|
|
18
|
+
* - 급소공격 (急所攻擊) - Strike vital points with precision and timing
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Body pivot contributions for reach calculations (meters)
|
|
22
|
+
*
|
|
23
|
+
* These values represent additional reach gained from body mechanics:
|
|
24
|
+
* - Hip rotation and torso lean for kicks
|
|
25
|
+
* - Shoulder offset and torso rotation for punches
|
|
26
|
+
*
|
|
27
|
+
* Heuristically aligned with PhysicalReachCalculator.ts but intentionally
|
|
28
|
+
* simplified for AI decision-making (e.g., omits stance/animation modifiers).
|
|
29
|
+
*
|
|
30
|
+
* **NOTE ON BODY RADIUS**: The body pivot values approximate the body radius
|
|
31
|
+
* effect for AI range calculations. For precise hit detection in CombatSystem,
|
|
32
|
+
* use calculateBodyRadius() which accounts for individual archetype differences.
|
|
33
|
+
*
|
|
34
|
+
* AI decision-making trade-off:
|
|
35
|
+
* - Punch body pivot (shoulder offset + torso rotation): ~0.3-0.35m
|
|
36
|
+
* - Actual body radius (shoulder width * 0.5 / 100): ~0.215-0.27m
|
|
37
|
+
* - Difference: AI slightly overestimates close-range effectiveness
|
|
38
|
+
* - Impact: AI may attempt attacks at marginally longer range than optimal
|
|
39
|
+
* - Benefit: Simplified calculations, acceptable gameplay behavior
|
|
40
|
+
*
|
|
41
|
+
* @korean 신체 회전 도달 거리 증가 (AI 의사결정을 위한 근사치)
|
|
42
|
+
*/
|
|
43
|
+
var BODY_PIVOT_METERS = {
|
|
44
|
+
KICK: .25,
|
|
45
|
+
TORSO_ROTATION: .1
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Average technique extension multipliers
|
|
49
|
+
*
|
|
50
|
+
* Based on analysis of technique baseExtension values:
|
|
51
|
+
* - Punches: 0.9-0.95 (average 0.95)
|
|
52
|
+
* - Kicks: 1.0-1.05 (average 1.05)
|
|
53
|
+
*
|
|
54
|
+
* TODO: Consider implementing technique-specific lookup based on actual
|
|
55
|
+
* technique data for more precise range calculations. Current averages
|
|
56
|
+
* are sufficient for AI decision-making but may need refinement.
|
|
57
|
+
*
|
|
58
|
+
* @korean 기술 연장 배수
|
|
59
|
+
*/
|
|
60
|
+
var TECHNIQUE_EXTENSION = {
|
|
61
|
+
PUNCH: .95,
|
|
62
|
+
KICK: 1.05
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Distance-based stance preferences for tactical positioning
|
|
66
|
+
*
|
|
67
|
+
* Stances are categorized by optimal combat range based on actual technique
|
|
68
|
+
* reach configurations (baseExtension values from technique definitions):
|
|
69
|
+
*
|
|
70
|
+
* **CLOSE (≤0.6m)** - Grappling/clinch range:
|
|
71
|
+
* - TAE (☱ Lake) - Joint manipulation, grapples (0.9 baseExtension, needs contact)
|
|
72
|
+
* - GAM (☵ Water) - Throws, counters (0.7-0.9 baseExtension)
|
|
73
|
+
* - GON (☷ Earth) - Ground techniques, Ssireum throws (0.9 baseExtension)
|
|
74
|
+
* - GAN (☶ Mountain) - Immovable defense, blocks (0.9 baseExtension)
|
|
75
|
+
*
|
|
76
|
+
* **MID (0.6-1.0m)** - Striking range:
|
|
77
|
+
* - GEON (☰ Heaven) - Direct force, power strikes (0.95-1.05 baseExtension)
|
|
78
|
+
* - LI (☲ Fire) - Precision nerve strikes (0.92-0.95 baseExtension)
|
|
79
|
+
* - SON (☴ Wind) - Continuous pressure, Taekyon (0.95-1.05 baseExtension)
|
|
80
|
+
*
|
|
81
|
+
* **FAR (>1.0m)** - Long range kicks/closing distance:
|
|
82
|
+
* - JIN (☳ Thunder) - Explosive jumping kicks (1.15 baseExtension)
|
|
83
|
+
* - SON (☴ Wind) - Closing footwork pressure
|
|
84
|
+
* - GAN (☶ Mountain) - Patient defensive waiting
|
|
85
|
+
*
|
|
86
|
+
* @korean 거리별 자세 선호도 (기술 도달 거리 기반)
|
|
87
|
+
*/
|
|
88
|
+
var DISTANCE_BASED_STANCES = {
|
|
89
|
+
CLOSE: [
|
|
90
|
+
TrigramStance.TAE,
|
|
91
|
+
TrigramStance.GAM,
|
|
92
|
+
TrigramStance.GON,
|
|
93
|
+
TrigramStance.GAN
|
|
94
|
+
],
|
|
95
|
+
MID: [
|
|
96
|
+
TrigramStance.GEON,
|
|
97
|
+
TrigramStance.LI,
|
|
98
|
+
TrigramStance.SON
|
|
99
|
+
],
|
|
100
|
+
FAR: [
|
|
101
|
+
TrigramStance.JIN,
|
|
102
|
+
TrigramStance.SON,
|
|
103
|
+
TrigramStance.GAN
|
|
104
|
+
]
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Hacker observation phase duration in milliseconds
|
|
108
|
+
*
|
|
109
|
+
* Hacker archetype observes opponents for this duration before attacking,
|
|
110
|
+
* collecting combat data for analysis-based tactics.
|
|
111
|
+
*
|
|
112
|
+
* @korean 해커 관찰 단계 지속 시간 (밀리초)
|
|
113
|
+
*/
|
|
114
|
+
var HACKER_OBSERVATION_DURATION_MS = 1e4;
|
|
115
|
+
/**
|
|
116
|
+
* Hacker observation phase actions
|
|
117
|
+
*
|
|
118
|
+
* During the observation phase, Hacker only uses non-aggressive
|
|
119
|
+
* positioning actions to collect combat data.
|
|
120
|
+
*
|
|
121
|
+
* @korean 해커 관찰 단계 행동
|
|
122
|
+
*/
|
|
123
|
+
var HACKER_OBSERVATION_ACTIONS = [
|
|
124
|
+
AIActionType.WAIT,
|
|
125
|
+
AIActionType.CIRCLE,
|
|
126
|
+
AIActionType.APPROACH
|
|
127
|
+
];
|
|
128
|
+
/**
|
|
129
|
+
* Assess opponent vulnerability for exploitation tactics
|
|
130
|
+
*
|
|
131
|
+
* Analyzes multiple vulnerability factors to create comprehensive assessment:
|
|
132
|
+
* - Balance states (HELPLESS/VULNERABLE/SHAKEN)
|
|
133
|
+
* - Stamina depletion (< 20%)
|
|
134
|
+
* - Ki depletion (< 10%)
|
|
135
|
+
* - Composite vulnerability score (weighted average)
|
|
136
|
+
*
|
|
137
|
+
* **Korean Philosophy (취약성 평가)**:
|
|
138
|
+
* Traditional Korean martial arts teach reading opponent's weakness:
|
|
139
|
+
* - 기회 포착 (Gihoei Pochak) - Seizing opportunities
|
|
140
|
+
* - 약점 공격 (Yakjeom Gonggyeok) - Exploiting weaknesses
|
|
141
|
+
* - 결정타 (Gyeoljeongta) - Delivering decisive strikes
|
|
142
|
+
*
|
|
143
|
+
* @korean 상대 취약성 평가
|
|
144
|
+
*
|
|
145
|
+
* @param context - Current combat context with opponent state
|
|
146
|
+
* @returns Vulnerability assessment with boolean flags and composite score
|
|
147
|
+
*/
|
|
148
|
+
function assessVulnerability(context) {
|
|
149
|
+
const isHelpless = context.opponentBalance === "HELPLESS";
|
|
150
|
+
const isVulnerable = context.opponentBalance === "VULNERABLE" || context.opponentBalance === "HELPLESS";
|
|
151
|
+
const isShaken = context.opponentBalance === "SHAKEN" || context.opponentBalance === "VULNERABLE" || context.opponentBalance === "HELPLESS";
|
|
152
|
+
const staminaPercent = context.opponentStamina && context.opponentMaxStamina ? context.opponentStamina / context.opponentMaxStamina : 1;
|
|
153
|
+
const kiPercent = context.opponentKi && context.opponentMaxKi ? context.opponentKi / context.opponentMaxKi : 1;
|
|
154
|
+
const hasLowStamina = staminaPercent < .2;
|
|
155
|
+
const hasNoKi = kiPercent < .1;
|
|
156
|
+
let balanceVulnerability = 0;
|
|
157
|
+
if (isHelpless) balanceVulnerability = 1;
|
|
158
|
+
else if (isVulnerable) balanceVulnerability = .7;
|
|
159
|
+
else if (isShaken) balanceVulnerability = .5;
|
|
160
|
+
return {
|
|
161
|
+
isHelpless,
|
|
162
|
+
isVulnerable,
|
|
163
|
+
isShaken,
|
|
164
|
+
hasLowStamina,
|
|
165
|
+
hasNoKi,
|
|
166
|
+
overallVulnerability: balanceVulnerability * .4 + (1 - staminaPercent) * .3 + (1 - kiPercent) * .3
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* AI Decision Tree System
|
|
171
|
+
*
|
|
172
|
+
* **Korean Combat Philosophy (한국 무술 철학)**:
|
|
173
|
+
* This system embodies traditional Korean martial arts principles:
|
|
174
|
+
*
|
|
175
|
+
* - **팔괘 응용** (Trigram Application): Uses Eight Trigram system for stance transitions
|
|
176
|
+
* - **급소 타격** (Vital Point Strikes): Targets anatomical weak points with precision
|
|
177
|
+
* - **상황 판단** (Situational Awareness): Adapts tactics based on combat context
|
|
178
|
+
* - **기술 조합** (Technique Combinations): Chains attacks into flowing combos
|
|
179
|
+
* - **방어 우선** (Defense First): Prioritizes survival and tactical retreat when needed
|
|
180
|
+
* - **취약성 공략** (Vulnerability Exploitation): Exploits defenseless states with precision (Issue #enhance-intelligence-operative-ai)
|
|
181
|
+
*/
|
|
182
|
+
var AIDecisionTree = class AIDecisionTree {
|
|
183
|
+
lastDecisionTime = 0;
|
|
184
|
+
decisionCooldown = 50;
|
|
185
|
+
consecutiveAttacks = 0;
|
|
186
|
+
lastStanceChange = 0;
|
|
187
|
+
stanceChangeCooldown = 3e3;
|
|
188
|
+
psychologicalPressure = 0;
|
|
189
|
+
lastPressureActionTime = 0;
|
|
190
|
+
trigramSystem;
|
|
191
|
+
difficultyLevel = .5;
|
|
192
|
+
difficultyParams;
|
|
193
|
+
currentReactionDelay = 50;
|
|
194
|
+
/**
|
|
195
|
+
* Scaling factor for fatigue override probability calculation.
|
|
196
|
+
* Used to convert fatigue modifier to override chance in non-linear manner.
|
|
197
|
+
* Value of 0.5 provides gradual scaling: 1.2x fatigue → ~10% override, 1.5x → ~25%.
|
|
198
|
+
*
|
|
199
|
+
* @korean 피로도 우선순위 무시 배율
|
|
200
|
+
*/
|
|
201
|
+
static FATIGUE_OVERRIDE_SCALING_FACTOR = .5;
|
|
202
|
+
constructor() {
|
|
203
|
+
this.trigramSystem = new TrigramSystem();
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Calculate kick reach for an archetype based on physical attributes.
|
|
207
|
+
*
|
|
208
|
+
* **Physics-First**: Returns reach in METERS based on leg length.
|
|
209
|
+
* Includes realistic kick reach calculation:
|
|
210
|
+
* - Leg length converted from cm to meters
|
|
211
|
+
* - Body pivot contribution (hip rotation + torso lean)
|
|
212
|
+
* - Average baseExtension for kicks (1.05x multiplier)
|
|
213
|
+
*
|
|
214
|
+
* Formula: (legLength/100 + BODY_PIVOT_METERS.KICK) × TECHNIQUE_EXTENSION.KICK
|
|
215
|
+
*
|
|
216
|
+
* @param archetype - Player archetype to calculate reach for
|
|
217
|
+
* @returns Kick reach in meters
|
|
218
|
+
* @korean 발차기 도달 거리 (미터)
|
|
219
|
+
*/
|
|
220
|
+
getKickReachMeters(archetype) {
|
|
221
|
+
return (getArchetypePhysicalAttributes(archetype).legLength / 100 + BODY_PIVOT_METERS.KICK) * TECHNIQUE_EXTENSION.KICK;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Calculate punch reach for an archetype based on physical attributes.
|
|
225
|
+
*
|
|
226
|
+
* **Physics-First**: Returns reach in METERS based on arm length.
|
|
227
|
+
* Includes realistic punch reach calculation:
|
|
228
|
+
* - Arm length converted from cm to meters
|
|
229
|
+
* - Body pivot (shoulder offset + torso rotation)
|
|
230
|
+
* - Average baseExtension for punches (0.95x multiplier)
|
|
231
|
+
*
|
|
232
|
+
* Formula: (armLength/100 + shoulderOffset + torsoRotation) × TECHNIQUE_EXTENSION.PUNCH
|
|
233
|
+
*
|
|
234
|
+
* @param archetype - Player archetype to calculate reach for
|
|
235
|
+
* @returns Punch reach in meters
|
|
236
|
+
* @korean 주먹 도달 거리 (미터)
|
|
237
|
+
*/
|
|
238
|
+
getPunchReachMeters(archetype) {
|
|
239
|
+
const physical = getArchetypePhysicalAttributes(archetype);
|
|
240
|
+
const bodyPivot = physical.shoulderWidth / 2 / 100 + BODY_PIVOT_METERS.TORSO_ROTATION;
|
|
241
|
+
return (physical.armLength / 100 + bodyPivot) * TECHNIQUE_EXTENSION.PUNCH;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Calculate maximum combat reach for an archetype based on physical attributes.
|
|
245
|
+
*
|
|
246
|
+
* **Physics-First**: Returns reach in METERS based on leg length.
|
|
247
|
+
* Kicks have the longest reach (~1.0-1.3m with body pivot contribution).
|
|
248
|
+
*
|
|
249
|
+
* Note: This is a heuristic approximation. Actual reach also depends on
|
|
250
|
+
* stance modifiers and animation timing not included in AI range calculations.
|
|
251
|
+
*
|
|
252
|
+
* @param archetype - Player archetype to calculate reach for
|
|
253
|
+
* @returns Maximum combat reach in meters
|
|
254
|
+
* @korean 원형별 최대 도달 거리 (미터)
|
|
255
|
+
*/
|
|
256
|
+
getArchetypeMaxReach(archetype) {
|
|
257
|
+
return this.getKickReachMeters(archetype);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Get close range threshold for an archetype (punching/elbow distance).
|
|
261
|
+
* Based on arm length from physical attributes.
|
|
262
|
+
*
|
|
263
|
+
* Uses the shared punch reach calculation helper for consistency.
|
|
264
|
+
*
|
|
265
|
+
* TODO: Extract to shared utility function with PhysicalReachCalculator.ts
|
|
266
|
+
* to maintain consistency between AI range calculations and actual hit detection.
|
|
267
|
+
* Consider handling elbow techniques separately with different body pivot values.
|
|
268
|
+
*
|
|
269
|
+
* @param archetype - Player archetype
|
|
270
|
+
* @returns Close range threshold in meters
|
|
271
|
+
* @korean 근접 범위 (미터)
|
|
272
|
+
*/
|
|
273
|
+
getArchetypeCloseRange(archetype) {
|
|
274
|
+
return this.getPunchReachMeters(archetype);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Get medium range threshold for an archetype (kicking distance).
|
|
278
|
+
* Based on leg length from physical attributes.
|
|
279
|
+
*
|
|
280
|
+
* Includes realistic kick reach calculation:
|
|
281
|
+
* - Leg length converted from cm to meters
|
|
282
|
+
* - Body pivot contribution (hip rotation + torso lean)
|
|
283
|
+
* - Average baseExtension for kicks
|
|
284
|
+
*
|
|
285
|
+
* @param archetype - Player archetype
|
|
286
|
+
* @returns Medium range threshold in meters
|
|
287
|
+
* @korean 중거리 범위 (미터)
|
|
288
|
+
*/
|
|
289
|
+
getArchetypeMediumRange(archetype) {
|
|
290
|
+
return this.getKickReachMeters(archetype);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Set AI difficulty level for vital point targeting accuracy
|
|
294
|
+
* @param level - 0.0 (beginner) to 1.0 (master)
|
|
295
|
+
*/
|
|
296
|
+
setDifficultyLevel(level) {
|
|
297
|
+
this.difficultyLevel = Math.max(0, Math.min(1, level));
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Set difficulty parameters for AI behavior
|
|
301
|
+
* Affects reaction time, accuracy, decision quality, etc.
|
|
302
|
+
*
|
|
303
|
+
* Calculates a randomized reaction delay (within parameter range) once when
|
|
304
|
+
* parameters change. This provides varied AI timing while maintaining consistent
|
|
305
|
+
* behavior throughout the current parameter set.
|
|
306
|
+
*
|
|
307
|
+
* @korean 난이도 매개변수 설정
|
|
308
|
+
* @param params - Difficulty parameters to apply
|
|
309
|
+
*/
|
|
310
|
+
setDifficultyParameters(params) {
|
|
311
|
+
this.difficultyParams = params;
|
|
312
|
+
if (params) this.currentReactionDelay = params.reactionTimeMs.min + Math.random() * (params.reactionTimeMs.max - params.reactionTimeMs.min);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Check if kill mode should be activated based on archetype behavior
|
|
316
|
+
*
|
|
317
|
+
* Kill mode activates when:
|
|
318
|
+
* - Opponent health is low (<30%)
|
|
319
|
+
* - Opponent is in vulnerable balance state (HELPLESS/VULNERABLE)
|
|
320
|
+
*
|
|
321
|
+
* **Korean Philosophy (결정타 모드)**:
|
|
322
|
+
* Each archetype activates kill mode differently based on combat philosophy:
|
|
323
|
+
* - **Musa**: Honor demands finishing the fight decisively
|
|
324
|
+
* - **Amsalja**: Opportunity for instant takedown with precision
|
|
325
|
+
* - **Hacker**: Analytical window for calculated strike
|
|
326
|
+
* - **Jeongbo Yowon**: Strategic opportunity for submission
|
|
327
|
+
* - **Jojik Pokryeokbae**: Pragmatic moment to finish brutally
|
|
328
|
+
*
|
|
329
|
+
* @korean 결정타 모드 활성화 확인
|
|
330
|
+
*
|
|
331
|
+
* @param context - Current combat context
|
|
332
|
+
* @param personality - AI personality archetype
|
|
333
|
+
* @returns True if kill mode should be active
|
|
334
|
+
*/
|
|
335
|
+
isKillModeActive(context, personality) {
|
|
336
|
+
const opponentHealthPercent = context.opponentHealth / context.playerMaxHealth;
|
|
337
|
+
const isOpponentVulnerable = context.opponentBalance != null && (context.opponentBalance === "HELPLESS" || context.opponentBalance === "VULNERABLE");
|
|
338
|
+
let healthThreshold = .3;
|
|
339
|
+
switch (personality.archetype) {
|
|
340
|
+
case PlayerArchetype.MUSA:
|
|
341
|
+
healthThreshold = .3;
|
|
342
|
+
break;
|
|
343
|
+
case PlayerArchetype.AMSALJA:
|
|
344
|
+
healthThreshold = .3;
|
|
345
|
+
break;
|
|
346
|
+
case PlayerArchetype.HACKER:
|
|
347
|
+
healthThreshold = .25;
|
|
348
|
+
break;
|
|
349
|
+
case PlayerArchetype.JEONGBO_YOWON:
|
|
350
|
+
healthThreshold = .28;
|
|
351
|
+
break;
|
|
352
|
+
case PlayerArchetype.JOJIK_POKRYEOKBAE:
|
|
353
|
+
healthThreshold = .35;
|
|
354
|
+
break;
|
|
355
|
+
}
|
|
356
|
+
return opponentHealthPercent < healthThreshold || isOpponentVulnerable;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Apply kill mode modifiers to action weights for finishing behavior
|
|
360
|
+
*
|
|
361
|
+
* **Kill Mode Behavior (결정타 행동)**:
|
|
362
|
+
* Each archetype has unique finishing behavior based on combat philosophy:
|
|
363
|
+
* - **Musa**: All-in overwhelming force (2.5x attack, 0x retreat)
|
|
364
|
+
* - **Amsalja**: Instant takedown focus (3.0x technique, feints disabled)
|
|
365
|
+
* - **Hacker**: Analytical precision (2.0x technique, counter focus)
|
|
366
|
+
* - **Jeongbo Yowon**: Strategic control (1.8x technique, balanced approach)
|
|
367
|
+
* - **Jojik Pokryeokbae**: Brutal pragmatism (2.2x attack, dirty tactics)
|
|
368
|
+
*
|
|
369
|
+
* @korean 결정타 모드 가중치 적용
|
|
370
|
+
*
|
|
371
|
+
* @param baseWeights - Base action weight multipliers
|
|
372
|
+
* @param personality - AI personality archetype
|
|
373
|
+
* @param isKillMode - Whether kill mode is active
|
|
374
|
+
* @returns Modified action weights for kill mode
|
|
375
|
+
*/
|
|
376
|
+
applyKillModeModifiers(baseWeights, personality, isKillMode) {
|
|
377
|
+
if (!isKillMode) return baseWeights;
|
|
378
|
+
const modified = { ...baseWeights };
|
|
379
|
+
switch (personality.archetype) {
|
|
380
|
+
case PlayerArchetype.MUSA:
|
|
381
|
+
modified.attack *= 2.5;
|
|
382
|
+
modified.technique *= 2;
|
|
383
|
+
modified.defend *= .2;
|
|
384
|
+
modified.retreat = 0;
|
|
385
|
+
break;
|
|
386
|
+
case PlayerArchetype.AMSALJA:
|
|
387
|
+
modified.technique *= 3;
|
|
388
|
+
modified.attack *= 1.5;
|
|
389
|
+
modified.defend *= .3;
|
|
390
|
+
break;
|
|
391
|
+
case PlayerArchetype.HACKER:
|
|
392
|
+
modified.technique *= 2;
|
|
393
|
+
modified.attack *= 1.3;
|
|
394
|
+
modified.defend *= .7;
|
|
395
|
+
break;
|
|
396
|
+
case PlayerArchetype.JEONGBO_YOWON:
|
|
397
|
+
modified.technique *= 1.8;
|
|
398
|
+
modified.attack *= 1.6;
|
|
399
|
+
modified.defend *= .6;
|
|
400
|
+
modified.retreat *= .5;
|
|
401
|
+
break;
|
|
402
|
+
case PlayerArchetype.JOJIK_POKRYEOKBAE:
|
|
403
|
+
modified.attack *= 2.2;
|
|
404
|
+
modified.technique *= 1.7;
|
|
405
|
+
modified.defend *= .4;
|
|
406
|
+
modified.retreat *= 1.2;
|
|
407
|
+
break;
|
|
408
|
+
}
|
|
409
|
+
return modified;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Apply Intelligence Operative (Jeongbo Yowon) vulnerability exploitation
|
|
413
|
+
*
|
|
414
|
+
* Enhances decision weights to exploit opponent's defenseless states with precision:
|
|
415
|
+
* - **HELPLESS (balance === HELPLESS)**: 90% takedown priority - Execute precision takedown
|
|
416
|
+
* - **VULNERABLE (balance === VULNERABLE)**: 70% aggressive attack - Sustained pressure tactics
|
|
417
|
+
* - **SHAKEN (balance === SHAKEN)**: 50% pressure increase - Psychological warfare
|
|
418
|
+
* - **Low Stamina (< 20%)**: 60% exploitation - Force defensive positions
|
|
419
|
+
* - **No Ki (< 10%)**: 50% technique spam - Prevent powerful techniques
|
|
420
|
+
*
|
|
421
|
+
* **Multiplier Stacking Behavior**:
|
|
422
|
+
* When multiple vulnerabilities are present, multipliers stack multiplicatively:
|
|
423
|
+
* - VULNERABLE (2.0x attack) + low stamina (1.5x attack) = 3.0x total attack multiplier
|
|
424
|
+
* - VULNERABLE (1.8x technique) + low ki (1.4x technique) = 2.52x total technique multiplier
|
|
425
|
+
* This creates increasingly aggressive exploitation as opponent becomes more vulnerable.
|
|
426
|
+
* Note: HELPLESS state uses exclusive else-if, so it doesn't stack with VULNERABLE/SHAKEN.
|
|
427
|
+
*
|
|
428
|
+
* **Jeongbo Philosophy (정보요원 전략)**:
|
|
429
|
+
* - Knowledge through observation (관찰을 통한 지식)
|
|
430
|
+
* - Psychological manipulation (심리적 조작)
|
|
431
|
+
* - Precise timing (정확한 타이밍)
|
|
432
|
+
* - Strategic exploitation (전략적 공략)
|
|
433
|
+
*
|
|
434
|
+
* This function provides 3x higher vulnerability exploitation rate than Musa,
|
|
435
|
+
* 2x higher psychological warfare usage than Amsalja, and 5x higher takedown
|
|
436
|
+
* success rate when opponent is HELPLESS.
|
|
437
|
+
*
|
|
438
|
+
* @korean 정보요원 취약성 공략
|
|
439
|
+
*
|
|
440
|
+
* @param weights - Base action weight multipliers
|
|
441
|
+
* @param vulnerability - Vulnerability assessment context
|
|
442
|
+
* @param personality - AI personality archetype
|
|
443
|
+
* @returns Modified action weights for Jeongbo exploitation
|
|
444
|
+
*/
|
|
445
|
+
applyJeongboExploitation(weights, vulnerability, personality) {
|
|
446
|
+
if (personality.archetype !== PlayerArchetype.JEONGBO_YOWON) return weights;
|
|
447
|
+
const modified = { ...weights };
|
|
448
|
+
if (this.shouldExecutePressureStrike(vulnerability)) {
|
|
449
|
+
modified.technique *= 3;
|
|
450
|
+
modified.attack *= .3;
|
|
451
|
+
return modified;
|
|
452
|
+
}
|
|
453
|
+
if (vulnerability.isHelpless) {
|
|
454
|
+
modified.technique *= 5;
|
|
455
|
+
modified.attack *= .2;
|
|
456
|
+
modified.defend *= .1;
|
|
457
|
+
modified.feint *= .1;
|
|
458
|
+
} else if (vulnerability.isVulnerable) {
|
|
459
|
+
modified.attack *= 2;
|
|
460
|
+
modified.technique *= 1.8;
|
|
461
|
+
modified.feint *= .5;
|
|
462
|
+
modified.defend *= .5;
|
|
463
|
+
} else if (vulnerability.isShaken) {
|
|
464
|
+
modified.feint *= 2;
|
|
465
|
+
modified.circle *= 1.5;
|
|
466
|
+
modified.technique *= 1.3;
|
|
467
|
+
}
|
|
468
|
+
if (vulnerability.hasLowStamina) {
|
|
469
|
+
modified.attack *= 1.5;
|
|
470
|
+
modified.approach *= 1.3;
|
|
471
|
+
}
|
|
472
|
+
if (vulnerability.hasNoKi) {
|
|
473
|
+
modified.technique *= 1.4;
|
|
474
|
+
modified.attack *= 1.3;
|
|
475
|
+
}
|
|
476
|
+
return modified;
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* Build psychological pressure through intimidation tactics
|
|
480
|
+
*
|
|
481
|
+
* Intelligence Operative uses feints, circling, and approach/retreat patterns
|
|
482
|
+
* to build cumulative psychological pressure on opponent. When pressure reaches
|
|
483
|
+
* 50+ and opponent is VULNERABLE, triggers decisive strike.
|
|
484
|
+
*
|
|
485
|
+
* **Psychological Tactics (심리전 전술)**:
|
|
486
|
+
* - Feints: +10 pressure (fake attacks create hesitation)
|
|
487
|
+
* - Circling: +5 pressure (predator circling prey)
|
|
488
|
+
* - Approach: +3 pressure (aggressive positioning)
|
|
489
|
+
* - Decay: -3 pressure per second (pressure fades without action)
|
|
490
|
+
*
|
|
491
|
+
* @korean 심리적 압박 증가
|
|
492
|
+
*
|
|
493
|
+
* @param actionType - Type of action taken (FEINT, CIRCLE, APPROACH, etc.)
|
|
494
|
+
* @param now - Current timestamp for decay calculation
|
|
495
|
+
*/
|
|
496
|
+
buildPsychologicalPressure(actionType, now) {
|
|
497
|
+
if (this.lastPressureActionTime > 0) {
|
|
498
|
+
const decayAmount = (now - this.lastPressureActionTime) / 1e3 * 3;
|
|
499
|
+
this.psychologicalPressure = Math.max(0, this.psychologicalPressure - decayAmount);
|
|
500
|
+
}
|
|
501
|
+
switch (actionType) {
|
|
502
|
+
case AIActionType.FEINT:
|
|
503
|
+
this.psychologicalPressure = Math.min(100, this.psychologicalPressure + 10);
|
|
504
|
+
this.lastPressureActionTime = now;
|
|
505
|
+
break;
|
|
506
|
+
case AIActionType.CIRCLE:
|
|
507
|
+
this.psychologicalPressure = Math.min(100, this.psychologicalPressure + 5);
|
|
508
|
+
this.lastPressureActionTime = now;
|
|
509
|
+
break;
|
|
510
|
+
case AIActionType.APPROACH:
|
|
511
|
+
this.psychologicalPressure = Math.min(100, this.psychologicalPressure + 3);
|
|
512
|
+
this.lastPressureActionTime = now;
|
|
513
|
+
break;
|
|
514
|
+
case AIActionType.ATTACK:
|
|
515
|
+
case AIActionType.TECHNIQUE:
|
|
516
|
+
this.psychologicalPressure = Math.max(0, this.psychologicalPressure * .5);
|
|
517
|
+
break;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Check if psychological pressure should trigger decisive strike
|
|
522
|
+
*
|
|
523
|
+
* Jeongbo executes decisive technique when:
|
|
524
|
+
* - Psychological pressure ≥ 50 (sustained intimidation)
|
|
525
|
+
* - Opponent is VULNERABLE or worse (balance < 30)
|
|
526
|
+
* - Returns true to boost technique priority
|
|
527
|
+
*
|
|
528
|
+
* @korean 심리적 압박 결정타 확인
|
|
529
|
+
*
|
|
530
|
+
* @param vulnerability - Vulnerability assessment context
|
|
531
|
+
* @returns True if pressure warrants decisive strike
|
|
532
|
+
*/
|
|
533
|
+
shouldExecutePressureStrike(vulnerability) {
|
|
534
|
+
return this.psychologicalPressure >= 50 && (vulnerability.isVulnerable || vulnerability.isHelpless);
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* Analyze counter-attack opportunity from opponent's limb exposure.
|
|
538
|
+
*
|
|
539
|
+
* **Korean**: 반격 기회 분석 (Counter Opportunity Analysis)
|
|
540
|
+
*
|
|
541
|
+
* Detects when the opponent has exposed limbs during technique execution,
|
|
542
|
+
* enabling defensive counter-attacks and breaking techniques.
|
|
543
|
+
*
|
|
544
|
+
* This integrates the LimbExposureSystem with AI decision-making by:
|
|
545
|
+
* 1. Detecting exposed limbs from opponent's current technique
|
|
546
|
+
* 2. Calculating vulnerability windows and multipliers
|
|
547
|
+
* 3. Providing counter opportunity data for decision prioritization
|
|
548
|
+
*
|
|
549
|
+
* @param context - Combat context with opponent technique data
|
|
550
|
+
* @returns Enhanced context with counter opportunity analysis, or undefined if no opportunity
|
|
551
|
+
*
|
|
552
|
+
* @remarks
|
|
553
|
+
* Returns undefined if:
|
|
554
|
+
* - Opponent is not executing a technique
|
|
555
|
+
* - Technique has no exposure window defined
|
|
556
|
+
* - Current time is outside the exposure window
|
|
557
|
+
*
|
|
558
|
+
* @korean 반격기회분석
|
|
559
|
+
*/
|
|
560
|
+
analyzeCounterOpportunity(context) {
|
|
561
|
+
const counterOpportunity = context.counterOpportunity;
|
|
562
|
+
return {
|
|
563
|
+
counterOpportunity,
|
|
564
|
+
opponentVulnerability: counterOpportunity?.vulnerabilityMultiplier ?? 1
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
/**
|
|
568
|
+
* Make strategic decision based on combat context
|
|
569
|
+
*
|
|
570
|
+
* Applies difficulty-based reaction time delays if difficulty parameters are set
|
|
571
|
+
*/
|
|
572
|
+
makeDecision(context, personality, comboSystem) {
|
|
573
|
+
const now = Date.now();
|
|
574
|
+
const reactionDelay = this.difficultyParams ? this.currentReactionDelay : this.decisionCooldown;
|
|
575
|
+
const effectiveCooldown = Math.max(this.decisionCooldown, reactionDelay);
|
|
576
|
+
if (now - this.lastDecisionTime < effectiveCooldown) return {
|
|
577
|
+
action: AIActionType.WAIT,
|
|
578
|
+
priority: 0,
|
|
579
|
+
reason: this.difficultyParams ? `Reaction time delay: ${effectiveCooldown.toFixed(0)}ms` : "Decision cooldown active"
|
|
580
|
+
};
|
|
581
|
+
this.lastDecisionTime = now;
|
|
582
|
+
const isBelowRetreatThreshold = context.playerHealth / context.playerMaxHealth < personality.tacticalRetreatThreshold;
|
|
583
|
+
const opponentMaxHealth = context.opponentMaxHealth ?? context.playerMaxHealth;
|
|
584
|
+
const isKillOpportunity = context.opponentHealth / opponentMaxHealth < .3;
|
|
585
|
+
const isOpponentVulnerable = context.opponentBalance === "VULNERABLE" || context.opponentBalance === "HELPLESS";
|
|
586
|
+
if (personality.archetype === PlayerArchetype.HACKER && context.timeInMatch < HACKER_OBSERVATION_DURATION_MS && !isBelowRetreatThreshold && !isKillOpportunity && !isOpponentVulnerable) return {
|
|
587
|
+
action: HACKER_OBSERVATION_ACTIONS[Math.floor(Math.random() * HACKER_OBSERVATION_ACTIONS.length)],
|
|
588
|
+
priority: 10,
|
|
589
|
+
reason: `Hacker observation phase: collecting data (${(context.timeInMatch / 1e3).toFixed(1)}s / ${HACKER_OBSERVATION_DURATION_MS / 1e3}s) (해커 관찰 단계)`
|
|
590
|
+
};
|
|
591
|
+
const killModeActive = this.isKillModeActive(context, personality);
|
|
592
|
+
const vulnerability = assessVulnerability(context);
|
|
593
|
+
const counterAnalysis = this.analyzeCounterOpportunity(context);
|
|
594
|
+
if (comboSystem.isComboActive()) return this.decideComboAction(context, personality);
|
|
595
|
+
const decisions = [];
|
|
596
|
+
const optimalRange = this.getOptimalRange(personality, context);
|
|
597
|
+
const distance = context.distanceToOpponent;
|
|
598
|
+
decisions.push(this.evaluateSurvival(context, personality));
|
|
599
|
+
if (counterAnalysis.counterOpportunity) decisions.push(this.evaluateLimbExposureCounter(context, personality, counterAnalysis.counterOpportunity, counterAnalysis.opponentVulnerability));
|
|
600
|
+
if (context.isOpponentAttacking) decisions.push(this.evaluateCounter(context, personality, killModeActive));
|
|
601
|
+
if (distance < optimalRange * 1.5) decisions.push(this.evaluateComboStart(context, personality, comboSystem));
|
|
602
|
+
decisions.push(this.evaluateStanceChange(context, personality, now));
|
|
603
|
+
if (distance < optimalRange * 1.8 && !killModeActive) decisions.push(this.evaluateFeint(context, personality));
|
|
604
|
+
if (distance <= optimalRange * 2) decisions.push(this.evaluateCloseRange(context, personality, killModeActive));
|
|
605
|
+
else if (distance > optimalRange * 2.5) decisions.push(this.evaluateApproach(context, personality, killModeActive));
|
|
606
|
+
else decisions.push(this.evaluateMidRange(context, personality));
|
|
607
|
+
if (!killModeActive || personality.archetype !== PlayerArchetype.MUSA) decisions.push(this.evaluateDefense(context, personality));
|
|
608
|
+
let modifiedDecisions = decisions;
|
|
609
|
+
if (personality.archetype === PlayerArchetype.JEONGBO_YOWON) modifiedDecisions = decisions.map((decision) => {
|
|
610
|
+
const SURVIVAL_REASON_KEYWORDS = [
|
|
611
|
+
"critical health",
|
|
612
|
+
"high pain",
|
|
613
|
+
"survival retreat",
|
|
614
|
+
"emergency retreat",
|
|
615
|
+
"위급 상황",
|
|
616
|
+
"고통 회피"
|
|
617
|
+
];
|
|
618
|
+
const reasonLower = decision.reason.toLowerCase();
|
|
619
|
+
const hasSurvivalKeyword = SURVIVAL_REASON_KEYWORDS.some((keyword) => reasonLower.includes(keyword));
|
|
620
|
+
if (decision.action === AIActionType.RETREAT && (decision.priority === 20 || hasSurvivalKeyword)) return decision;
|
|
621
|
+
if (![
|
|
622
|
+
AIActionType.ATTACK,
|
|
623
|
+
AIActionType.TECHNIQUE,
|
|
624
|
+
AIActionType.DEFEND,
|
|
625
|
+
AIActionType.FEINT,
|
|
626
|
+
AIActionType.APPROACH,
|
|
627
|
+
AIActionType.CIRCLE
|
|
628
|
+
].includes(decision.action)) return decision;
|
|
629
|
+
const weights = {
|
|
630
|
+
attack: decision.action === AIActionType.ATTACK ? 1 : 0,
|
|
631
|
+
technique: decision.action === AIActionType.TECHNIQUE ? 1 : 0,
|
|
632
|
+
defend: decision.action === AIActionType.DEFEND ? 1 : 0,
|
|
633
|
+
feint: decision.action === AIActionType.FEINT ? 1 : 0,
|
|
634
|
+
approach: decision.action === AIActionType.APPROACH ? 1 : 0,
|
|
635
|
+
circle: decision.action === AIActionType.CIRCLE ? 1 : 0
|
|
636
|
+
};
|
|
637
|
+
const modifiedWeights = this.applyJeongboExploitation(weights, vulnerability, personality);
|
|
638
|
+
let newPriority = decision.priority;
|
|
639
|
+
if (decision.action === AIActionType.ATTACK) newPriority = decision.priority * modifiedWeights.attack;
|
|
640
|
+
else if (decision.action === AIActionType.TECHNIQUE) newPriority = decision.priority * modifiedWeights.technique;
|
|
641
|
+
else if (decision.action === AIActionType.DEFEND) newPriority = decision.priority * modifiedWeights.defend;
|
|
642
|
+
else if (decision.action === AIActionType.FEINT) newPriority = decision.priority * modifiedWeights.feint;
|
|
643
|
+
else if (decision.action === AIActionType.APPROACH) newPriority = decision.priority * modifiedWeights.approach;
|
|
644
|
+
else if (decision.action === AIActionType.CIRCLE) newPriority = decision.priority * modifiedWeights.circle;
|
|
645
|
+
return {
|
|
646
|
+
...decision,
|
|
647
|
+
priority: newPriority
|
|
648
|
+
};
|
|
649
|
+
});
|
|
650
|
+
if (killModeActive) {
|
|
651
|
+
modifiedDecisions = modifiedDecisions.map((decision) => {
|
|
652
|
+
const SURVIVAL_REASON_KEYWORDS = [
|
|
653
|
+
"critical health",
|
|
654
|
+
"high pain",
|
|
655
|
+
"survival retreat",
|
|
656
|
+
"emergency retreat",
|
|
657
|
+
"위급 상황",
|
|
658
|
+
"고통 회피"
|
|
659
|
+
];
|
|
660
|
+
const reasonLower = decision.reason.toLowerCase();
|
|
661
|
+
const hasSurvivalKeyword = SURVIVAL_REASON_KEYWORDS.some((keyword) => reasonLower.includes(keyword));
|
|
662
|
+
if (decision.action === AIActionType.RETREAT && (decision.priority === 20 || hasSurvivalKeyword)) return decision;
|
|
663
|
+
const weights = {
|
|
664
|
+
attack: decision.action === AIActionType.ATTACK ? 1 : 0,
|
|
665
|
+
technique: decision.action === AIActionType.TECHNIQUE ? 1 : 0,
|
|
666
|
+
defend: decision.action === AIActionType.DEFEND ? 1 : 0,
|
|
667
|
+
retreat: decision.action === AIActionType.RETREAT ? 1 : 0
|
|
668
|
+
};
|
|
669
|
+
const modifiedWeights = this.applyKillModeModifiers(weights, personality, true);
|
|
670
|
+
let newPriority = decision.priority;
|
|
671
|
+
if (decision.action === AIActionType.ATTACK) newPriority = decision.priority * modifiedWeights.attack;
|
|
672
|
+
else if (decision.action === AIActionType.TECHNIQUE) newPriority = decision.priority * modifiedWeights.technique;
|
|
673
|
+
else if (decision.action === AIActionType.DEFEND) newPriority = decision.priority * modifiedWeights.defend;
|
|
674
|
+
else if (decision.action === AIActionType.RETREAT) newPriority = decision.priority * modifiedWeights.retreat;
|
|
675
|
+
return {
|
|
676
|
+
...decision,
|
|
677
|
+
priority: newPriority
|
|
678
|
+
};
|
|
679
|
+
});
|
|
680
|
+
const bestDecision = modifiedDecisions.reduce((best, current) => current.priority > best.priority ? current : best);
|
|
681
|
+
if (personality.archetype === PlayerArchetype.JEONGBO_YOWON) this.buildPsychologicalPressure(bestDecision.action, now);
|
|
682
|
+
if (bestDecision.action === AIActionType.ATTACK || bestDecision.action === AIActionType.TECHNIQUE) this.consecutiveAttacks++;
|
|
683
|
+
else this.consecutiveAttacks = 0;
|
|
684
|
+
return enforceArchetypeBehavior(bestDecision, personality.archetype, context);
|
|
685
|
+
}
|
|
686
|
+
const bestDecision = modifiedDecisions.reduce((best, current) => current.priority > best.priority ? current : best);
|
|
687
|
+
if (personality.archetype === PlayerArchetype.JEONGBO_YOWON) this.buildPsychologicalPressure(bestDecision.action, now);
|
|
688
|
+
if (bestDecision.action === AIActionType.ATTACK || bestDecision.action === AIActionType.TECHNIQUE) this.consecutiveAttacks++;
|
|
689
|
+
else this.consecutiveAttacks = 0;
|
|
690
|
+
return enforceArchetypeBehavior(bestDecision, personality.archetype, context);
|
|
691
|
+
}
|
|
692
|
+
/**
|
|
693
|
+
* Evaluate survival tactics when critically low health
|
|
694
|
+
*
|
|
695
|
+
* **Korean Philosophy (생존 전략)**:
|
|
696
|
+
* - Consider both health and pain levels
|
|
697
|
+
* - Archetype affects retreat threshold and behavior
|
|
698
|
+
* - Honor code (Musa) prevents retreat above threshold
|
|
699
|
+
*/
|
|
700
|
+
evaluateSurvival(context, personality) {
|
|
701
|
+
const healthPercent = context.playerHealth / context.playerMaxHealth;
|
|
702
|
+
const painLevel = context.recentDamageTaken;
|
|
703
|
+
const behavior = getArchetypeBehavior(personality.archetype);
|
|
704
|
+
const isCritical = healthPercent < personality.tacticalRetreatThreshold;
|
|
705
|
+
if (isCritical || healthPercent < .5 && painLevel > 50) {
|
|
706
|
+
if (behavior.honorCode && healthPercent > behavior.retreatThreshold / 100) return {
|
|
707
|
+
action: AIActionType.WAIT,
|
|
708
|
+
priority: 0,
|
|
709
|
+
reason: `Honor code prevents retreat: ${(healthPercent * 100).toFixed(1)}% (명예 규범)`
|
|
710
|
+
};
|
|
711
|
+
const retreatVector = this.calculateRetreatPosition(context);
|
|
712
|
+
return {
|
|
713
|
+
action: AIActionType.RETREAT,
|
|
714
|
+
targetPosition: retreatVector,
|
|
715
|
+
priority: 20,
|
|
716
|
+
reason: isCritical ? `Critical health: ${(healthPercent * 100).toFixed(1)}% (위급 상황)` : `High pain: ${painLevel.toFixed(0)} (고통 회피)`
|
|
717
|
+
};
|
|
718
|
+
}
|
|
719
|
+
return {
|
|
720
|
+
action: AIActionType.WAIT,
|
|
721
|
+
priority: 0,
|
|
722
|
+
reason: "Health stable"
|
|
723
|
+
};
|
|
724
|
+
}
|
|
725
|
+
/**
|
|
726
|
+
* Evaluate counter-attack opportunity
|
|
727
|
+
*
|
|
728
|
+
* **Kill Mode Enhancement (결정타 반격)**:
|
|
729
|
+
* All archetypes enhance counter behavior during kill mode based on philosophy:
|
|
730
|
+
* - **Musa**: Increased counter frequency (honor demands swift response)
|
|
731
|
+
* - **Amsalja**: Enhanced counter timing with precision strikes
|
|
732
|
+
* - **Hacker**: Calculated counter-attacks (analytical opportunity)
|
|
733
|
+
* - **Jeongbo Yowon**: Strategic counters (psychological advantage)
|
|
734
|
+
* - **Jojik Pokryeokbae**: Opportunistic counters (dirty tactics)
|
|
735
|
+
*
|
|
736
|
+
* @param context - Combat context
|
|
737
|
+
* @param personality - AI personality
|
|
738
|
+
* @param killModeActive - Whether kill mode is active
|
|
739
|
+
*/
|
|
740
|
+
evaluateCounter(context, personality, killModeActive = false) {
|
|
741
|
+
let counterChance = personality.defensePreference * .8;
|
|
742
|
+
let counterPriority = 8;
|
|
743
|
+
if (killModeActive) switch (personality.archetype) {
|
|
744
|
+
case PlayerArchetype.MUSA:
|
|
745
|
+
counterChance = Math.min(.95, counterChance + .3);
|
|
746
|
+
counterPriority = 9;
|
|
747
|
+
break;
|
|
748
|
+
case PlayerArchetype.AMSALJA:
|
|
749
|
+
counterChance = Math.min(.9, counterChance + .25);
|
|
750
|
+
counterPriority = 9;
|
|
751
|
+
break;
|
|
752
|
+
case PlayerArchetype.HACKER:
|
|
753
|
+
counterChance = Math.min(.85, counterChance + .15);
|
|
754
|
+
counterPriority = 9;
|
|
755
|
+
break;
|
|
756
|
+
case PlayerArchetype.JEONGBO_YOWON:
|
|
757
|
+
counterChance = Math.min(.8, counterChance + .2);
|
|
758
|
+
counterPriority = 8;
|
|
759
|
+
break;
|
|
760
|
+
case PlayerArchetype.JOJIK_POKRYEOKBAE:
|
|
761
|
+
counterChance = Math.min(.85, counterChance + .25);
|
|
762
|
+
counterPriority = 8;
|
|
763
|
+
break;
|
|
764
|
+
}
|
|
765
|
+
const maxReach = this.getArchetypeMaxReach(personality.archetype);
|
|
766
|
+
if (Math.random() < counterChance && context.distanceToOpponent < maxReach) {
|
|
767
|
+
let killModeReason = "";
|
|
768
|
+
if (killModeActive) switch (personality.archetype) {
|
|
769
|
+
case PlayerArchetype.MUSA:
|
|
770
|
+
killModeReason = " - 명예 반격 (honor counter)";
|
|
771
|
+
break;
|
|
772
|
+
case PlayerArchetype.AMSALJA:
|
|
773
|
+
killModeReason = " - 정밀 반격 (precision counter)";
|
|
774
|
+
break;
|
|
775
|
+
case PlayerArchetype.HACKER:
|
|
776
|
+
killModeReason = " - 분석 반격 (analytical counter)";
|
|
777
|
+
break;
|
|
778
|
+
case PlayerArchetype.JEONGBO_YOWON:
|
|
779
|
+
killModeReason = " - 전략 반격 (strategic counter)";
|
|
780
|
+
break;
|
|
781
|
+
case PlayerArchetype.JOJIK_POKRYEOKBAE:
|
|
782
|
+
killModeReason = " - 기습 반격 (opportunistic counter)";
|
|
783
|
+
break;
|
|
784
|
+
}
|
|
785
|
+
return {
|
|
786
|
+
action: AIActionType.COUNTER,
|
|
787
|
+
priority: counterPriority,
|
|
788
|
+
reason: `Opponent attacking - counter opportunity${killModeReason}`
|
|
789
|
+
};
|
|
790
|
+
}
|
|
791
|
+
return {
|
|
792
|
+
action: AIActionType.DEFEND,
|
|
793
|
+
priority: 6,
|
|
794
|
+
reason: "Opponent attacking - defensive stance"
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* Evaluate counter-attack opportunity from limb exposure.
|
|
799
|
+
*
|
|
800
|
+
* **Korean**: 사지 노출 반격 평가 (Limb Exposure Counter Evaluation)
|
|
801
|
+
*
|
|
802
|
+
* Analyzes opportunities to exploit opponent's exposed limbs during technique
|
|
803
|
+
* execution. This is higher priority than standard counters because it targets
|
|
804
|
+
* specific anatomical vulnerabilities.
|
|
805
|
+
*
|
|
806
|
+
* **Defensive Archetype Priority**:
|
|
807
|
+
* Defensive archetypes (high defensiveness) strongly favor counter-attacks:
|
|
808
|
+
* - **Musa**: Honorable defense with precise counters (defensiveness ~0.7)
|
|
809
|
+
* - **Amsalja**: Patient assassin waiting for openings (defensiveness ~0.6)
|
|
810
|
+
* - **Jeongbo Yowon**: Analytical exploitation of weaknesses (defensiveness ~0.5)
|
|
811
|
+
*
|
|
812
|
+
* **Breaking Techniques**:
|
|
813
|
+
* When allowsBreaking is true, AI can execute joint locks and limb breaks
|
|
814
|
+
* for severe damage and mobility reduction.
|
|
815
|
+
*
|
|
816
|
+
* @param context - Combat context with positioning
|
|
817
|
+
* @param personality - AI personality with archetype and defensiveness
|
|
818
|
+
* @param counterOpportunity - Detected limb exposure opportunity
|
|
819
|
+
* @param opponentVulnerability - Opponent's vulnerability multiplier
|
|
820
|
+
* @returns Counter-attack decision with priority based on archetype
|
|
821
|
+
*
|
|
822
|
+
* @korean 사지노출반격평가
|
|
823
|
+
*/
|
|
824
|
+
evaluateLimbExposureCounter(context, personality, counterOpportunity, opponentVulnerability) {
|
|
825
|
+
let counterPriority = 9;
|
|
826
|
+
const defensivenessBonus = personality.defensePreference * 3;
|
|
827
|
+
counterPriority += defensivenessBonus;
|
|
828
|
+
if (counterOpportunity.allowsBreaking) counterPriority += 2;
|
|
829
|
+
if (opponentVulnerability > 2) counterPriority += 1;
|
|
830
|
+
else if (opponentVulnerability > 1.5) counterPriority += .5;
|
|
831
|
+
if (!(context.playerStamina > context.playerMaxStamina * .2)) counterPriority -= 3;
|
|
832
|
+
const maxCounterRange = 1;
|
|
833
|
+
if (context.distanceToOpponent > maxCounterRange) return {
|
|
834
|
+
action: AIActionType.WAIT,
|
|
835
|
+
priority: 0,
|
|
836
|
+
reason: `Limb exposed but too far: ${context.distanceToOpponent.toFixed(2)}m > ${maxCounterRange}m`
|
|
837
|
+
};
|
|
838
|
+
const exposedLimbKorean = this.translateExposedLimb(counterOpportunity.exposedLimb);
|
|
839
|
+
const breakingNote = counterOpportunity.allowsBreaking ? " - 파쇄 가능 (breaking possible)" : "";
|
|
840
|
+
const vulnerabilityNote = ` (취약성: ${opponentVulnerability.toFixed(1)}x)`;
|
|
841
|
+
return {
|
|
842
|
+
action: AIActionType.COUNTER,
|
|
843
|
+
priority: counterPriority,
|
|
844
|
+
reason: `Exposed limb counter: ${counterOpportunity.exposedLimb} (${exposedLimbKorean})${breakingNote}${vulnerabilityNote}`
|
|
845
|
+
};
|
|
846
|
+
}
|
|
847
|
+
/**
|
|
848
|
+
* Translate exposed limb type to Korean.
|
|
849
|
+
*
|
|
850
|
+
* **Korean**: 노출 사지 번역 (Exposed Limb Translation)
|
|
851
|
+
*
|
|
852
|
+
* @param exposedLimb - English limb type identifier
|
|
853
|
+
* @returns Korean translation
|
|
854
|
+
*
|
|
855
|
+
* @korean 노출사지번역
|
|
856
|
+
*/
|
|
857
|
+
translateExposedLimb(exposedLimb) {
|
|
858
|
+
return {
|
|
859
|
+
left_arm: "왼팔",
|
|
860
|
+
right_arm: "오른팔",
|
|
861
|
+
left_elbow: "왼팔꿈치",
|
|
862
|
+
right_elbow: "오른팔꿈치",
|
|
863
|
+
left_wrist: "왼손목",
|
|
864
|
+
right_wrist: "오른손목",
|
|
865
|
+
left_leg: "왼다리",
|
|
866
|
+
right_leg: "오른다리",
|
|
867
|
+
left_knee: "왼무릎",
|
|
868
|
+
right_knee: "오른무릎",
|
|
869
|
+
left_ankle: "왼발목",
|
|
870
|
+
right_ankle: "오른발목"
|
|
871
|
+
}[exposedLimb];
|
|
872
|
+
}
|
|
873
|
+
/**
|
|
874
|
+
* Evaluate combo initiation (fix for issue #2529467014)
|
|
875
|
+
*/
|
|
876
|
+
evaluateComboStart(context, personality, comboSystem) {
|
|
877
|
+
if (comboSystem.isComboActive()) return {
|
|
878
|
+
action: AIActionType.WAIT,
|
|
879
|
+
priority: 0,
|
|
880
|
+
reason: "Combo already active"
|
|
881
|
+
};
|
|
882
|
+
if (this.consecutiveAttacks > 0) return {
|
|
883
|
+
action: AIActionType.WAIT,
|
|
884
|
+
priority: 0,
|
|
885
|
+
reason: "Combo cooldown"
|
|
886
|
+
};
|
|
887
|
+
const hasResources = context.playerKi > context.playerMaxKi * .3 && context.playerStamina > context.playerMaxStamina * .3;
|
|
888
|
+
const mediumRange = this.getArchetypeMediumRange(personality.archetype);
|
|
889
|
+
const goodDistance = context.distanceToOpponent < mediumRange;
|
|
890
|
+
const comboChance = Math.random() < personality.comboTendency;
|
|
891
|
+
if (hasResources && goodDistance && comboChance) return {
|
|
892
|
+
action: AIActionType.COMBO,
|
|
893
|
+
priority: 7,
|
|
894
|
+
reason: "Initiating combo sequence"
|
|
895
|
+
};
|
|
896
|
+
return {
|
|
897
|
+
action: AIActionType.WAIT,
|
|
898
|
+
priority: 0,
|
|
899
|
+
reason: "Combo conditions not met"
|
|
900
|
+
};
|
|
901
|
+
}
|
|
902
|
+
/**
|
|
903
|
+
* Select stance based on distance to opponent
|
|
904
|
+
*
|
|
905
|
+
* Chooses optimal stance for current combat range, prioritizing:
|
|
906
|
+
* 1. Overlap between distance-optimal stances and archetype preferred stances
|
|
907
|
+
* 2. Any distance-optimal stance if no overlap exists (expands tactical repertoire)
|
|
908
|
+
* 3. Avoids switching to current stance
|
|
909
|
+
*
|
|
910
|
+
* **Distance Categories**:
|
|
911
|
+
* - CLOSE (≤2 cells / 80px): GEON, JIN, LI, SON - Aggressive close-quarters stances
|
|
912
|
+
* - MID (3-4 cells / 120-160px): GAM, TAE, GAN - Adaptive mid-range stances
|
|
913
|
+
* - FAR (≥5 cells / 200px+): GAN, GON - Defensive distance stances
|
|
914
|
+
*
|
|
915
|
+
* @korean 거리별 자세 선택
|
|
916
|
+
*
|
|
917
|
+
* **Physics-First**: Distance parameter is in METERS.
|
|
918
|
+
*
|
|
919
|
+
* @param distance - Distance to opponent in meters
|
|
920
|
+
* @param preferredStances - Archetype's preferred stances
|
|
921
|
+
* @param currentStance - Current stance (to avoid redundant switches)
|
|
922
|
+
* @returns Optimal stance for distance, or undefined if no valid options
|
|
923
|
+
*/
|
|
924
|
+
selectStanceForDistance(distance, preferredStances, currentStance, archetype) {
|
|
925
|
+
const closeRange = this.getArchetypeCloseRange(archetype);
|
|
926
|
+
const mediumRange = this.getArchetypeMediumRange(archetype);
|
|
927
|
+
let distanceCategory;
|
|
928
|
+
if (distance <= closeRange) distanceCategory = "CLOSE";
|
|
929
|
+
else if (distance <= mediumRange) distanceCategory = "MID";
|
|
930
|
+
else distanceCategory = "FAR";
|
|
931
|
+
const optimalStances = DISTANCE_BASED_STANCES[distanceCategory];
|
|
932
|
+
const candidates = optimalStances.filter((s) => preferredStances.includes(s));
|
|
933
|
+
const filtered = (candidates.length > 0 ? candidates : optimalStances).filter((s) => s !== currentStance);
|
|
934
|
+
if (filtered.length === 0) return;
|
|
935
|
+
return filtered[Math.floor(Math.random() * filtered.length)];
|
|
936
|
+
}
|
|
937
|
+
/**
|
|
938
|
+
* Evaluate stance change using TrigramSystem and distance-based selection
|
|
939
|
+
*
|
|
940
|
+
* **Korean Philosophy (자세 전환)**:
|
|
941
|
+
* Uses I Ching-based trigram system to find optimal stance transitions.
|
|
942
|
+
* Considers resource costs, counter-stance effectiveness, archetype preferences,
|
|
943
|
+
* and distance-based tactical positioning.
|
|
944
|
+
*
|
|
945
|
+
* **Dynamic Stance Rotation (Issue #dynamic-ai-stance-rotation)**:
|
|
946
|
+
* - Integrates distance-based stance selection for tactical variety
|
|
947
|
+
* - Prioritizes counter-stances for opponent matchup advantage
|
|
948
|
+
* - Expands tactical repertoire beyond archetype preferences when needed
|
|
949
|
+
*/
|
|
950
|
+
evaluateStanceChange(context, personality, now) {
|
|
951
|
+
if (now - this.lastStanceChange < this.stanceChangeCooldown) return {
|
|
952
|
+
action: AIActionType.WAIT,
|
|
953
|
+
priority: 0,
|
|
954
|
+
reason: "Stance change on cooldown"
|
|
955
|
+
};
|
|
956
|
+
const behavior = getArchetypeBehavior(personality.archetype);
|
|
957
|
+
const timeInStance = Math.max(0, context.stanceFatigue?.timeInStance ?? 0);
|
|
958
|
+
const fatigueModifier = this.getStanceFatigueModifier(timeInStance);
|
|
959
|
+
const adjustedSwitchFrequency = Math.min(.95, personality.stanceSwitchFrequency * fatigueModifier);
|
|
960
|
+
if (!(Math.random() < adjustedSwitchFrequency)) return {
|
|
961
|
+
action: AIActionType.WAIT,
|
|
962
|
+
priority: 0,
|
|
963
|
+
reason: fatigueModifier > 1 ? `Stance change deferred (fatigue: ${fatigueModifier.toFixed(2)}x, probability: ${(adjustedSwitchFrequency * 100).toFixed(1)}%)` : "No stance change needed"
|
|
964
|
+
};
|
|
965
|
+
if (behavior.preferredStances.includes(context.playerStance) && !context.isOpponentAttacking && Math.random() < .6) {
|
|
966
|
+
const fatigueOverrideProbability = fatigueModifier > 1 ? Math.min(.8, (fatigueModifier - 1) * AIDecisionTree.FATIGUE_OVERRIDE_SCALING_FACTOR) : 0;
|
|
967
|
+
if (!(fatigueModifier > 1.2 && Math.random() < fatigueOverrideProbability)) return {
|
|
968
|
+
action: AIActionType.WAIT,
|
|
969
|
+
priority: 0,
|
|
970
|
+
reason: "Already in preferred stance (선호 자세 유지)"
|
|
971
|
+
};
|
|
972
|
+
}
|
|
973
|
+
const playerState = {
|
|
974
|
+
currentStance: context.playerStance,
|
|
975
|
+
ki: context.playerKi,
|
|
976
|
+
stamina: context.playerStamina,
|
|
977
|
+
archetype: personality.archetype
|
|
978
|
+
};
|
|
979
|
+
const distanceStance = this.selectStanceForDistance(context.distanceToOpponent, behavior.preferredStances, context.playerStance, personality.archetype);
|
|
980
|
+
if (distanceStance && this.trigramSystem.canTransitionTo(context.playerStance, distanceStance, playerState)) {
|
|
981
|
+
this.lastStanceChange = now;
|
|
982
|
+
return {
|
|
983
|
+
action: AIActionType.STANCE_CHANGE,
|
|
984
|
+
targetStance: distanceStance,
|
|
985
|
+
priority: 5,
|
|
986
|
+
reason: `Distance-optimal stance (거리 최적 자세: ${distanceStance})`
|
|
987
|
+
};
|
|
988
|
+
}
|
|
989
|
+
const counterStance = this.trigramSystem.getCounterStance(context.opponentStance);
|
|
990
|
+
if (counterStance !== context.playerStance && this.trigramSystem.canTransitionTo(context.playerStance, counterStance, playerState)) {
|
|
991
|
+
this.lastStanceChange = now;
|
|
992
|
+
return {
|
|
993
|
+
action: AIActionType.STANCE_CHANGE,
|
|
994
|
+
targetStance: counterStance,
|
|
995
|
+
priority: 5,
|
|
996
|
+
reason: `Counter stance to ${context.opponentStance} (상극 대응)`
|
|
997
|
+
};
|
|
998
|
+
}
|
|
999
|
+
const recommendedStance = this.trigramSystem.recommendStance(playerState);
|
|
1000
|
+
if (this.trigramSystem.canTransitionTo(context.playerStance, recommendedStance, playerState)) {
|
|
1001
|
+
this.lastStanceChange = now;
|
|
1002
|
+
return {
|
|
1003
|
+
action: AIActionType.STANCE_CHANGE,
|
|
1004
|
+
targetStance: recommendedStance,
|
|
1005
|
+
priority: 4,
|
|
1006
|
+
reason: `Optimal stance transition via TrigramSystem (팔괘 전환)`
|
|
1007
|
+
};
|
|
1008
|
+
}
|
|
1009
|
+
const preferredAvailable = behavior.preferredStances.find((stance) => stance !== context.playerStance && this.trigramSystem.canTransitionTo(context.playerStance, stance, playerState));
|
|
1010
|
+
if (preferredAvailable) {
|
|
1011
|
+
this.lastStanceChange = now;
|
|
1012
|
+
return {
|
|
1013
|
+
action: AIActionType.STANCE_CHANGE,
|
|
1014
|
+
targetStance: preferredAvailable,
|
|
1015
|
+
priority: 4,
|
|
1016
|
+
reason: `Switching to preferred stance (선호 자세 전환: ${preferredAvailable})`
|
|
1017
|
+
};
|
|
1018
|
+
}
|
|
1019
|
+
return {
|
|
1020
|
+
action: AIActionType.WAIT,
|
|
1021
|
+
priority: 0,
|
|
1022
|
+
reason: "No viable stance transition"
|
|
1023
|
+
};
|
|
1024
|
+
}
|
|
1025
|
+
/**
|
|
1026
|
+
* Evaluate feint attack
|
|
1027
|
+
*/
|
|
1028
|
+
evaluateFeint(context, personality) {
|
|
1029
|
+
const maxReach = this.getArchetypeMaxReach(personality.archetype);
|
|
1030
|
+
if (Math.random() < personality.feintChance && context.distanceToOpponent < maxReach) return {
|
|
1031
|
+
action: AIActionType.FEINT,
|
|
1032
|
+
priority: 4,
|
|
1033
|
+
reason: "Feinting to bait opponent"
|
|
1034
|
+
};
|
|
1035
|
+
return {
|
|
1036
|
+
action: AIActionType.WAIT,
|
|
1037
|
+
priority: 0,
|
|
1038
|
+
reason: "No feint opportunity"
|
|
1039
|
+
};
|
|
1040
|
+
}
|
|
1041
|
+
/**
|
|
1042
|
+
* Evaluate close range tactics with vital point targeting
|
|
1043
|
+
*
|
|
1044
|
+
* **Korean Philosophy (급소 공격)**:
|
|
1045
|
+
* At close range, AI targets specific vital points based on difficulty level.
|
|
1046
|
+
* Higher difficulty = more precise targeting of critical points.
|
|
1047
|
+
*
|
|
1048
|
+
* **Kill Mode Enhancement (결정타)**:
|
|
1049
|
+
* When kill mode is active, AI prioritizes finishing techniques with boosted priority.
|
|
1050
|
+
*
|
|
1051
|
+
* @param context - Combat context
|
|
1052
|
+
* @param personality - AI personality
|
|
1053
|
+
* @param killModeActive - Whether kill mode is active (opponent <30% health or vulnerable)
|
|
1054
|
+
*/
|
|
1055
|
+
evaluateCloseRange(context, personality, killModeActive = false) {
|
|
1056
|
+
const hasResources = context.playerKi > 10 && context.playerStamina > 15;
|
|
1057
|
+
const aggression = personality.aggressionLevel;
|
|
1058
|
+
const targetVitalPoint = this.selectVitalPointTarget(context, personality);
|
|
1059
|
+
const vitalPointName = targetVitalPoint ? getVitalPointById(targetVitalPoint)?.names.korean ?? targetVitalPoint : void 0;
|
|
1060
|
+
if (killModeActive) {
|
|
1061
|
+
const killModeSuffix = personality.archetype === PlayerArchetype.MUSA ? " (결정타 - 압도적 공격)" : " (결정타 - 즉사 기술)";
|
|
1062
|
+
if (hasResources) return {
|
|
1063
|
+
action: AIActionType.TECHNIQUE,
|
|
1064
|
+
targetVitalPoint,
|
|
1065
|
+
priority: targetVitalPoint ? 10 : 9,
|
|
1066
|
+
reason: targetVitalPoint ? `Kill mode - finishing technique on vital point (급소 결정타: ${vitalPointName})${killModeSuffix}` : `Kill mode - finishing technique${killModeSuffix}`
|
|
1067
|
+
};
|
|
1068
|
+
else return {
|
|
1069
|
+
action: AIActionType.ATTACK,
|
|
1070
|
+
targetVitalPoint,
|
|
1071
|
+
priority: targetVitalPoint ? 9 : 8,
|
|
1072
|
+
reason: targetVitalPoint ? `Kill mode - finishing attack (결정타 급소: ${vitalPointName})${killModeSuffix}` : `Kill mode - finishing attack${killModeSuffix}`
|
|
1073
|
+
};
|
|
1074
|
+
}
|
|
1075
|
+
const actionRoll = Math.random();
|
|
1076
|
+
const attackThreshold = aggression * .95;
|
|
1077
|
+
const techniqueThreshold = hasResources ? aggression * .5 : 0;
|
|
1078
|
+
if (actionRoll < attackThreshold) return {
|
|
1079
|
+
action: AIActionType.ATTACK,
|
|
1080
|
+
targetVitalPoint,
|
|
1081
|
+
priority: targetVitalPoint ? 8 : 7,
|
|
1082
|
+
reason: targetVitalPoint ? `Close range - vital point attack (급소 타격: ${vitalPointName})` : "Close range - aggressive strike"
|
|
1083
|
+
};
|
|
1084
|
+
else if (actionRoll < attackThreshold + techniqueThreshold && hasResources) return {
|
|
1085
|
+
action: AIActionType.TECHNIQUE,
|
|
1086
|
+
targetVitalPoint,
|
|
1087
|
+
priority: targetVitalPoint ? 8 : 7,
|
|
1088
|
+
reason: targetVitalPoint ? `Close range - technique on vital point (급소 기술: ${vitalPointName})` : "Close range - technique execution"
|
|
1089
|
+
};
|
|
1090
|
+
else return {
|
|
1091
|
+
action: AIActionType.DEFEND,
|
|
1092
|
+
priority: 4,
|
|
1093
|
+
reason: "Close range - defensive posture (방어 자세)"
|
|
1094
|
+
};
|
|
1095
|
+
}
|
|
1096
|
+
/**
|
|
1097
|
+
* Select vital point to target based on difficulty and stance
|
|
1098
|
+
*
|
|
1099
|
+
* **Korean Philosophy (급소 선택)**:
|
|
1100
|
+
* - Beginner AI: Random targeting or no specific target
|
|
1101
|
+
* - Intermediate AI: Favors easier vital points
|
|
1102
|
+
* - Advanced AI: Targets appropriate points for current stance
|
|
1103
|
+
* - Master AI: Targets critical points with high precision
|
|
1104
|
+
*/
|
|
1105
|
+
selectVitalPointTarget(context, personality) {
|
|
1106
|
+
if (KOREAN_VITAL_POINTS.length === 0) return;
|
|
1107
|
+
const targetChance = this.difficultyLevel * personality.aggressionLevel;
|
|
1108
|
+
if (Math.random() > targetChance) return;
|
|
1109
|
+
const effectivePoints = KOREAN_VITAL_POINTS.filter((point) => point.effectiveStances?.includes(context.playerStance));
|
|
1110
|
+
if (effectivePoints.length === 0) return KOREAN_VITAL_POINTS[Math.floor(Math.random() * KOREAN_VITAL_POINTS.length)].id;
|
|
1111
|
+
if (this.difficultyLevel < .3) return effectivePoints[Math.floor(Math.random() * effectivePoints.length)].id;
|
|
1112
|
+
else if (this.difficultyLevel < .6) {
|
|
1113
|
+
const easierPoints = effectivePoints.filter((p) => p.targetingDifficulty < .7);
|
|
1114
|
+
if (easierPoints.length > 0) return [...easierPoints].sort((a, b) => a.targetingDifficulty - b.targetingDifficulty)[0].id;
|
|
1115
|
+
return effectivePoints[0].id;
|
|
1116
|
+
} else {
|
|
1117
|
+
const criticalPoints = effectivePoints.filter((p) => p.severity === "critical" || p.severity === "major");
|
|
1118
|
+
if (criticalPoints.length > 0) return [...criticalPoints].sort((a, b) => (b.baseDamage ?? 0) - (a.baseDamage ?? 0))[0].id;
|
|
1119
|
+
return [...effectivePoints].sort((a, b) => (b.baseDamage ?? 0) - (a.baseDamage ?? 0))[0]?.id ?? effectivePoints[0].id;
|
|
1120
|
+
}
|
|
1121
|
+
}
|
|
1122
|
+
/**
|
|
1123
|
+
* Calculate stance fatigue modifier for increased switching probability
|
|
1124
|
+
*
|
|
1125
|
+
* Applies time-based modifiers to encourage dynamic stance rotation:
|
|
1126
|
+
* - 0-10 seconds: No modifier (1.0x)
|
|
1127
|
+
* - 10-20 seconds: +20% increase (1.2x multiplier)
|
|
1128
|
+
* - 20+ seconds: +50% increase (1.5x multiplier)
|
|
1129
|
+
*
|
|
1130
|
+
* This ensures AI doesn't stay locked in one stance for extended periods,
|
|
1131
|
+
* promoting the use of all 8 trigram stances throughout combat.
|
|
1132
|
+
*
|
|
1133
|
+
* **Korean Philosophy (자세 피로도)**:
|
|
1134
|
+
* Remaining in one stance too long reduces tactical flexibility and
|
|
1135
|
+
* makes the fighter predictable. The Eight Trigram system requires
|
|
1136
|
+
* constant adaptation and flow between stances.
|
|
1137
|
+
*
|
|
1138
|
+
* @korean 자세 피로도 배율 계산
|
|
1139
|
+
*
|
|
1140
|
+
* @param timeInStance - Time in current stance in milliseconds
|
|
1141
|
+
* @returns Stance switch frequency multiplier (1.0 = no change, >1.0 = increased probability)
|
|
1142
|
+
*/
|
|
1143
|
+
getStanceFatigueModifier(timeInStance) {
|
|
1144
|
+
if (timeInStance > 2e4) return 1.5;
|
|
1145
|
+
if (timeInStance > 1e4) return 1.2;
|
|
1146
|
+
return 1;
|
|
1147
|
+
}
|
|
1148
|
+
/**
|
|
1149
|
+
* Get optimal combat range based on AI personality archetype
|
|
1150
|
+
*
|
|
1151
|
+
* Uses archetype behavior profiles to determine preferred combat distance.
|
|
1152
|
+
* **Physics-First**: Returns distance in METERS directly.
|
|
1153
|
+
*
|
|
1154
|
+
* @param personality - AI personality with archetype behavior
|
|
1155
|
+
* @param _context - Combat context (unused, kept for API compatibility)
|
|
1156
|
+
* @returns Optimal range in meters
|
|
1157
|
+
* @korean 최적 전투 거리 - 원형별 선호 거리 (미터)
|
|
1158
|
+
*/
|
|
1159
|
+
getOptimalRange(personality, _context) {
|
|
1160
|
+
return getArchetypeBehavior(personality.archetype).optimalRange * .4;
|
|
1161
|
+
}
|
|
1162
|
+
/**
|
|
1163
|
+
* Evaluate approach tactics with archetype-specific behavior
|
|
1164
|
+
*
|
|
1165
|
+
* **Korean Philosophy (접근 전략)**:
|
|
1166
|
+
* - Musa charges directly (70% direct path)
|
|
1167
|
+
* - Amsalja uses flanking movements (40% diagonal approach)
|
|
1168
|
+
* - Hacker maintains optimal distance (prefers not to close too much)
|
|
1169
|
+
*
|
|
1170
|
+
* **Kill Mode Enhancement (결정타 접근)**:
|
|
1171
|
+
* All archetypes enhance movement speed in kill mode based on combat philosophy:
|
|
1172
|
+
* - **Musa**: Direct charging with leg shifts for maximum speed (40% faster)
|
|
1173
|
+
* - **Amsalja**: Swift stepping patterns for rapid positioning (30% faster)
|
|
1174
|
+
* - **Hacker**: Calculated approach for optimal strike position (20% faster)
|
|
1175
|
+
* - **Jeongbo Yowon**: Strategic positioning for control (25% faster)
|
|
1176
|
+
* - **Jojik Pokryeokbae**: Unpredictable rush for brutal finish (35% faster)
|
|
1177
|
+
*
|
|
1178
|
+
* @param context - Combat context
|
|
1179
|
+
* @param personality - AI personality
|
|
1180
|
+
* @param killModeActive - Whether kill mode is active
|
|
1181
|
+
*/
|
|
1182
|
+
evaluateApproach(context, personality, killModeActive = false) {
|
|
1183
|
+
const optimalRange = this.getOptimalRange(personality, context);
|
|
1184
|
+
const distance = context.distanceToOpponent;
|
|
1185
|
+
if (distance <= optimalRange * 1.2) return {
|
|
1186
|
+
action: AIActionType.WAIT,
|
|
1187
|
+
priority: 0,
|
|
1188
|
+
reason: "Already at optimal range"
|
|
1189
|
+
};
|
|
1190
|
+
let movementBias = this.getArchetypeMovementBias(personality.archetype);
|
|
1191
|
+
if (killModeActive) switch (personality.archetype) {
|
|
1192
|
+
case PlayerArchetype.MUSA:
|
|
1193
|
+
movementBias *= 1.4;
|
|
1194
|
+
break;
|
|
1195
|
+
case PlayerArchetype.AMSALJA:
|
|
1196
|
+
movementBias *= 1.3;
|
|
1197
|
+
break;
|
|
1198
|
+
case PlayerArchetype.HACKER:
|
|
1199
|
+
movementBias *= 1.2;
|
|
1200
|
+
break;
|
|
1201
|
+
case PlayerArchetype.JEONGBO_YOWON:
|
|
1202
|
+
movementBias *= 1.25;
|
|
1203
|
+
break;
|
|
1204
|
+
case PlayerArchetype.JOJIK_POKRYEOKBAE:
|
|
1205
|
+
movementBias *= 1.35;
|
|
1206
|
+
break;
|
|
1207
|
+
}
|
|
1208
|
+
let approachPos;
|
|
1209
|
+
if (personality.archetype === PlayerArchetype.MUSA && Math.random() < .7) approachPos = this.calculateDirectApproach(context, killModeActive);
|
|
1210
|
+
else if (personality.archetype === PlayerArchetype.AMSALJA && Math.random() < .4) approachPos = this.calculateFlankingApproach(context, killModeActive);
|
|
1211
|
+
else approachPos = this.calculateApproachPosition(context);
|
|
1212
|
+
let basePriority = 4;
|
|
1213
|
+
if (killModeActive && distance > optimalRange * 1.5) switch (personality.archetype) {
|
|
1214
|
+
case PlayerArchetype.MUSA:
|
|
1215
|
+
case PlayerArchetype.JOJIK_POKRYEOKBAE:
|
|
1216
|
+
basePriority = 6;
|
|
1217
|
+
break;
|
|
1218
|
+
case PlayerArchetype.AMSALJA:
|
|
1219
|
+
basePriority = 6;
|
|
1220
|
+
break;
|
|
1221
|
+
case PlayerArchetype.HACKER:
|
|
1222
|
+
case PlayerArchetype.JEONGBO_YOWON:
|
|
1223
|
+
basePriority = 5;
|
|
1224
|
+
break;
|
|
1225
|
+
}
|
|
1226
|
+
const priorityBoost = Math.min(2, (distance - optimalRange) / optimalRange) * movementBias * .8;
|
|
1227
|
+
const finalPriority = basePriority + priorityBoost;
|
|
1228
|
+
let killModeReason = "";
|
|
1229
|
+
if (killModeActive) switch (personality.archetype) {
|
|
1230
|
+
case PlayerArchetype.MUSA:
|
|
1231
|
+
killModeReason = " - 돌격 (charging)";
|
|
1232
|
+
break;
|
|
1233
|
+
case PlayerArchetype.AMSALJA:
|
|
1234
|
+
killModeReason = " - 신속 접근 (swift approach)";
|
|
1235
|
+
break;
|
|
1236
|
+
case PlayerArchetype.HACKER:
|
|
1237
|
+
killModeReason = " - 분석 접근 (calculated approach)";
|
|
1238
|
+
break;
|
|
1239
|
+
case PlayerArchetype.JEONGBO_YOWON:
|
|
1240
|
+
killModeReason = " - 전략 접근 (strategic approach)";
|
|
1241
|
+
break;
|
|
1242
|
+
case PlayerArchetype.JOJIK_POKRYEOKBAE:
|
|
1243
|
+
killModeReason = " - 돌진 (rush)";
|
|
1244
|
+
break;
|
|
1245
|
+
}
|
|
1246
|
+
return {
|
|
1247
|
+
action: AIActionType.APPROACH,
|
|
1248
|
+
targetPosition: approachPos,
|
|
1249
|
+
priority: Math.min(9, finalPriority),
|
|
1250
|
+
reason: `Moving closer (distance: ${Math.round(distance)}, optimal: ${optimalRange})${killModeReason}`
|
|
1251
|
+
};
|
|
1252
|
+
}
|
|
1253
|
+
/**
|
|
1254
|
+
* Get archetype-specific movement bias multipliers
|
|
1255
|
+
*
|
|
1256
|
+
* Applies movement pattern modifiers based on archetype behavior profiles:
|
|
1257
|
+
* - Aggressive: High forward pressure (2.0x)
|
|
1258
|
+
* - Evasive: Moderate mobility (1.5x)
|
|
1259
|
+
* - Analytical: Conservative approach (0.8x-1.0x)
|
|
1260
|
+
* - Unpredictable: Variable movement (1.3x)
|
|
1261
|
+
*
|
|
1262
|
+
* @korean 원형별 이동 성향
|
|
1263
|
+
*/
|
|
1264
|
+
getArchetypeMovementBias(archetype) {
|
|
1265
|
+
switch (getArchetypeBehavior(archetype).movementPattern) {
|
|
1266
|
+
case "aggressive": return 2;
|
|
1267
|
+
case "evasive": return 1.5;
|
|
1268
|
+
case "analytical": return archetype === PlayerArchetype.HACKER ? .8 : 1;
|
|
1269
|
+
case "unpredictable": return 1.3;
|
|
1270
|
+
default: return 1;
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
/**
|
|
1274
|
+
* Calculate direct approach position (straight line to opponent)
|
|
1275
|
+
* Used primarily by Musa archetype for charging attacks
|
|
1276
|
+
*
|
|
1277
|
+
* **Kill Mode Enhancement (결정타 돌격)**:
|
|
1278
|
+
* - Larger step size for faster closing with leg shifts
|
|
1279
|
+
* - Aggressive stride pattern for maximum forward momentum
|
|
1280
|
+
*
|
|
1281
|
+
* **Physics-First**: All calculations in METERS.
|
|
1282
|
+
*
|
|
1283
|
+
* @param context - Combat context
|
|
1284
|
+
* @param killModeActive - Whether kill mode is active
|
|
1285
|
+
*/
|
|
1286
|
+
calculateDirectApproach(context, killModeActive = false) {
|
|
1287
|
+
const dx = context.opponentPosition.x - context.playerPosition.x;
|
|
1288
|
+
const dy = context.opponentPosition.y - context.playerPosition.y;
|
|
1289
|
+
const distance = Math.sqrt(dx * dx + dy * dy);
|
|
1290
|
+
if (distance < AI_MOVEMENT_METERS.MIN_DISTANCE_THRESHOLD) return this.clampToArenaBoundsMeters(context.playerPosition, context);
|
|
1291
|
+
const baseStepSize = AI_MOVEMENT_METERS.STEP_SIZE;
|
|
1292
|
+
const stepSize = killModeActive ? Math.min(baseStepSize * 1.5, distance) : Math.min(baseStepSize, distance);
|
|
1293
|
+
return this.clampToArenaBoundsMeters({
|
|
1294
|
+
x: context.playerPosition.x + dx / distance * stepSize,
|
|
1295
|
+
y: context.playerPosition.y + dy / distance * stepSize
|
|
1296
|
+
}, context);
|
|
1297
|
+
}
|
|
1298
|
+
/**
|
|
1299
|
+
* Calculate flanking approach position (diagonal/side approach)
|
|
1300
|
+
* Used primarily by Amsalja archetype for stealth positioning
|
|
1301
|
+
*
|
|
1302
|
+
* **Kill Mode Enhancement (결정타 측면 공격)**:
|
|
1303
|
+
* - Tighter flanking angle for more aggressive positioning
|
|
1304
|
+
* - Swift stepping pattern for rapid side movement
|
|
1305
|
+
*
|
|
1306
|
+
* **Physics-First**: All calculations in METERS.
|
|
1307
|
+
*
|
|
1308
|
+
* @param context - Combat context
|
|
1309
|
+
* @param killModeActive - Whether kill mode is active
|
|
1310
|
+
*/
|
|
1311
|
+
calculateFlankingApproach(context, killModeActive = false) {
|
|
1312
|
+
const dx = context.opponentPosition.x - context.playerPosition.x;
|
|
1313
|
+
const dy = context.opponentPosition.y - context.playerPosition.y;
|
|
1314
|
+
const distance = Math.sqrt(dx * dx + dy * dy);
|
|
1315
|
+
if (distance < AI_MOVEMENT_METERS.MIN_DISTANCE_THRESHOLD) return this.clampToArenaBoundsMeters(context.playerPosition, context);
|
|
1316
|
+
const baseFlankOffset = AI_MOVEMENT_METERS.FLANK_OFFSET_BASE + Math.random() * AI_MOVEMENT_METERS.FLANK_OFFSET_RANDOM;
|
|
1317
|
+
const flankOffset = killModeActive ? baseFlankOffset * .7 : baseFlankOffset;
|
|
1318
|
+
const perpX = -dy / distance;
|
|
1319
|
+
const perpY = dx / distance;
|
|
1320
|
+
const flankSide = Math.random() < .5 ? 1 : -1;
|
|
1321
|
+
return this.clampToArenaBoundsMeters({
|
|
1322
|
+
x: context.opponentPosition.x + perpX * flankOffset * flankSide,
|
|
1323
|
+
y: context.opponentPosition.y + perpY * flankOffset * flankSide
|
|
1324
|
+
}, context);
|
|
1325
|
+
}
|
|
1326
|
+
/**
|
|
1327
|
+
* Clamp position to arena boundaries with proper margins
|
|
1328
|
+
* Centralizes boundary validation logic for all movement calculations
|
|
1329
|
+
*
|
|
1330
|
+
* **Physics-First**: Works entirely in METERS using worldWidthMeters/worldDepthMeters.
|
|
1331
|
+
* Arena is centered at origin (0,0), so bounds are -halfWidth to +halfWidth.
|
|
1332
|
+
*
|
|
1333
|
+
* @param position - Position to clamp (in meters)
|
|
1334
|
+
* @param context - Combat context with arena dimensions in meters
|
|
1335
|
+
*/
|
|
1336
|
+
clampToArenaBoundsMeters(position, context) {
|
|
1337
|
+
const halfWidth = context.arenaBounds.worldWidthMeters / 2;
|
|
1338
|
+
const halfDepth = context.arenaBounds.worldDepthMeters / 2;
|
|
1339
|
+
const marginX = AI_MOVEMENT_METERS.ARENA_MARGIN_X;
|
|
1340
|
+
const marginY = AI_MOVEMENT_METERS.ARENA_MARGIN_Y;
|
|
1341
|
+
return {
|
|
1342
|
+
x: Math.max(-halfWidth + marginX, Math.min(halfWidth - marginX, position.x)),
|
|
1343
|
+
y: Math.max(-halfDepth + marginY, Math.min(halfDepth - marginY, position.y))
|
|
1344
|
+
};
|
|
1345
|
+
}
|
|
1346
|
+
/**
|
|
1347
|
+
* Evaluate mid-range tactics with distance awareness
|
|
1348
|
+
*
|
|
1349
|
+
* **Korean Philosophy (중거리 전술)**:
|
|
1350
|
+
* - Considers optimal range for archetype
|
|
1351
|
+
* - Hacker prefers to maintain this range (analytical pattern)
|
|
1352
|
+
* - Jeongbo uses strategic timing and analysis
|
|
1353
|
+
* - Others may close or open distance based on situation
|
|
1354
|
+
*/
|
|
1355
|
+
evaluateMidRange(context, personality) {
|
|
1356
|
+
const hasResources = context.playerKi > context.playerMaxKi * .3;
|
|
1357
|
+
const optimalRange = this.getOptimalRange(personality, context);
|
|
1358
|
+
const distance = context.distanceToOpponent;
|
|
1359
|
+
const tacticRoll = Math.random();
|
|
1360
|
+
const behavior = getArchetypeBehavior(personality.archetype);
|
|
1361
|
+
if (behavior.movementPattern === "analytical" && Math.abs(distance - optimalRange) < .5) {
|
|
1362
|
+
const circlePos = this.calculateCirclePosition(context);
|
|
1363
|
+
const archetypeName = personality.archetype === PlayerArchetype.HACKER ? "사이버" : "정보";
|
|
1364
|
+
return {
|
|
1365
|
+
action: AIActionType.CIRCLE,
|
|
1366
|
+
targetPosition: circlePos,
|
|
1367
|
+
priority: 6,
|
|
1368
|
+
reason: `${archetypeName} maintaining optimal mid-range (${archetypeName} 위치 유지)`
|
|
1369
|
+
};
|
|
1370
|
+
}
|
|
1371
|
+
if (distance > optimalRange * 1.5) {
|
|
1372
|
+
const approachPos = this.calculateApproachPosition(context);
|
|
1373
|
+
return {
|
|
1374
|
+
action: AIActionType.APPROACH,
|
|
1375
|
+
targetPosition: approachPos,
|
|
1376
|
+
priority: 5,
|
|
1377
|
+
reason: "Moving to optimal range (최적 거리로 이동)"
|
|
1378
|
+
};
|
|
1379
|
+
}
|
|
1380
|
+
if (distance < optimalRange * .7 && behavior.movementPattern === "analytical") {
|
|
1381
|
+
const retreatPos = this.calculateRetreatPosition(context);
|
|
1382
|
+
return {
|
|
1383
|
+
action: AIActionType.RETREAT,
|
|
1384
|
+
targetPosition: retreatPos,
|
|
1385
|
+
priority: 5,
|
|
1386
|
+
reason: "Creating tactical space (거리 확보)"
|
|
1387
|
+
};
|
|
1388
|
+
}
|
|
1389
|
+
if (behavior.movementPattern === "unpredictable") {
|
|
1390
|
+
const randomAction = tacticRoll < .33 ? "attack" : tacticRoll < .66 ? "circle" : "approach";
|
|
1391
|
+
if (randomAction === "attack" && hasResources) return {
|
|
1392
|
+
action: AIActionType.TECHNIQUE,
|
|
1393
|
+
priority: 5,
|
|
1394
|
+
reason: "Unpredictable attack (예측불가 공격)"
|
|
1395
|
+
};
|
|
1396
|
+
else if (randomAction === "circle") {
|
|
1397
|
+
const circlePos = this.calculateCirclePosition(context);
|
|
1398
|
+
return {
|
|
1399
|
+
action: AIActionType.CIRCLE,
|
|
1400
|
+
targetPosition: circlePos,
|
|
1401
|
+
priority: 4,
|
|
1402
|
+
reason: "Unpredictable movement (예측불가 이동)"
|
|
1403
|
+
};
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
if (tacticRoll < .3 && hasResources) return {
|
|
1407
|
+
action: AIActionType.TECHNIQUE,
|
|
1408
|
+
priority: 5,
|
|
1409
|
+
reason: "Mid-range technique (중거리 기술)"
|
|
1410
|
+
};
|
|
1411
|
+
else if (tacticRoll < .6) {
|
|
1412
|
+
const circlePos = this.calculateCirclePosition(context);
|
|
1413
|
+
return {
|
|
1414
|
+
action: AIActionType.CIRCLE,
|
|
1415
|
+
targetPosition: circlePos,
|
|
1416
|
+
priority: 4,
|
|
1417
|
+
reason: "Tactical repositioning (전술적 이동)"
|
|
1418
|
+
};
|
|
1419
|
+
} else {
|
|
1420
|
+
const approachPos = this.calculateApproachPosition(context);
|
|
1421
|
+
return {
|
|
1422
|
+
action: AIActionType.APPROACH,
|
|
1423
|
+
targetPosition: approachPos,
|
|
1424
|
+
priority: 4,
|
|
1425
|
+
reason: "Moving to optimal range (최적 거리로 이동)"
|
|
1426
|
+
};
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
/**
|
|
1430
|
+
* Evaluate defensive tactics
|
|
1431
|
+
*/
|
|
1432
|
+
evaluateDefense(context, personality) {
|
|
1433
|
+
if (Math.random() < personality.defensePreference && context.recentDamageTaken > 20) return {
|
|
1434
|
+
action: AIActionType.DEFEND,
|
|
1435
|
+
priority: 6,
|
|
1436
|
+
reason: "Defensive response to damage"
|
|
1437
|
+
};
|
|
1438
|
+
return {
|
|
1439
|
+
action: AIActionType.WAIT,
|
|
1440
|
+
priority: 0,
|
|
1441
|
+
reason: "No defensive need"
|
|
1442
|
+
};
|
|
1443
|
+
}
|
|
1444
|
+
/**
|
|
1445
|
+
* Decide combo action
|
|
1446
|
+
*/
|
|
1447
|
+
decideComboAction(_context, _personality) {
|
|
1448
|
+
return {
|
|
1449
|
+
action: AIActionType.COMBO,
|
|
1450
|
+
priority: 9,
|
|
1451
|
+
reason: "Continuing active combo"
|
|
1452
|
+
};
|
|
1453
|
+
}
|
|
1454
|
+
/**
|
|
1455
|
+
* Calculate retreat position
|
|
1456
|
+
*
|
|
1457
|
+
* **Physics-First**: All calculations in METERS.
|
|
1458
|
+
*/
|
|
1459
|
+
calculateRetreatPosition(context) {
|
|
1460
|
+
const dx = context.playerPosition.x - context.opponentPosition.x;
|
|
1461
|
+
const dy = context.playerPosition.y - context.opponentPosition.y;
|
|
1462
|
+
const distance = Math.sqrt(dx * dx + dy * dy);
|
|
1463
|
+
const minDistance = AI_MOVEMENT_METERS.MIN_DISTANCE_THRESHOLD;
|
|
1464
|
+
const retreatDistance = 1.5;
|
|
1465
|
+
if (distance < minDistance) return this.clampToArenaBoundsMeters({
|
|
1466
|
+
x: context.playerPosition.x + retreatDistance,
|
|
1467
|
+
y: context.playerPosition.y
|
|
1468
|
+
}, context);
|
|
1469
|
+
const nx = dx / distance;
|
|
1470
|
+
const ny = dy / distance;
|
|
1471
|
+
return this.clampToArenaBoundsMeters({
|
|
1472
|
+
x: context.playerPosition.x + nx * retreatDistance,
|
|
1473
|
+
y: context.playerPosition.y + ny * retreatDistance
|
|
1474
|
+
}, context);
|
|
1475
|
+
}
|
|
1476
|
+
/**
|
|
1477
|
+
* Calculate approach position
|
|
1478
|
+
*
|
|
1479
|
+
* **Physics-First**: All calculations in METERS.
|
|
1480
|
+
*/
|
|
1481
|
+
calculateApproachPosition(context) {
|
|
1482
|
+
const offsetX = (Math.random() - .5) * .8;
|
|
1483
|
+
const offsetY = (Math.random() - .5) * .6;
|
|
1484
|
+
return this.clampToArenaBoundsMeters({
|
|
1485
|
+
x: context.opponentPosition.x + offsetX,
|
|
1486
|
+
y: context.opponentPosition.y + offsetY
|
|
1487
|
+
}, context);
|
|
1488
|
+
}
|
|
1489
|
+
/**
|
|
1490
|
+
* Calculate circle position
|
|
1491
|
+
*
|
|
1492
|
+
* **Physics-First**: All calculations in METERS.
|
|
1493
|
+
*/
|
|
1494
|
+
calculateCirclePosition(context) {
|
|
1495
|
+
const angle = Math.atan2(context.opponentPosition.y - context.playerPosition.y, context.opponentPosition.x - context.playerPosition.x);
|
|
1496
|
+
const circleRadius = 1.5 + Math.random() * .5;
|
|
1497
|
+
return this.clampToArenaBoundsMeters({
|
|
1498
|
+
x: context.opponentPosition.x + Math.cos(angle + Math.PI / 2) * circleRadius,
|
|
1499
|
+
y: context.opponentPosition.y + Math.sin(angle + Math.PI / 2) * circleRadius
|
|
1500
|
+
}, context);
|
|
1501
|
+
}
|
|
1502
|
+
/**
|
|
1503
|
+
* Reset decision state
|
|
1504
|
+
*/
|
|
1505
|
+
reset() {
|
|
1506
|
+
this.lastDecisionTime = 0;
|
|
1507
|
+
this.consecutiveAttacks = 0;
|
|
1508
|
+
this.lastStanceChange = 0;
|
|
1509
|
+
this.psychologicalPressure = 0;
|
|
1510
|
+
this.lastPressureActionTime = 0;
|
|
1511
|
+
}
|
|
1512
|
+
};
|
|
1513
|
+
//#endregion
|
|
1514
|
+
export { AIDecisionTree };
|
|
1515
|
+
|
|
1516
|
+
//# sourceMappingURL=DecisionTree.js.map
|