blacktrigram 0.7.74 → 0.7.75
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/lib/App2.js +6 -6
- package/lib/audio/AudioAssetRegistry.js +1 -1
- package/lib/audio/AudioManager.js +1 -1
- package/lib/audio/AudioPool.js +1 -1
- package/lib/audio/AudioProvider.js +1 -1
- package/lib/audio/BoneImpactAudioMap.js +1 -1
- package/lib/audio/VariantSelector.js +1 -1
- package/lib/audio/index.js +3 -3
- package/lib/components/index.js +19 -19
- package/lib/components/screens/combat/CombatScreen3D.js +27 -27
- package/lib/components/screens/combat/components/controls/CombatButtons.js +1 -1
- package/lib/components/screens/combat/components/controls/CombatControlsPanel.js +1 -1
- package/lib/components/screens/combat/components/controls/ControlsGuide.js +1 -1
- package/lib/components/screens/combat/components/controls/PauseMenu.js +5 -5
- package/lib/components/screens/combat/components/controls/PauseMenuButton.js +1 -1
- package/lib/components/screens/combat/components/controls/QuickSettings.js +1 -1
- package/lib/components/screens/combat/components/effects/BloodDecals3D.js +1 -1
- package/lib/components/screens/combat/components/effects/BloodParticles3D.js +1 -1
- package/lib/components/screens/combat/components/effects/TraumaOverlay3D.js +1 -1
- package/lib/components/screens/combat/components/feedback/MatchCountdown.js +1 -1
- package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.js +1 -1
- package/lib/components/screens/combat/components/feedback/RoundDisplayStatus.js +1 -1
- package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.js +1 -1
- package/lib/components/screens/combat/components/hud/CombatBottomHUD.js +2 -2
- package/lib/components/screens/combat/components/hud/CombatLeftHUD.js +4 -4
- package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.js +1 -1
- package/lib/components/screens/combat/components/hud/CombatRightHUD.js +4 -4
- package/lib/components/screens/combat/components/hud/CombatTopHUD.js +3 -3
- package/lib/components/screens/combat/components/hud/FPSMonitor.js +1 -1
- package/lib/components/screens/combat/components/hud/MobileControlsWrapper.js +1 -1
- package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js +1 -1
- package/lib/components/screens/combat/helpers/AnimationUpdater.js +1 -1
- package/lib/components/screens/combat/hooks/useAICombat.js +1 -1
- package/lib/components/screens/combat/hooks/useCombatActions.js +1 -1
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.js +1 -1
- package/lib/components/screens/combat/hooks/useCombatAudio.js +1 -1
- package/lib/components/screens/controls/ControlsScreen3D.js +6 -6
- package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.js +1 -1
- package/lib/components/screens/controls/components/GamepadVisualization3D.js +1 -1
- package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.js +1 -1
- package/lib/components/screens/controls/components/Key3D.js +1 -1
- package/lib/components/screens/controls/components/VisualKeyboard3D.js +2 -2
- package/lib/components/screens/intro/IntroScreen3D.js +6 -6
- package/lib/components/screens/intro/components/AbilityListOverlayHtml.js +1 -1
- package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.js +2 -2
- package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.js +3 -3
- package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.js +2 -2
- package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.js +3 -3
- package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.js +1 -1
- package/lib/components/screens/intro/components/MenuSectionOverlayHtml.js +2 -2
- package/lib/components/screens/intro/components/StatBarOverlayHtml.js +1 -1
- package/lib/components/screens/philosophy/PhilosophyScreen3D.js +2 -2
- package/lib/components/screens/training/TrainingScreen3D.js +15 -15
- package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.js +1 -1
- package/lib/components/screens/training/components/AnatomyOverlay3D.js +1 -1
- package/lib/components/screens/training/components/FootPlacementMarkers3D.js +1 -1
- package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.js +1 -1
- package/lib/components/screens/training/components/HitFeedbackEffect3D.js +1 -1
- package/lib/components/screens/training/components/TrainingControlsOverlayHtml.js +1 -1
- package/lib/components/screens/training/components/TrainingDummy3D.js +4 -4
- package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.js +1 -1
- package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.js +1 -1
- package/lib/components/screens/training/components/TrainingStatsOverlayHtml.js +1 -1
- package/lib/components/screens/training/components/VitalPointMarker3D.js +1 -1
- package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.js +2 -2
- package/lib/components/screens/training/components/hud/TrainingBottomHUD.js +3 -3
- package/lib/components/screens/training/components/hud/TrainingLeftHUD.js +3 -3
- package/lib/components/screens/training/components/hud/TrainingRightHUD.js +6 -6
- package/lib/components/screens/training/components/hud/TrainingTopHUD.js +2 -2
- package/lib/components/screens/training/hooks/useAttackMovement.js +2 -2
- package/lib/components/screens/training/hooks/useTrainingActions.js +1 -1
- package/lib/components/screens/training/hooks/useTrainingState.js +1 -1
- package/lib/components/shared/mobile/HapticController.js +1 -1
- package/lib/components/shared/mobile/MobileControlsPure.js +1 -1
- package/lib/components/shared/three/anatomy/BodySurface.js +1 -1
- package/lib/components/shared/three/anatomy/BoneAttachedMuscles.js +1 -1
- package/lib/components/shared/three/anatomy/BoneClothing.js +1 -1
- package/lib/components/shared/three/anatomy/BoneRenderer.js +7 -7
- package/lib/components/shared/three/anatomy/Face3D.js +1 -1
- package/lib/components/shared/three/anatomy/Foot3D.js +1 -1
- package/lib/components/shared/three/anatomy/Hand3D.js +1 -1
- package/lib/components/shared/three/effects/ActionFeedback.js +1 -1
- package/lib/components/shared/three/effects/DamageNumbers.js +1 -1
- package/lib/components/shared/three/effects/HitEffects3D.js +1 -1
- package/lib/components/shared/three/effects/PlayerStateIndicators.js +1 -1
- package/lib/components/shared/three/effects/StanceSymbol3D.js +1 -1
- package/lib/components/shared/three/effects/StanceTransitionEffect.js +1 -1
- package/lib/components/shared/three/effects/VitalPointMarkers3D.js +2 -2
- package/lib/components/shared/three/indicators/ElementalColorSystem.js +1 -1
- package/lib/components/shared/three/indicators/HapticFeedback.js +1 -1
- package/lib/components/shared/three/models/Player3DWithTransitions.js +4 -4
- package/lib/components/shared/three/models/SkeletalPlayer3D.js +3 -3
- package/lib/components/shared/three/optimization/AdaptiveQuality.js +1 -1
- package/lib/components/shared/three/scene/AtmosphericParticles3D.js +1 -1
- package/lib/components/shared/three/scene/BackgroundScene3D.js +1 -1
- package/lib/components/shared/three/scene/CombatArena3D.js +3 -3
- package/lib/components/shared/three/scene/KoreanSignage3D.js +1 -1
- package/lib/components/shared/three/ui/BodyPartHealthDisplay.js +1 -1
- package/lib/components/shared/three/ui/CombatReadinessBar.js +1 -1
- package/lib/components/shared/three/ui/ComboCounter.js +1 -1
- package/lib/components/shared/three/ui/HealthBar.js +1 -1
- package/lib/components/shared/three/ui/PlayerHUD.js +4 -4
- package/lib/components/shared/three/ui/StaminaBar.js +1 -1
- package/lib/components/shared/three/ui/TechniqueBar.js +2 -2
- package/lib/components/shared/three/ui/TechniqueCard.js +1 -1
- package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.js +2 -2
- package/lib/components/shared/ui/BaseHUDContainer.js +1 -1
- package/lib/components/shared/ui/CombatTimer.js +1 -1
- package/lib/components/shared/ui/ErrorModal.js +1 -1
- package/lib/components/shared/ui/SplashScreen.js +3 -3
- package/lib/components/shared/ui/VitalPointOverlayControlsPure.js +2 -2
- package/lib/components/shared/ui/shared/ConfirmDialog.js +1 -1
- package/lib/constants/bodyRenderingConstants.js +1 -1
- package/lib/data/index.js +1 -1
- package/lib/data/techniqueMappings.js +1 -1
- package/lib/hooks/index.js +1 -1
- package/lib/hooks/useActionFeedback.js +1 -1
- package/lib/hooks/useDebounce.js +1 -1
- package/lib/hooks/useMatchCountdown.js +1 -1
- package/lib/hooks/useRoundTransition.js +1 -1
- package/lib/hooks/useTechniqueSelection.js +1 -1
- package/lib/hooks/useThrottle.js +1 -1
- package/lib/hooks/useWindowSize.js +1 -1
- package/lib/index.js +39 -39
- package/lib/systems/CombatSystem.js +9 -9
- package/lib/systems/EffectCalculator.js +1 -1
- package/lib/systems/TrigramSystem.js +1 -1
- package/lib/systems/VitalPointSystem.js +2 -2
- package/lib/systems/ai/DecisionTree.js +3 -3
- package/lib/systems/ai/TrainingAI.js +1 -1
- package/lib/systems/animation/builders/HandPoses.js +1 -1
- package/lib/systems/animation/builders/KeyframeInterpolation.js +88 -1
- package/lib/systems/animation/builders/KeyframeInterpolation.js.map +1 -1
- package/lib/systems/animation/builders/KoreanGuardPositions.js +237 -157
- package/lib/systems/animation/builders/KoreanGuardPositions.js.map +1 -1
- package/lib/systems/animation/builders/MartialArtsAnimationBuilder.js +2 -2
- package/lib/systems/animation/builders/SkeletonRig.js +1 -1
- package/lib/systems/animation/catalogs/AttackAnimations.js +1 -1
- package/lib/systems/animation/catalogs/BasicAnimations.js +1 -1
- package/lib/systems/animation/catalogs/ComboAnimations.js +1 -1
- package/lib/systems/animation/catalogs/DarkOpsAnimations.js +1 -1
- package/lib/systems/animation/catalogs/DefensiveAnimations.js +1 -1
- package/lib/systems/animation/catalogs/ElbowKneeAnimations.js +1 -1
- package/lib/systems/animation/catalogs/FootworkSkeletalAnimations.js +1 -1
- package/lib/systems/animation/catalogs/GamStanceAnimations.js +100 -4
- package/lib/systems/animation/catalogs/GamStanceAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/GanStanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/GeonStanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/GonTechniqueAnimations.js +1 -1
- package/lib/systems/animation/catalogs/GrapplingAnimations.js +1 -1
- package/lib/systems/animation/catalogs/KickAnimations.js +1 -1
- package/lib/systems/animation/catalogs/MovementAnimations.js +1 -1
- package/lib/systems/animation/catalogs/PunchAnimations.js +1 -1
- package/lib/systems/animation/catalogs/RecoveryAnimations.js +1 -1
- package/lib/systems/animation/catalogs/SonStanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/StanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/StanceAttackAnimations.js +1 -1
- package/lib/systems/animation/catalogs/StanceIdleAnimations.js +1 -1
- package/lib/systems/animation/catalogs/StanceLocomotionAnimations.js +1 -1
- package/lib/systems/animation/catalogs/StepSkeletalAnimations.js +1 -1
- package/lib/systems/animation/catalogs/TaeStanceAnimations.js +1 -1
- package/lib/systems/animation/core/AnimationHitTiming.js +1 -1
- package/lib/systems/animation/core/AnimationOptimizations.js +1 -1
- package/lib/systems/animation/core/AnimationPriority.js +1 -1
- package/lib/systems/animation/core/AnimationRegistry.js +4 -4
- package/lib/systems/animation/core/AnimationTransitions.js +1 -1
- package/lib/systems/animation/core/TechniqueAnimationMapper.js +1 -1
- package/lib/systems/animation/core/TechniqueAnimationMapping.js +1 -1
- package/lib/systems/animation/systems/AdvancedJointMovements.js +1 -1
- package/lib/systems/animation/systems/BodyFacingSystem.js +1 -1
- package/lib/systems/animation/systems/MuscleActivation.js +1 -1
- package/lib/systems/combat/BalanceSystem.js +1 -1
- package/lib/systems/combat/BreakingStatusEffects.js +1 -1
- package/lib/systems/combat/CombatStateSystem.js +1 -1
- package/lib/systems/combat/ConsciousnessSystem.js +1 -1
- package/lib/systems/combat/GrappleSystem.js +1 -1
- package/lib/systems/combat/LimbExposureSystem.js +1 -1
- package/lib/systems/combat/PainResponseSystem.js +1 -1
- package/lib/systems/combat/TrainingCombatSystem.js +2 -2
- package/lib/systems/index.js +18 -18
- package/lib/systems/movement/helpers/AccelerationUpdater.js +1 -1
- package/lib/systems/movement/helpers/accelerationUtils.js +1 -1
- package/lib/systems/physics/AttackMovementPhysics.js +1 -1
- package/lib/systems/physics/CollisionDetection.js +2 -2
- package/lib/systems/physics/KnockbackPhysics.js +1 -1
- package/lib/systems/physics/PhysicalReachCalculator.js +1 -1
- package/lib/systems/trigram/KoreanTechniques.js +2 -2
- package/lib/systems/trigram/techniques/index.js +7 -7
- package/lib/systems/trigram/types/GonTechniqueExtensions.js +1 -1
- package/lib/systems/types.js +1 -1
- package/lib/systems/vitalpoint/DamageCalculator.js +1 -1
- package/lib/systems/vitalpoint/HitDetection.js +1 -1
- package/lib/systems/vitalpoint/KoreanAnatomy.js +1 -1
- package/lib/systems/vitalpoint/KoreanVitalPoints.js +2 -2
- package/lib/systems/vitalpoint/VitalPointsData.js +1 -1
- package/lib/types/constants/animations.js +1 -1
- package/lib/types/constants/index.js +8 -8
- package/lib/types/constants/layout.js +1 -1
- package/lib/types/constants/ui.js +1 -1
- package/lib/types/index.js +6 -6
- package/lib/types/techniqueId.js +1 -1
- package/lib/utils/accessibility.js +1 -1
- package/lib/utils/arenaWorldDimensions.js +1 -1
- package/lib/utils/characterScaling.js +1 -1
- package/lib/utils/combatReadiness.js +1 -1
- package/lib/utils/fabricTextures.js +1 -1
- package/lib/utils/hapticFeedback.js +1 -1
- package/lib/utils/haptics.js +1 -1
- package/lib/utils/index.js +2 -2
- package/lib/utils/koreanThemeHelpers.js +1 -1
- package/lib/utils/performance/PerformanceMonitor.js +1 -1
- package/lib/utils/performance/PerformanceOverlay3D.js +1 -1
- package/lib/utils/performance/usePerformanceMonitor.js +2 -2
- package/lib/utils/performanceOptimization.js +1 -1
- package/lib/utils/responsiveLayoutHelpers.js +1 -1
- package/lib/utils/responsiveOrientationConstants.js +1 -1
- package/lib/utils/safeAreaUtils.js +1 -1
- package/package.json +9 -3
|
@@ -1,14 +1,110 @@
|
|
|
1
1
|
import { BoneName } from "../../../types/skeletal.js";
|
|
2
2
|
import { MartialArtsAnimationBuilder } from "../builders/MartialArtsAnimationBuilder.js";
|
|
3
3
|
import { GAM_FLOWING_TAKEDOWN, GAM_WATER_FLOW_COUNTER_ANIMATION } from "./GamTechniqueAnimations.js";
|
|
4
|
+
//#region src/systems/animation/catalogs/GamStanceAnimations.ts
|
|
5
|
+
/**
|
|
6
|
+
* ☵ Gam (Water) Stance-Specific Animations
|
|
7
|
+
*
|
|
8
|
+
* Specialized idle, movement, guard, and adaptive counter animations for the Gam (감/Water) trigram.
|
|
9
|
+
* Embodies adaptive flow and redirection from Hapkido techniques with water-like yielding principles.
|
|
10
|
+
*
|
|
11
|
+
* **Korean Martial Arts Context:**
|
|
12
|
+
* - **무술**: 합기도 적응 기술 (Hapkido Adaptive Techniques)
|
|
13
|
+
* - **특성**: 혈류 차단 (Blood Flow Disruption), 양보와 방향 전환 (Yielding and Redirecting)
|
|
14
|
+
* - **철학**: 물의 적응력 (Water's Adaptability), 흐름의 지혜 (Flowing Wisdom)
|
|
15
|
+
* - **대표 기술**: 수류반격 (Water Flow Counter/Adaptive Redirection)
|
|
16
|
+
*
|
|
17
|
+
* Animation Philosophy:
|
|
18
|
+
* - **물처럼 흘러라** (Flow Like Water) - No resistance, only adaptation
|
|
19
|
+
* - **적의 힘을 이용** (Use Enemy's Force) - Redirection over blocking
|
|
20
|
+
* - **완전한 이완** (Complete Relaxation) - No tension in movements
|
|
21
|
+
* - **끊임없는 적응** (Endless Adaptation) - Constant readiness to adjust
|
|
22
|
+
*
|
|
23
|
+
* @module systems/animation/catalogs/GamStanceAnimations
|
|
24
|
+
* @category Animation
|
|
25
|
+
* @korean 감괘자세애니메이션
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Gam Idle Flowing Animation
|
|
29
|
+
*
|
|
30
|
+
* **Korean**: 감괘 흐름 자세 (Gam-gwae Heureum Jase)
|
|
31
|
+
* **Philosophy**: Water's adaptability through relaxed readiness
|
|
32
|
+
*
|
|
33
|
+
* Characteristics:
|
|
34
|
+
* - Complete relaxation with no tension
|
|
35
|
+
* - Subtle weight shifts demonstrating adaptability
|
|
36
|
+
* - Shoulders completely loose and low
|
|
37
|
+
* - Hands open and ready to receive force
|
|
38
|
+
* - Breathing deep and flowing like water
|
|
39
|
+
*
|
|
40
|
+
* Animation Cycle:
|
|
41
|
+
* - 0ms: Neutral relaxed position
|
|
42
|
+
* - 625ms: Subtle weight shift left (물의 호흡)
|
|
43
|
+
* - 1250ms: Return to center
|
|
44
|
+
* - 1875ms: Subtle weight shift right
|
|
45
|
+
* - 2500ms: Complete cycle
|
|
46
|
+
*
|
|
47
|
+
* @korean 감괘흐름자세
|
|
48
|
+
* @duration 2500ms (2.5 second cycle)
|
|
49
|
+
* @category Idle Animation
|
|
50
|
+
*/
|
|
51
|
+
var GAM_IDLE_FLOWING = MartialArtsAnimationBuilder.create("gam_idle_flowing", "감괘 흐름 자세").asIdle(2.5, true).at(0).rotate(BoneName.PELVIS, 0, 0, 0).rotate(BoneName.SPINE_UPPER, 0, 0, 0).rotate(BoneName.SHOULDER_L, .09, .14, -.17).rotate(BoneName.SHOULDER_R, .09, -.14, .17).rotate(BoneName.ELBOW_L, 0, 0, -.52).rotate(BoneName.ELBOW_R, 0, 0, .52).rotate(BoneName.WRIST_L, -.09, 0, -.05).rotate(BoneName.WRIST_R, -.09, 0, .05).rotate(BoneName.HEAD, 0, 0, 0).position(BoneName.PELVIS, 0, 0, 0).done().at(.625).rotate(BoneName.PELVIS, 0, 0, -.0349).rotate(BoneName.SPINE_UPPER, 0, -.0349, 0).rotate(BoneName.SHOULDER_L, .1, .17, -.21).rotate(BoneName.SHOULDER_R, .07, -.1, .14).rotate(BoneName.WRIST_L, -.05, 0, -.09).rotate(BoneName.WRIST_R, -.12, 0, .02).position(BoneName.PELVIS, -.01, 0, 0).done().at(1.25).rotate(BoneName.PELVIS, 0, 0, 0).rotate(BoneName.SPINE_UPPER, 0, 0, 0).rotate(BoneName.SHOULDER_L, .09, .14, -.17).rotate(BoneName.SHOULDER_R, .09, -.14, .17).rotate(BoneName.WRIST_L, -.09, 0, -.05).rotate(BoneName.WRIST_R, -.09, 0, .05).position(BoneName.PELVIS, 0, 0, 0).done().at(1.875).rotate(BoneName.PELVIS, 0, 0, .0349).rotate(BoneName.SPINE_UPPER, 0, .0349, 0).rotate(BoneName.SHOULDER_L, .07, .1, -.14).rotate(BoneName.SHOULDER_R, .1, -.17, .21).rotate(BoneName.WRIST_L, -.12, 0, -.02).rotate(BoneName.WRIST_R, -.05, 0, .09).position(BoneName.PELVIS, .01, 0, 0).done().at(2.5).rotate(BoneName.PELVIS, 0, 0, 0).rotate(BoneName.SPINE_UPPER, 0, 0, 0).rotate(BoneName.SHOULDER_L, .09, .14, -.17).rotate(BoneName.SHOULDER_R, .09, -.14, .17).rotate(BoneName.ELBOW_L, 0, 0, -.52).rotate(BoneName.ELBOW_R, 0, 0, .52).rotate(BoneName.WRIST_L, -.09, 0, -.05).rotate(BoneName.WRIST_R, -.09, 0, .05).position(BoneName.PELVIS, 0, 0, 0).done().build();
|
|
52
|
+
/**
|
|
53
|
+
* Gam Yielding Sidestep Animation
|
|
54
|
+
*
|
|
55
|
+
* **Korean**: 물의 양보 (Mul-ui Yangbo) - Water's Yielding
|
|
56
|
+
* **Technique**: Lateral movement yielding to opponent's force
|
|
57
|
+
*
|
|
58
|
+
* Characteristics:
|
|
59
|
+
* - Weight transfer follows natural flow
|
|
60
|
+
* - Upper body remains centered and relaxed
|
|
61
|
+
* - Feet glide rather than step
|
|
62
|
+
* - No resistance, only adaptation
|
|
63
|
+
* - Seamless transition to counter position
|
|
64
|
+
*
|
|
65
|
+
* Animation Phases:
|
|
66
|
+
* - 0-167ms: Initial weight shift (양보 시작)
|
|
67
|
+
* - 167-400ms: Gliding lateral movement (흐름)
|
|
68
|
+
* - 400-583ms: Landing and settling (정착)
|
|
69
|
+
*
|
|
70
|
+
* @korean 물의양보
|
|
71
|
+
* @frames 10 frames (58.3ms per frame at 60fps, total 583ms)
|
|
72
|
+
* @duration 583ms
|
|
73
|
+
* @category Movement Animation
|
|
74
|
+
*/
|
|
75
|
+
var GAM_YIELDING_SIDESTEP = MartialArtsAnimationBuilder.create("gam_yielding_sidestep", "물의 양보").asMovement(.583, false).at(0).rotate(BoneName.PELVIS, 0, -.09, 0).rotate(BoneName.SPINE_UPPER, 0, -.05, 0).rotate(BoneName.KNEE_L, -.26, 0, 0).rotate(BoneName.KNEE_R, -.35, 0, 0).rotate(BoneName.SHOULDER_L, .09, .14, -.17).rotate(BoneName.SHOULDER_R, .09, -.14, .17).position(BoneName.PELVIS, 0, 0, 0).done().at(.283).rotate(BoneName.PELVIS, 0, -.14, 0).rotate(BoneName.SPINE_UPPER, 0, -.03, 0).rotate(BoneName.KNEE_L, -.17, 0, 0).rotate(BoneName.KNEE_R, -.44, 0, 0).rotate(BoneName.SHOULDER_L, .1, .17, -.14).rotate(BoneName.SHOULDER_R, .08, -.1, .14).position(BoneName.PELVIS, -.12, .01, 0).done().at(.583).rotate(BoneName.PELVIS, 0, -.1, 0).rotate(BoneName.SPINE_UPPER, 0, -.02, 0).rotate(BoneName.KNEE_L, -.26, 0, 0).rotate(BoneName.KNEE_R, -.35, 0, 0).rotate(BoneName.SHOULDER_L, .09, .14, -.17).rotate(BoneName.SHOULDER_R, .09, -.14, .17).position(BoneName.PELVIS, -.2, 0, 0).done().build();
|
|
76
|
+
/**
|
|
77
|
+
* Gam Flowing Retreat Step Animation
|
|
78
|
+
*
|
|
79
|
+
* **Korean**: 수류 후퇴 (Suryu Hutoe) - Water Flow Retreat
|
|
80
|
+
* **Technique**: Backward movement with no resistance
|
|
81
|
+
*
|
|
82
|
+
* Characteristics:
|
|
83
|
+
* - Body flows with opponent's momentum
|
|
84
|
+
* - Hands stay forward to maintain contact
|
|
85
|
+
* - No breaking of flow, continuous movement
|
|
86
|
+
* - Seamless transition to counter position
|
|
87
|
+
* - Weight shifts smoothly backward
|
|
88
|
+
*
|
|
89
|
+
* Animation Phases:
|
|
90
|
+
* - 0-200ms: Initial backward flow (후퇴 시작)
|
|
91
|
+
* - 200-533ms: Continuous backward glide (지속 흐름)
|
|
92
|
+
* - 533-750ms: Settling in counter position (반격 준비)
|
|
93
|
+
*
|
|
94
|
+
* @korean 수류후퇴
|
|
95
|
+
* @frames 13 frames (57.7ms per frame at 60fps, total 750ms)
|
|
96
|
+
* @duration 750ms
|
|
97
|
+
* @category Movement Animation
|
|
98
|
+
*/
|
|
99
|
+
var GAM_FLOWING_RETREAT_STEP = MartialArtsAnimationBuilder.create("gam_flowing_retreat_step", "수류 후퇴").asMovement(.75, false).at(0).rotate(BoneName.PELVIS, -.05, 0, 0).rotate(BoneName.SPINE_UPPER, -.03, 0, 0).rotate(BoneName.KNEE_L, -.35, 0, 0).rotate(BoneName.KNEE_R, -.26, 0, 0).rotate(BoneName.SHOULDER_L, .05, .17, -.14).rotate(BoneName.SHOULDER_R, .05, -.17, .14).rotate(BoneName.ELBOW_L, 0, 0, -.7).rotate(BoneName.ELBOW_R, 0, 0, .7).position(BoneName.PELVIS, 0, 0, 0).done().at(.367).rotate(BoneName.PELVIS, -.09, 0, 0).rotate(BoneName.SPINE_UPPER, -.05, 0, 0).rotate(BoneName.KNEE_L, -.17, 0, 0).rotate(BoneName.KNEE_R, -.44, 0, 0).rotate(BoneName.SHOULDER_L, .07, .21, -.17).rotate(BoneName.SHOULDER_R, .07, -.21, .17).rotate(BoneName.ELBOW_L, 0, 0, -.87).rotate(BoneName.ELBOW_R, 0, 0, .87).position(BoneName.PELVIS, 0, -.02, -.25).done().at(.75).rotate(BoneName.PELVIS, -.07, 0, 0).rotate(BoneName.SPINE_UPPER, -.03, 0, 0).rotate(BoneName.KNEE_L, -.26, 0, 0).rotate(BoneName.KNEE_R, -.35, 0, 0).rotate(BoneName.SHOULDER_L, .09, .17, -.14).rotate(BoneName.SHOULDER_R, .09, -.17, .14).rotate(BoneName.ELBOW_L, 0, 0, -.52).rotate(BoneName.ELBOW_R, 0, 0, .52).position(BoneName.PELVIS, 0, 0, -.4).done().build();
|
|
4
100
|
/**
|
|
5
101
|
* All Gam stance animations for idle, movement, and combat techniques
|
|
6
102
|
*/
|
|
7
103
|
var GAM_STANCE_ANIMATIONS = {
|
|
8
|
-
idle:
|
|
104
|
+
idle: GAM_IDLE_FLOWING,
|
|
9
105
|
movement: {
|
|
10
|
-
yieldingSidestep:
|
|
11
|
-
flowingRetreat:
|
|
106
|
+
yieldingSidestep: GAM_YIELDING_SIDESTEP,
|
|
107
|
+
flowingRetreat: GAM_FLOWING_RETREAT_STEP
|
|
12
108
|
},
|
|
13
109
|
techniques: {
|
|
14
110
|
waterFlowCounter: GAM_WATER_FLOW_COUNTER_ANIMATION,
|
|
@@ -16,6 +112,6 @@ var GAM_STANCE_ANIMATIONS = {
|
|
|
16
112
|
}
|
|
17
113
|
};
|
|
18
114
|
//#endregion
|
|
19
|
-
export { GAM_STANCE_ANIMATIONS };
|
|
115
|
+
export { GAM_FLOWING_RETREAT_STEP, GAM_IDLE_FLOWING, GAM_STANCE_ANIMATIONS, GAM_YIELDING_SIDESTEP };
|
|
20
116
|
|
|
21
117
|
//# sourceMappingURL=GamStanceAnimations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GamStanceAnimations.js","names":[],"sources":["../../../../src/systems/animation/catalogs/GamStanceAnimations.ts"],"sourcesContent":["/**\n * ☵ Gam (Water) Stance-Specific Animations\n *\n * Specialized idle, movement, guard, and adaptive counter animations for the Gam (감/Water) trigram.\n * Embodies adaptive flow and redirection from Hapkido techniques with water-like yielding principles.\n *\n * **Korean Martial Arts Context:**\n * - **무술**: 합기도 적응 기술 (Hapkido Adaptive Techniques)\n * - **특성**: 혈류 차단 (Blood Flow Disruption), 양보와 방향 전환 (Yielding and Redirecting)\n * - **철학**: 물의 적응력 (Water's Adaptability), 흐름의 지혜 (Flowing Wisdom)\n * - **대표 기술**: 수류반격 (Water Flow Counter/Adaptive Redirection)\n *\n * Animation Philosophy:\n * - **물처럼 흘러라** (Flow Like Water) - No resistance, only adaptation\n * - **적의 힘을 이용** (Use Enemy's Force) - Redirection over blocking\n * - **완전한 이완** (Complete Relaxation) - No tension in movements\n * - **끊임없는 적응** (Endless Adaptation) - Constant readiness to adjust\n *\n * @module systems/animation/catalogs/GamStanceAnimations\n * @category Animation\n * @korean 감괘자세애니메이션\n */\n\nimport { BoneName } from \"@/types/skeletal\";\nimport type { SkeletalAnimation } from \"@/types/skeletal\";\nimport { MartialArtsAnimationBuilder } from \"../builders/MartialArtsAnimationBuilder\";\n\n// Import Gam Water adaptive techniques (감괘 적응 기술)\nimport {\n GAM_WATER_FLOW_COUNTER_ANIMATION,\n GAM_FLOWING_TAKEDOWN,\n} from \"./GamTechniqueAnimations\";\n\n// ═══════════════════════════════════════════════════════════════════════════\n// ☵ GAM IDLE FLOWING ANIMATION (감괘 흐름 자세)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Gam Idle Flowing Animation\n *\n * **Korean**: 감괘 흐름 자세 (Gam-gwae Heureum Jase)\n * **Philosophy**: Water's adaptability through relaxed readiness\n *\n * Characteristics:\n * - Complete relaxation with no tension\n * - Subtle weight shifts demonstrating adaptability\n * - Shoulders completely loose and low\n * - Hands open and ready to receive force\n * - Breathing deep and flowing like water\n *\n * Animation Cycle:\n * - 0ms: Neutral relaxed position\n * - 625ms: Subtle weight shift left (물의 호흡)\n * - 1250ms: Return to center\n * - 1875ms: Subtle weight shift right\n * - 2500ms: Complete cycle\n *\n * @korean 감괘흐름자세\n * @duration 2500ms (2.5 second cycle)\n * @category Idle Animation\n */\nexport const GAM_IDLE_FLOWING: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\n \"gam_idle_flowing\",\n \"감괘 흐름 자세\"\n )\n .asIdle(2.5, true)\n // Keyframe 0ms: Neutral relaxed position (baseline)\n .at(0)\n .rotate(BoneName.PELVIS, 0, 0, 0) // Neutral pelvis\n .rotate(BoneName.SPINE_UPPER, 0, 0, 0) // Neutral spine\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17) // ~5°, ~8°, ~-10° (relaxed low)\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17) // ~5°, ~-8°, ~10°\n .rotate(BoneName.ELBOW_L, 0, 0, -0.52) // -30° (soft bend)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.52) // 30° (soft bend)\n .rotate(BoneName.WRIST_L, -0.09, 0, -0.05) // -5°, 0°, -3° (relaxed wrists)\n .rotate(BoneName.WRIST_R, -0.09, 0, 0.05) // -5°, 0°, 3°\n .rotate(BoneName.HEAD, 0, 0, 0) // Head neutral, aware\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n // Keyframe 625ms: Subtle weight shift left (물의 호흡)\n .at(0.625)\n .rotate(BoneName.PELVIS, 0, 0, -0.0349) // 0°, 0°, -2° (minimal shift)\n .rotate(BoneName.SPINE_UPPER, 0, -0.0349, 0) // 0°, -2°, 0° (flowing with weight)\n .rotate(BoneName.SHOULDER_L, 0.10, 0.17, -0.21) // 6°, 10°, -12° (left rises slightly)\n .rotate(BoneName.SHOULDER_R, 0.07, -0.10, 0.14) // 4°, -6°, 8° (right lowers)\n .rotate(BoneName.WRIST_L, -0.05, 0, -0.09) // -3°, 0°, -5° (subtle flow)\n .rotate(BoneName.WRIST_R, -0.12, 0, 0.02) // -7°, 0°, 1°\n .position(BoneName.PELVIS, -0.01, 0, 0) // Minimal lateral shift left\n .done<MartialArtsAnimationBuilder>()\n // Keyframe 1250ms: Return to center\n .at(1.25)\n .rotate(BoneName.PELVIS, 0, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0, 0)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17)\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17)\n .rotate(BoneName.WRIST_L, -0.09, 0, -0.05)\n .rotate(BoneName.WRIST_R, -0.09, 0, 0.05)\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n // Keyframe 1875ms: Subtle weight shift right\n .at(1.875)\n .rotate(BoneName.PELVIS, 0, 0, 0.0349) // 0°, 0°, 2° (minimal shift)\n .rotate(BoneName.SPINE_UPPER, 0, 0.0349, 0) // 0°, 2°, 0°\n .rotate(BoneName.SHOULDER_L, 0.07, 0.10, -0.14) // 4°, 6°, -8° (left lowers)\n .rotate(BoneName.SHOULDER_R, 0.10, -0.17, 0.21) // 6°, -10°, 12° (right rises)\n .rotate(BoneName.WRIST_L, -0.12, 0, -0.02) // -7°, 0°, -1°\n .rotate(BoneName.WRIST_R, -0.05, 0, 0.09) // -3°, 0°, 5°\n .position(BoneName.PELVIS, 0.01, 0, 0) // Minimal lateral shift right\n .done<MartialArtsAnimationBuilder>()\n // Keyframe 2500ms: Return to start (complete cycle)\n .at(2.5)\n .rotate(BoneName.PELVIS, 0, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0, 0)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17)\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.52)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.52)\n .rotate(BoneName.WRIST_L, -0.09, 0, -0.05)\n .rotate(BoneName.WRIST_R, -0.09, 0, 0.05)\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// ☵ GAM YIELDING SIDESTEP (물의 양보)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Gam Yielding Sidestep Animation\n *\n * **Korean**: 물의 양보 (Mul-ui Yangbo) - Water's Yielding\n * **Technique**: Lateral movement yielding to opponent's force\n *\n * Characteristics:\n * - Weight transfer follows natural flow\n * - Upper body remains centered and relaxed\n * - Feet glide rather than step\n * - No resistance, only adaptation\n * - Seamless transition to counter position\n *\n * Animation Phases:\n * - 0-167ms: Initial weight shift (양보 시작)\n * - 167-400ms: Gliding lateral movement (흐름)\n * - 400-583ms: Landing and settling (정착)\n *\n * @korean 물의양보\n * @frames 10 frames (58.3ms per frame at 60fps, total 583ms)\n * @duration 583ms\n * @category Movement Animation\n */\nexport const GAM_YIELDING_SIDESTEP: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\n \"gam_yielding_sidestep\",\n \"물의 양보\"\n )\n .asMovement(0.583, false)\n // Phase 1: Initial weight shift (0ms)\n .at(0)\n .rotate(BoneName.PELVIS, 0, -0.09, 0) // 0°, -5° (weight begins shift)\n .rotate(BoneName.SPINE_UPPER, 0, -0.05, 0) // Upper body stays centered\n .rotate(BoneName.KNEE_L, -0.26, 0, 0) // -15° (left leg loads)\n .rotate(BoneName.KNEE_R, -0.35, 0, 0) // -20° (right leg ready to glide)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17) // Relaxed guard maintained\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17)\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n // Phase 2: Gliding lateral movement (283ms - midpoint)\n .at(0.283)\n .rotate(BoneName.PELVIS, 0, -0.14, 0) // 0°, -8° (flowing lateral)\n .rotate(BoneName.SPINE_UPPER, 0, -0.03, 0) // Minimal rotation\n .rotate(BoneName.KNEE_L, -0.17, 0, 0) // -10° (left leg extends)\n .rotate(BoneName.KNEE_R, -0.44, 0, 0) // -25° (right leg glides)\n .rotate(BoneName.SHOULDER_L, 0.10, 0.17, -0.14) // Slight adjustment\n .rotate(BoneName.SHOULDER_R, 0.08, -0.10, 0.14)\n .position(BoneName.PELVIS, -0.12, 0.01, 0) // Lateral with slight rise\n .done<MartialArtsAnimationBuilder>()\n // Phase 3: Landing and settling (583ms)\n .at(0.583)\n .rotate(BoneName.PELVIS, 0, -0.10, 0) // 0°, -6° (settled)\n .rotate(BoneName.SPINE_UPPER, 0, -0.02, 0) // Return to center\n .rotate(BoneName.KNEE_L, -0.26, 0, 0) // -15° (stable)\n .rotate(BoneName.KNEE_R, -0.35, 0, 0) // -20° (grounded)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17) // Guard restored\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17)\n .position(BoneName.PELVIS, -0.20, 0, 0) // Final lateral position\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// ☵ GAM FLOWING RETREAT STEP (수류 후퇴)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Gam Flowing Retreat Step Animation\n *\n * **Korean**: 수류 후퇴 (Suryu Hutoe) - Water Flow Retreat\n * **Technique**: Backward movement with no resistance\n *\n * Characteristics:\n * - Body flows with opponent's momentum\n * - Hands stay forward to maintain contact\n * - No breaking of flow, continuous movement\n * - Seamless transition to counter position\n * - Weight shifts smoothly backward\n *\n * Animation Phases:\n * - 0-200ms: Initial backward flow (후퇴 시작)\n * - 200-533ms: Continuous backward glide (지속 흐름)\n * - 533-750ms: Settling in counter position (반격 준비)\n *\n * @korean 수류후퇴\n * @frames 13 frames (57.7ms per frame at 60fps, total 750ms)\n * @duration 750ms\n * @category Movement Animation\n */\nexport const GAM_FLOWING_RETREAT_STEP: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\n \"gam_flowing_retreat_step\",\n \"수류 후퇴\"\n )\n .asMovement(0.75, false)\n // Phase 1: Initial backward flow (0ms)\n .at(0)\n .rotate(BoneName.PELVIS, -0.05, 0, 0) // -3° (lean back begins)\n .rotate(BoneName.SPINE_UPPER, -0.03, 0, 0) // Slight backward lean\n .rotate(BoneName.KNEE_L, -0.35, 0, 0) // -20° (front leg ready)\n .rotate(BoneName.KNEE_R, -0.26, 0, 0) // -15° (back leg loads)\n .rotate(BoneName.SHOULDER_L, 0.05, 0.17, -0.14) // 3°, 10°, -8° (hands forward)\n .rotate(BoneName.SHOULDER_R, 0.05, -0.17, 0.14) // Maintain contact position\n .rotate(BoneName.ELBOW_L, 0, 0, -0.70) // -40° (arms extending forward)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.70) // To maintain contact\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n // Phase 2: Continuous backward glide (367ms - midpoint)\n .at(0.367)\n .rotate(BoneName.PELVIS, -0.09, 0, 0) // -5° (flowing back)\n .rotate(BoneName.SPINE_UPPER, -0.05, 0, 0) // Maintain forward contact\n .rotate(BoneName.KNEE_L, -0.17, 0, 0) // -10° (front leg extends)\n .rotate(BoneName.KNEE_R, -0.44, 0, 0) // -25° (back leg absorbs)\n .rotate(BoneName.SHOULDER_L, 0.07, 0.21, -0.17) // Arms extend to maintain\n .rotate(BoneName.SHOULDER_R, 0.07, -0.21, 0.17)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.87) // -50° (maximum extension)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.87)\n .position(BoneName.PELVIS, 0, -0.02, -0.25) // Back and slightly down\n .done<MartialArtsAnimationBuilder>()\n // Phase 3: Settling in counter position (750ms)\n .at(0.75)\n .rotate(BoneName.PELVIS, -0.07, 0, 0) // -4° (settled back)\n .rotate(BoneName.SPINE_UPPER, -0.03, 0, 0) // Upright but ready\n .rotate(BoneName.KNEE_L, -0.26, 0, 0) // -15° (stable front)\n .rotate(BoneName.KNEE_R, -0.35, 0, 0) // -20° (grounded back)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.17, -0.14) // Return to guard\n .rotate(BoneName.SHOULDER_R, 0.09, -0.17, 0.14)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.52) // -30° (guard position)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.52)\n .position(BoneName.PELVIS, 0, 0, -0.40) // Final backward position\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// EXPORTS\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * All Gam stance animations for idle, movement, and combat techniques\n */\nexport const GAM_STANCE_ANIMATIONS = {\n idle: GAM_IDLE_FLOWING,\n movement: {\n yieldingSidestep: GAM_YIELDING_SIDESTEP,\n flowingRetreat: GAM_FLOWING_RETREAT_STEP,\n },\n // Water Adaptive Counter Techniques (감괘 적응 기술)\n techniques: {\n waterFlowCounter: GAM_WATER_FLOW_COUNTER_ANIMATION,\n flowingTakedown: GAM_FLOWING_TAKEDOWN,\n },\n} as const;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GamStanceAnimations.js","names":[],"sources":["../../../../src/systems/animation/catalogs/GamStanceAnimations.ts"],"sourcesContent":["/**\n * ☵ Gam (Water) Stance-Specific Animations\n *\n * Specialized idle, movement, guard, and adaptive counter animations for the Gam (감/Water) trigram.\n * Embodies adaptive flow and redirection from Hapkido techniques with water-like yielding principles.\n *\n * **Korean Martial Arts Context:**\n * - **무술**: 합기도 적응 기술 (Hapkido Adaptive Techniques)\n * - **특성**: 혈류 차단 (Blood Flow Disruption), 양보와 방향 전환 (Yielding and Redirecting)\n * - **철학**: 물의 적응력 (Water's Adaptability), 흐름의 지혜 (Flowing Wisdom)\n * - **대표 기술**: 수류반격 (Water Flow Counter/Adaptive Redirection)\n *\n * Animation Philosophy:\n * - **물처럼 흘러라** (Flow Like Water) - No resistance, only adaptation\n * - **적의 힘을 이용** (Use Enemy's Force) - Redirection over blocking\n * - **완전한 이완** (Complete Relaxation) - No tension in movements\n * - **끊임없는 적응** (Endless Adaptation) - Constant readiness to adjust\n *\n * @module systems/animation/catalogs/GamStanceAnimations\n * @category Animation\n * @korean 감괘자세애니메이션\n */\n\nimport { BoneName } from \"@/types/skeletal\";\nimport type { SkeletalAnimation } from \"@/types/skeletal\";\nimport { MartialArtsAnimationBuilder } from \"../builders/MartialArtsAnimationBuilder\";\n\n// Import Gam Water adaptive techniques (감괘 적응 기술)\nimport {\n GAM_WATER_FLOW_COUNTER_ANIMATION,\n GAM_FLOWING_TAKEDOWN,\n} from \"./GamTechniqueAnimations\";\n\n// ═══════════════════════════════════════════════════════════════════════════\n// ☵ GAM IDLE FLOWING ANIMATION (감괘 흐름 자세)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Gam Idle Flowing Animation\n *\n * **Korean**: 감괘 흐름 자세 (Gam-gwae Heureum Jase)\n * **Philosophy**: Water's adaptability through relaxed readiness\n *\n * Characteristics:\n * - Complete relaxation with no tension\n * - Subtle weight shifts demonstrating adaptability\n * - Shoulders completely loose and low\n * - Hands open and ready to receive force\n * - Breathing deep and flowing like water\n *\n * Animation Cycle:\n * - 0ms: Neutral relaxed position\n * - 625ms: Subtle weight shift left (물의 호흡)\n * - 1250ms: Return to center\n * - 1875ms: Subtle weight shift right\n * - 2500ms: Complete cycle\n *\n * @korean 감괘흐름자세\n * @duration 2500ms (2.5 second cycle)\n * @category Idle Animation\n */\nexport const GAM_IDLE_FLOWING: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\n \"gam_idle_flowing\",\n \"감괘 흐름 자세\"\n )\n .asIdle(2.5, true)\n // Keyframe 0ms: Neutral relaxed position (baseline)\n .at(0)\n .rotate(BoneName.PELVIS, 0, 0, 0) // Neutral pelvis\n .rotate(BoneName.SPINE_UPPER, 0, 0, 0) // Neutral spine\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17) // ~5°, ~8°, ~-10° (relaxed low)\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17) // ~5°, ~-8°, ~10°\n .rotate(BoneName.ELBOW_L, 0, 0, -0.52) // -30° (soft bend)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.52) // 30° (soft bend)\n .rotate(BoneName.WRIST_L, -0.09, 0, -0.05) // -5°, 0°, -3° (relaxed wrists)\n .rotate(BoneName.WRIST_R, -0.09, 0, 0.05) // -5°, 0°, 3°\n .rotate(BoneName.HEAD, 0, 0, 0) // Head neutral, aware\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n // Keyframe 625ms: Subtle weight shift left (물의 호흡)\n .at(0.625)\n .rotate(BoneName.PELVIS, 0, 0, -0.0349) // 0°, 0°, -2° (minimal shift)\n .rotate(BoneName.SPINE_UPPER, 0, -0.0349, 0) // 0°, -2°, 0° (flowing with weight)\n .rotate(BoneName.SHOULDER_L, 0.10, 0.17, -0.21) // 6°, 10°, -12° (left rises slightly)\n .rotate(BoneName.SHOULDER_R, 0.07, -0.10, 0.14) // 4°, -6°, 8° (right lowers)\n .rotate(BoneName.WRIST_L, -0.05, 0, -0.09) // -3°, 0°, -5° (subtle flow)\n .rotate(BoneName.WRIST_R, -0.12, 0, 0.02) // -7°, 0°, 1°\n .position(BoneName.PELVIS, -0.01, 0, 0) // Minimal lateral shift left\n .done<MartialArtsAnimationBuilder>()\n // Keyframe 1250ms: Return to center\n .at(1.25)\n .rotate(BoneName.PELVIS, 0, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0, 0)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17)\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17)\n .rotate(BoneName.WRIST_L, -0.09, 0, -0.05)\n .rotate(BoneName.WRIST_R, -0.09, 0, 0.05)\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n // Keyframe 1875ms: Subtle weight shift right\n .at(1.875)\n .rotate(BoneName.PELVIS, 0, 0, 0.0349) // 0°, 0°, 2° (minimal shift)\n .rotate(BoneName.SPINE_UPPER, 0, 0.0349, 0) // 0°, 2°, 0°\n .rotate(BoneName.SHOULDER_L, 0.07, 0.10, -0.14) // 4°, 6°, -8° (left lowers)\n .rotate(BoneName.SHOULDER_R, 0.10, -0.17, 0.21) // 6°, -10°, 12° (right rises)\n .rotate(BoneName.WRIST_L, -0.12, 0, -0.02) // -7°, 0°, -1°\n .rotate(BoneName.WRIST_R, -0.05, 0, 0.09) // -3°, 0°, 5°\n .position(BoneName.PELVIS, 0.01, 0, 0) // Minimal lateral shift right\n .done<MartialArtsAnimationBuilder>()\n // Keyframe 2500ms: Return to start (complete cycle)\n .at(2.5)\n .rotate(BoneName.PELVIS, 0, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0, 0)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17)\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.52)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.52)\n .rotate(BoneName.WRIST_L, -0.09, 0, -0.05)\n .rotate(BoneName.WRIST_R, -0.09, 0, 0.05)\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// ☵ GAM YIELDING SIDESTEP (물의 양보)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Gam Yielding Sidestep Animation\n *\n * **Korean**: 물의 양보 (Mul-ui Yangbo) - Water's Yielding\n * **Technique**: Lateral movement yielding to opponent's force\n *\n * Characteristics:\n * - Weight transfer follows natural flow\n * - Upper body remains centered and relaxed\n * - Feet glide rather than step\n * - No resistance, only adaptation\n * - Seamless transition to counter position\n *\n * Animation Phases:\n * - 0-167ms: Initial weight shift (양보 시작)\n * - 167-400ms: Gliding lateral movement (흐름)\n * - 400-583ms: Landing and settling (정착)\n *\n * @korean 물의양보\n * @frames 10 frames (58.3ms per frame at 60fps, total 583ms)\n * @duration 583ms\n * @category Movement Animation\n */\nexport const GAM_YIELDING_SIDESTEP: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\n \"gam_yielding_sidestep\",\n \"물의 양보\"\n )\n .asMovement(0.583, false)\n // Phase 1: Initial weight shift (0ms)\n .at(0)\n .rotate(BoneName.PELVIS, 0, -0.09, 0) // 0°, -5° (weight begins shift)\n .rotate(BoneName.SPINE_UPPER, 0, -0.05, 0) // Upper body stays centered\n .rotate(BoneName.KNEE_L, -0.26, 0, 0) // -15° (left leg loads)\n .rotate(BoneName.KNEE_R, -0.35, 0, 0) // -20° (right leg ready to glide)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17) // Relaxed guard maintained\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17)\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n // Phase 2: Gliding lateral movement (283ms - midpoint)\n .at(0.283)\n .rotate(BoneName.PELVIS, 0, -0.14, 0) // 0°, -8° (flowing lateral)\n .rotate(BoneName.SPINE_UPPER, 0, -0.03, 0) // Minimal rotation\n .rotate(BoneName.KNEE_L, -0.17, 0, 0) // -10° (left leg extends)\n .rotate(BoneName.KNEE_R, -0.44, 0, 0) // -25° (right leg glides)\n .rotate(BoneName.SHOULDER_L, 0.10, 0.17, -0.14) // Slight adjustment\n .rotate(BoneName.SHOULDER_R, 0.08, -0.10, 0.14)\n .position(BoneName.PELVIS, -0.12, 0.01, 0) // Lateral with slight rise\n .done<MartialArtsAnimationBuilder>()\n // Phase 3: Landing and settling (583ms)\n .at(0.583)\n .rotate(BoneName.PELVIS, 0, -0.10, 0) // 0°, -6° (settled)\n .rotate(BoneName.SPINE_UPPER, 0, -0.02, 0) // Return to center\n .rotate(BoneName.KNEE_L, -0.26, 0, 0) // -15° (stable)\n .rotate(BoneName.KNEE_R, -0.35, 0, 0) // -20° (grounded)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.14, -0.17) // Guard restored\n .rotate(BoneName.SHOULDER_R, 0.09, -0.14, 0.17)\n .position(BoneName.PELVIS, -0.20, 0, 0) // Final lateral position\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// ☵ GAM FLOWING RETREAT STEP (수류 후퇴)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Gam Flowing Retreat Step Animation\n *\n * **Korean**: 수류 후퇴 (Suryu Hutoe) - Water Flow Retreat\n * **Technique**: Backward movement with no resistance\n *\n * Characteristics:\n * - Body flows with opponent's momentum\n * - Hands stay forward to maintain contact\n * - No breaking of flow, continuous movement\n * - Seamless transition to counter position\n * - Weight shifts smoothly backward\n *\n * Animation Phases:\n * - 0-200ms: Initial backward flow (후퇴 시작)\n * - 200-533ms: Continuous backward glide (지속 흐름)\n * - 533-750ms: Settling in counter position (반격 준비)\n *\n * @korean 수류후퇴\n * @frames 13 frames (57.7ms per frame at 60fps, total 750ms)\n * @duration 750ms\n * @category Movement Animation\n */\nexport const GAM_FLOWING_RETREAT_STEP: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\n \"gam_flowing_retreat_step\",\n \"수류 후퇴\"\n )\n .asMovement(0.75, false)\n // Phase 1: Initial backward flow (0ms)\n .at(0)\n .rotate(BoneName.PELVIS, -0.05, 0, 0) // -3° (lean back begins)\n .rotate(BoneName.SPINE_UPPER, -0.03, 0, 0) // Slight backward lean\n .rotate(BoneName.KNEE_L, -0.35, 0, 0) // -20° (front leg ready)\n .rotate(BoneName.KNEE_R, -0.26, 0, 0) // -15° (back leg loads)\n .rotate(BoneName.SHOULDER_L, 0.05, 0.17, -0.14) // 3°, 10°, -8° (hands forward)\n .rotate(BoneName.SHOULDER_R, 0.05, -0.17, 0.14) // Maintain contact position\n .rotate(BoneName.ELBOW_L, 0, 0, -0.70) // -40° (arms extending forward)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.70) // To maintain contact\n .position(BoneName.PELVIS, 0, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n // Phase 2: Continuous backward glide (367ms - midpoint)\n .at(0.367)\n .rotate(BoneName.PELVIS, -0.09, 0, 0) // -5° (flowing back)\n .rotate(BoneName.SPINE_UPPER, -0.05, 0, 0) // Maintain forward contact\n .rotate(BoneName.KNEE_L, -0.17, 0, 0) // -10° (front leg extends)\n .rotate(BoneName.KNEE_R, -0.44, 0, 0) // -25° (back leg absorbs)\n .rotate(BoneName.SHOULDER_L, 0.07, 0.21, -0.17) // Arms extend to maintain\n .rotate(BoneName.SHOULDER_R, 0.07, -0.21, 0.17)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.87) // -50° (maximum extension)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.87)\n .position(BoneName.PELVIS, 0, -0.02, -0.25) // Back and slightly down\n .done<MartialArtsAnimationBuilder>()\n // Phase 3: Settling in counter position (750ms)\n .at(0.75)\n .rotate(BoneName.PELVIS, -0.07, 0, 0) // -4° (settled back)\n .rotate(BoneName.SPINE_UPPER, -0.03, 0, 0) // Upright but ready\n .rotate(BoneName.KNEE_L, -0.26, 0, 0) // -15° (stable front)\n .rotate(BoneName.KNEE_R, -0.35, 0, 0) // -20° (grounded back)\n .rotate(BoneName.SHOULDER_L, 0.09, 0.17, -0.14) // Return to guard\n .rotate(BoneName.SHOULDER_R, 0.09, -0.17, 0.14)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.52) // -30° (guard position)\n .rotate(BoneName.ELBOW_R, 0, 0, 0.52)\n .position(BoneName.PELVIS, 0, 0, -0.40) // Final backward position\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// EXPORTS\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * All Gam stance animations for idle, movement, and combat techniques\n */\nexport const GAM_STANCE_ANIMATIONS = {\n idle: GAM_IDLE_FLOWING,\n movement: {\n yieldingSidestep: GAM_YIELDING_SIDESTEP,\n flowingRetreat: GAM_FLOWING_RETREAT_STEP,\n },\n // Water Adaptive Counter Techniques (감괘 적응 기술)\n techniques: {\n waterFlowCounter: GAM_WATER_FLOW_COUNTER_ANIMATION,\n flowingTakedown: GAM_FLOWING_TAKEDOWN,\n },\n} as const;\n"],"mappings":"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"}
|
|
@@ -130,6 +130,6 @@ var GAN_STANCE_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
130
130
|
["gan_defensive_reversal", GAN_DEFENSIVE_REVERSAL]
|
|
131
131
|
]);
|
|
132
132
|
//#endregion
|
|
133
|
-
export { GAN_STANCE_ANIMATIONS };
|
|
133
|
+
export { GAN_DEFENSIVE_ANGLE_SHIFT, GAN_HIGH_SOLID_GUARD_TRANSITION, GAN_IDLE_ROOTED, GAN_SHORT_ROOT_STEP, GAN_STANCE_ANIMATIONS };
|
|
134
134
|
|
|
135
135
|
//# sourceMappingURL=GanStanceAnimations.js.map
|
|
@@ -336,6 +336,6 @@ var GEON_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
336
336
|
["geon_overhead_hammer", GEON_OVERHEAD_HAMMER]
|
|
337
337
|
]);
|
|
338
338
|
//#endregion
|
|
339
|
-
export { GEON_ANIMATIONS };
|
|
339
|
+
export { GEON_ANIMATIONS, GEON_AXE_KICK, GEON_DIAGONAL_POWER_STEP, GEON_ELBOW_SMASH, GEON_FORWARD_ADVANCE, GEON_FRONTAL_KICK, GEON_HEAVENLY_FIST_ANIMATION, GEON_HEAVEN_STRIKE, GEON_IDLE_BREATHING, GEON_OVERHEAD_HAMMER, GEON_PALM_STRIKE, GEON_ROUNDHOUSE_KICK };
|
|
340
340
|
|
|
341
341
|
//# sourceMappingURL=GeonStanceAnimations.js.map
|
|
@@ -283,6 +283,6 @@ var GON_TECHNIQUE_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
283
283
|
["gon_sacrifice_throw", GON_SACRIFICE_THROW_ANIMATION]
|
|
284
284
|
]);
|
|
285
285
|
//#endregion
|
|
286
|
-
export { GON_TECHNIQUE_ANIMATIONS };
|
|
286
|
+
export { GON_ANKLE_PICK_ANIMATION, GON_BODY_LOCK_ANIMATION, GON_EARTH_EMBRACE_ANIMATION, GON_GROUND_CONTROL_TRANSITION, GON_GROUND_POUND_ANIMATION, GON_LEG_SWEEP_ANIMATION, GON_SACRIFICE_THROW_ANIMATION, GON_SSIREUM_THROW_ANIMATION, GON_TECHNIQUE_ANIMATIONS };
|
|
287
287
|
|
|
288
288
|
//# sourceMappingURL=GonTechniqueAnimations.js.map
|
|
@@ -470,6 +470,6 @@ var GRAPPLING_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
470
470
|
["redirect_throw", REDIRECT_THROW_ANIMATION]
|
|
471
471
|
]);
|
|
472
472
|
//#endregion
|
|
473
|
-
export { ARM_BAR_ANIMATION, BLOCK_ANIMATION, BODY_LOCK_THROW_ANIMATION, CAROTID_CHOKE_ANIMATION, COUNTER_ATTACK_ANIMATION, COUNTER_STRIKE_ANIMATION, EARTH_EMBRACE_ANIMATION, ELBOW_LOCK_ANIMATION, FINGER_LOCK_ANIMATION, FLOWING_ARM_BAR_ANIMATION, GRAPPLE_ANIMATION, GRAPPLING_ANIMATIONS, HIGH_BLOCK_ANIMATION, HIP_THROW_ANIMATION, JOINT_LOCK_DEFENSE_ANIMATION, LEG_REAP_ANIMATION, LOW_BLOCK_ANIMATION, MOUNTAIN_LOCK_ANIMATION, PARRY_COUNTER_ANIMATION, REAR_NAKED_CHOKE_ANIMATION, REDIRECT_THROW_ANIMATION, SHOULDER_LOCK_ANIMATION, SHOULDER_MANIPULATION_ANIMATION, SLAM_ANIMATION, SMALL_CIRCLE_LOCK_ANIMATION, SUPLEX_ANIMATION, SWEEP_DEFENSE_ANIMATION, TAKEDOWN_ANIMATION, THROW_ANIMATION, WRIST_LOCK_ANIMATION };
|
|
473
|
+
export { ARM_BAR_ANIMATION, BLOCK_ANIMATION, BODY_LOCK_THROW_ANIMATION, CAROTID_CHOKE_ANIMATION, COUNTER_ATTACK_ANIMATION, COUNTER_STRIKE_ANIMATION, DOUBLE_KNEE_ANIMATION, EARTH_EMBRACE_ANIMATION, ELBOW_LOCK_ANIMATION, FINGER_LOCK_ANIMATION, FLOWING_ARM_BAR_ANIMATION, GRAPPLE_ANIMATION, GRAPPLING_ANIMATIONS, HIGH_BLOCK_ANIMATION, HIP_THROW_ANIMATION, JOINT_LOCK_DEFENSE_ANIMATION, LEG_REAP_ANIMATION, LOW_BLOCK_ANIMATION, MOUNTAIN_LOCK_ANIMATION, PARRY_COUNTER_ANIMATION, REAR_NAKED_CHOKE_ANIMATION, REDIRECT_THROW_ANIMATION, SHOULDER_LOCK_ANIMATION, SHOULDER_MANIPULATION_ANIMATION, SLAM_ANIMATION, SMALL_CIRCLE_LOCK_ANIMATION, SUPLEX_ANIMATION, SWEEP_DEFENSE_ANIMATION, TAKEDOWN_ANIMATION, THROW_ANIMATION, WRIST_LOCK_ANIMATION };
|
|
474
474
|
|
|
475
475
|
//# sourceMappingURL=GrapplingAnimations.js.map
|
|
@@ -924,6 +924,6 @@ var KICK_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
924
924
|
["flying_kick", FLYING_KICK_ANIMATION]
|
|
925
925
|
]);
|
|
926
926
|
//#endregion
|
|
927
|
-
export { AXE_KICK_ANIMATION, BACK_KICK_ANIMATION, CRESCENT_KICK_ANIMATION, FLYING_KICK_ANIMATION, FRONT_KICK_ANIMATION, JUMPING_KICK_ANIMATION, KICK_ANIMATIONS, LOW_KICK_ANIMATION, PUSH_KICK_ANIMATION, ROUNDHOUSE_KICK_ANIMATION, SIDE_KICK_ANIMATION, SPINNING_HEEL_KICK_ANIMATION, SPINNING_HOOK_KICK_ANIMATION, SWEEP_ANIMATION, TORNADO_KICK_ANIMATION };
|
|
927
|
+
export { AXE_KICK_ANIMATION, BACK_KICK_ANIMATION, CRESCENT_KICK_ANIMATION, DOUBLE_KICK_ANIMATION, FLYING_KICK_ANIMATION, FRONT_KICK_ANIMATION, HOOK_KICK_ANIMATION, JUMPING_KICK_ANIMATION, JUMPING_ROUNDHOUSE_ANIMATION, KICK_ANIMATIONS, LOW_KICK_ANIMATION, PUSH_KICK_ANIMATION, QUESTION_MARK_KICK_ANIMATION, ROUNDHOUSE_KICK_ANIMATION, SIDE_KICK_ANIMATION, SPINNING_BACK_KICK_ANIMATION, SPINNING_HEEL_KICK_ANIMATION, SPINNING_HOOK_KICK_ANIMATION, SWEEP_ANIMATION, TORNADO_KICK_ANIMATION };
|
|
928
928
|
|
|
929
929
|
//# sourceMappingURL=KickAnimations.js.map
|
|
@@ -366,6 +366,6 @@ var MOVEMENT_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
366
366
|
["movement_step_feint", MOVEMENT_STEP_FEINT_ANIMATION]
|
|
367
367
|
]);
|
|
368
368
|
//#endregion
|
|
369
|
-
export { MOVEMENT_ANIMATIONS };
|
|
369
|
+
export { MOVEMENT_ANGLE_OFF_ANIMATION, MOVEMENT_ANIMATIONS, MOVEMENT_BACKWARD_STEP_ANIMATION, MOVEMENT_BACK_STEP_ANIMATION, MOVEMENT_BOB_WEAVE_ANIMATION, MOVEMENT_BOUNCE_STEP_ANIMATION, MOVEMENT_CIRCLE_LEFT_ANIMATION, MOVEMENT_CIRCLE_RIGHT_ANIMATION, MOVEMENT_DROP_LEVEL_ANIMATION, MOVEMENT_DUCK_ANIMATION, MOVEMENT_FORWARD_STEP_ANIMATION, MOVEMENT_FULL_SPIN_ANIMATION, MOVEMENT_JAB_FEINT_ANIMATION, MOVEMENT_JUMP_ASIDE_ANIMATION, MOVEMENT_JUMP_BACK_ANIMATION, MOVEMENT_JUMP_IN_ANIMATION, MOVEMENT_KICK_FEINT_ANIMATION, MOVEMENT_LEAN_BACK_ANIMATION, MOVEMENT_LEVEL_FEINT_ANIMATION, MOVEMENT_ORTHODOX_TO_SOUTHPAW_ANIMATION, MOVEMENT_PIVOT_LEFT_ANIMATION, MOVEMENT_PIVOT_RIGHT_ANIMATION, MOVEMENT_QUARTER_TURN_ANIMATION, MOVEMENT_RISE_UP_ANIMATION, MOVEMENT_SHUFFLE_ANIMATION, MOVEMENT_SIDESTEP_LEFT_ANIMATION, MOVEMENT_SIDESTEP_RIGHT_ANIMATION, MOVEMENT_SOUTHPAW_TO_ORTHODOX_ANIMATION, MOVEMENT_STEP_DRAG_ANIMATION, MOVEMENT_STEP_FEINT_ANIMATION, MOVEMENT_SWAY_LEFT_ANIMATION, MOVEMENT_SWAY_RIGHT_ANIMATION, MOVEMENT_SWITCH_STEP_ANIMATION };
|
|
370
370
|
|
|
371
371
|
//# sourceMappingURL=MovementAnimations.js.map
|
|
@@ -493,6 +493,6 @@ var PUNCH_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
493
493
|
["body_shot", BODY_SHOT_ANIMATION]
|
|
494
494
|
]);
|
|
495
495
|
//#endregion
|
|
496
|
-
export { BACKFIST_ANIMATION, CROSS_ANIMATION, HAMMER_FIST_ANIMATION, HOOK_ANIMATION, JAB_ANIMATION, OVERHAND_ANIMATION, PALM_STRIKE_ANIMATION, PUNCH_ANIMATIONS, UPPERCUT_ANIMATION };
|
|
496
|
+
export { BACKFIST_ANIMATION, BODY_SHOT_ANIMATION, CROSS_ANIMATION, DOUBLE_HOOK_ANIMATION, HAMMER_FIST_ANIMATION, HOOK_ANIMATION, JAB_ANIMATION, JAB_CROSS_ANIMATION, LEAD_HOOK_ANIMATION, LEAD_UPPERCUT_ANIMATION, OVERHAND_ANIMATION, PALM_STRIKE_ANIMATION, PUNCH_ANIMATIONS, SPINNING_BACKFIST_ANIMATION, SUPERMAN_PUNCH_ANIMATION, UPPERCUT_ANIMATION };
|
|
497
497
|
|
|
498
498
|
//# sourceMappingURL=PunchAnimations.js.map
|
|
@@ -455,6 +455,6 @@ function getRecoveryConfig(recoveryType) {
|
|
|
455
455
|
return RECOVERY_CONFIGS[recoveryType];
|
|
456
456
|
}
|
|
457
457
|
//#endregion
|
|
458
|
-
export { determineRecoveryType, getRecoveryAnimationState, getRecoveryConfig, isVulnerableFrame };
|
|
458
|
+
export { RECOVERY_CONFIGS, RECOVERY_DEFENSIVE_KEYFRAMES, RECOVERY_PRONE_KEYFRAMES, RECOVERY_ROLL_KEYFRAMES, RECOVERY_SUPINE_KEYFRAMES, determineRecoveryType, getRecoveryAnimationState, getRecoveryConfig, getRecoveryKeyframes, isVulnerableFrame };
|
|
459
459
|
|
|
460
460
|
//# sourceMappingURL=RecoveryAnimations.js.map
|
|
@@ -126,6 +126,6 @@ var SON_STANCE_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
126
126
|
["son_sweeping_multi_strike", SON_SWEEPING_MULTI_STRIKE]
|
|
127
127
|
]);
|
|
128
128
|
//#endregion
|
|
129
|
-
export { SON_STANCE_ANIMATIONS };
|
|
129
|
+
export { SON_FLOWING_ARC_STEP, SON_IDLE_SWAYING, SON_MOBILE_GUARD_TRANSITION, SON_STANCE_ANIMATIONS, SON_SWEEPING_CIRCLE_STEP };
|
|
130
130
|
|
|
131
131
|
//# sourceMappingURL=SonStanceAnimations.js.map
|
|
@@ -822,6 +822,6 @@ var STANCE_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
822
822
|
["gon_sacrifice_throw", GON_SACRIFICE_THROW_ANIMATION]
|
|
823
823
|
]);
|
|
824
824
|
//#endregion
|
|
825
|
-
export { STANCE_ANIMATIONS };
|
|
825
|
+
export { GAM_CIRCULAR_PARRY_ANIMATION, GAM_FLOWING_BLOCK_ANIMATION, GAM_HIP_THROW_ANIMATION, GAM_REDIRECT_THROW_ANIMATION, GAM_WATER_COUNTER_ANIMATION, GAM_WRIST_TWIST_COUNTER_ANIMATION, GAN_COUNTER_STRIKE_ANIMATION, GAN_IMMOVABLE_STANCE_ANIMATION, GAN_IRON_BLOCK_ANIMATION, GAN_MOUNTAIN_STANCE_LOCK_ANIMATION, GAN_REVERSAL_TECHNIQUE_ANIMATION, GEON_AXE_KICK_ANIMATION, GEON_ELBOW_SMASH_ANIMATION, GEON_FRONTAL_KICK_ANIMATION, GEON_HEAVENLY_FIST_ANIMATION, GEON_HEAVEN_STRIKE_ANIMATION, GEON_PALM_STRIKE_ANIMATION, GEON_ROUNDHOUSE_ANIMATION, GON_ANKLE_PICK_ANIMATION, GON_BODY_LOCK_TAKEDOWN_ANIMATION, GON_EARTH_EMBRACE_ANIMATION, GON_GROUND_POUND_ANIMATION, GON_LEG_SWEEP_ANIMATION, GON_SACRIFICE_THROW_ANIMATION, GON_SSIREUM_THROW_ANIMATION, JIN_BACK_KICK_ANIMATION, JIN_FLYING_SIDEKICK_ANIMATION, JIN_JUMPING_FRONT_KICK_ANIMATION, JIN_KNEE_STRIKE_ANIMATION, JIN_LIGHTNING_FLASH_ANIMATION, JIN_TORNADO_KICK_ANIMATION, LI_FLAME_SPEAR_ANIMATION, LI_NERVE_STRIKE_ANIMATION, LI_PRESSURE_POINT_ANIMATION, LI_SIDEKICK_ANIMATION, LI_SOLAR_PLEXUS_ANIMATION, LI_TEMPLE_STRIKE_ANIMATION, SON_FLOWING_PUSH_ANIMATION, SON_RAPID_FOOTWORK_ANIMATION, SON_RHYTHMIC_STRIKES_ANIMATION, SON_SPINNING_ELBOW_ANIMATION, SON_SWEEPING_LOW_KICK_ANIMATION, SON_WHIRLWIND_BARRAGE_ANIMATION, STANCE_ANIMATIONS, TAE_ARM_BAR_ANIMATION, TAE_ELBOW_LOCK_ANIMATION, TAE_FINGER_LOCK_ANIMATION, TAE_FLOWING_STRIKES_ANIMATION, TAE_SHOULDER_LOCK_ANIMATION, TAE_SMALL_CIRCLE_ANIMATION, TAE_WRIST_LOCK_ANIMATION, createGamStance, createGanStance, createGeonStance, createGonStance, createJinStance, createLiStance, createSonStance, createTaeStance };
|
|
826
826
|
|
|
827
827
|
//# sourceMappingURL=StanceAnimations.js.map
|
|
@@ -2307,6 +2307,6 @@ function getAttackAnimation(name) {
|
|
|
2307
2307
|
return ALL_ATTACK_ANIMATIONS.get(name);
|
|
2308
2308
|
}
|
|
2309
2309
|
//#endregion
|
|
2310
|
-
export { ALL_ATTACK_ANIMATIONS, getAttackAnimation };
|
|
2310
|
+
export { ALL_ATTACK_ANIMATIONS, GAM_FLOWING_RIVER_STRIKE, GAM_SPLASH_KNEE, GAM_TIDAL_WAVE_PALM, GAM_UNDERTOW_PULL, GAM_WHIRLPOOL_COUNTER, GAN_AVALANCHE_HAMMER, GAN_BOULDER_DROP_ELBOW, GAN_FORTRESS_COUNTER_STRIKE, GAN_IRON_WALL_BLOCK_STRIKE, GAN_STONE_WALL_THRUST, GEON_BONE_BREAKING_STRIKE_1, GEON_CRUSHING_ELBOW, GEON_DESCENDING_HAMMER, GEON_SPLITTING_PALM, GEON_THUNDEROUS_UPPERCUT, GON_EARTHQUAKE_STOMP, GON_GROUND_SWEEP_STRIKE, GON_QUICKSAND_GRAB, GON_ROOTING_TAKEDOWN, GON_TECTONIC_SLAM, JIN_EXPLOSIVE_KNEE, JIN_LIGHTNING_STRAIGHT, JIN_SHOCKING_HAMMER_FIST, JIN_SHOCKING_LOW_KICK, JIN_THUNDER_CLAP_PALM, LI_BLAZING_NERVE_CHAIN, LI_BURNING_FINGER_STRIKE_1, LI_PHOENIX_EYE_STRIKE, LI_SOLAR_PLEXUS_SPEAR, LI_TEMPLE_SPIKE, SON_CUTTING_WIND_PALM, SON_GALE_FORCE_RUSH, SON_PENETRATING_PALM_RUSH, SON_PRESSURE_POINT_CHAIN, SON_WHIRLWIND_COMBO_1, TAE_FINGER_LOCK_TWIST, TAE_FLOWING_ARM_BAR, TAE_RIPPLING_ELBOW, TAE_SPIRAL_SHOULDER_THROW, TAE_WRIST_LOCK_STRIKE, getAttackAnimation };
|
|
2311
2311
|
|
|
2312
2312
|
//# sourceMappingURL=StanceAttackAnimations.js.map
|
|
@@ -432,6 +432,6 @@ var TRIGRAM_IDLE_ANIMATIONS_BY_NAME = /* @__PURE__ */ new Map([
|
|
|
432
432
|
]);
|
|
433
433
|
BREATHING_DURATIONS.GEON, BREATHING_DURATIONS.TAE, BREATHING_DURATIONS.LI, BREATHING_DURATIONS.JIN, BREATHING_DURATIONS.SON, BREATHING_DURATIONS.GAM, BREATHING_DURATIONS.GAN, BREATHING_DURATIONS.GON;
|
|
434
434
|
//#endregion
|
|
435
|
-
export { TRIGRAM_IDLE_ANIMATIONS_BY_NAME };
|
|
435
|
+
export { GAM_IDLE_ANIMATION, GAN_IDLE_ANIMATION, GEON_IDLE_ANIMATION, GON_IDLE_ANIMATION, JIN_IDLE_ANIMATION, LI_IDLE_ANIMATION, SON_IDLE_ANIMATION, TAE_IDLE_ANIMATION, TRIGRAM_IDLE_ANIMATIONS_BY_NAME };
|
|
436
436
|
|
|
437
437
|
//# sourceMappingURL=StanceIdleAnimations.js.map
|
|
@@ -304,6 +304,6 @@ var STANCE_RUN_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
304
304
|
*/
|
|
305
305
|
var STANCE_LOCOMOTION_ANIMATIONS = new Map([...STANCE_WALK_ANIMATIONS, ...STANCE_RUN_ANIMATIONS]);
|
|
306
306
|
//#endregion
|
|
307
|
-
export { STANCE_LOCOMOTION_ANIMATIONS };
|
|
307
|
+
export { GAM_RUN_ANIMATION, GAM_WALK_ANIMATION, GAN_RUN_ANIMATION, GAN_WALK_ANIMATION, GEON_RUN_ANIMATION, GEON_WALK_ANIMATION, GON_RUN_ANIMATION, GON_WALK_ANIMATION, JIN_RUN_ANIMATION, JIN_WALK_ANIMATION, LI_RUN_ANIMATION, LI_WALK_ANIMATION, SON_RUN_ANIMATION, SON_WALK_ANIMATION, STANCE_LOCOMOTION_ANIMATIONS, STANCE_RUN_ANIMATIONS, STANCE_WALK_ANIMATIONS, TAE_RUN_ANIMATION, TAE_WALK_ANIMATION };
|
|
308
308
|
|
|
309
309
|
//# sourceMappingURL=StanceLocomotionAnimations.js.map
|
|
@@ -94,6 +94,6 @@ function getStepAnimation(animationName) {
|
|
|
94
94
|
return STEP_ANIMATIONS.get(animationName);
|
|
95
95
|
}
|
|
96
96
|
//#endregion
|
|
97
|
-
export { getStepAnimation };
|
|
97
|
+
export { STEP_ANIMATIONS, STEP_BACK_ANIMATION, STEP_FORWARD_ANIMATION, STEP_LEFT_ANIMATION, STEP_RIGHT_ANIMATION, getStepAnimation };
|
|
98
98
|
|
|
99
99
|
//# sourceMappingURL=StepSkeletalAnimations.js.map
|
|
@@ -134,6 +134,6 @@ var TAE_STANCE_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
|
134
134
|
["tae_arm_bar", TAE_ARM_BAR]
|
|
135
135
|
]);
|
|
136
136
|
//#endregion
|
|
137
|
-
export { TAE_STANCE_ANIMATIONS };
|
|
137
|
+
export { TAE_CIRCULAR_SIDESTEP, TAE_DIAGONAL_CIRCULAR_APPROACH, TAE_FLEXIBLE_GUARD_TRANSITION, TAE_IDLE_FLOWING, TAE_STANCE_ANIMATIONS };
|
|
138
138
|
|
|
139
139
|
//# sourceMappingURL=TaeStanceAnimations.js.map
|
|
@@ -756,6 +756,6 @@ function getCurrentReachMultiplier(animationType, currentTime) {
|
|
|
756
756
|
return maxReachMultiplier * (1 - Math.pow(2 * normalizedTime - 1, 2));
|
|
757
757
|
}
|
|
758
758
|
//#endregion
|
|
759
|
-
export { getAnimationHitTiming, getCurrentReachMultiplier, isWithinHitWindow };
|
|
759
|
+
export { ANIMATION_HIT_TIMING, getAnimationHitTiming, getCurrentReachMultiplier, isWithinHitWindow };
|
|
760
760
|
|
|
761
761
|
//# sourceMappingURL=AnimationHitTiming.js.map
|
|
@@ -317,6 +317,6 @@ var AnimationPerformanceMonitor = class {
|
|
|
317
317
|
*/
|
|
318
318
|
var performanceMonitor = new AnimationPerformanceMonitor();
|
|
319
319
|
//#endregion
|
|
320
|
-
export { batchUpdateBones, interpolateKeyframeCached, performanceMonitor, precomputeAnimation };
|
|
320
|
+
export { animationCache, batchUpdateBones, interpolateKeyframeCached, performanceMonitor, precomputeAnimation };
|
|
321
321
|
|
|
322
322
|
//# sourceMappingURL=AnimationOptimizations.js.map
|
|
@@ -5,9 +5,9 @@ import { BASIC_ANIMATIONS } from "../catalogs/BasicAnimations.js";
|
|
|
5
5
|
import { COMBO_ANIMATIONS } from "../catalogs/ComboAnimations.js";
|
|
6
6
|
import { DARKOPS_ANIMATIONS } from "../catalogs/DarkOpsAnimations.js";
|
|
7
7
|
import { GAM_FLOW_DEFENSE, GAN_COUNTER_FORTRESS, GAN_IMMOVABLE_BLOCK, GEON_COUNTER_STRIKE, GEON_HIGH_BLOCK, LI_PRECISION_PARRY } from "../catalogs/DefensiveAnimations.js";
|
|
8
|
-
import { ELBOW_KNEE_ANIMATIONS, KIDNEY_KNEE_ANIMATION, SPINAL_ELBOW_ANIMATION, TEMPLE_ELBOW_ANIMATION } from "../catalogs/ElbowKneeAnimations.js";
|
|
9
|
-
import { ARM_BAR_ANIMATION, ELBOW_LOCK_ANIMATION, FINGER_LOCK_ANIMATION, GRAPPLING_ANIMATIONS, HIGH_BLOCK_ANIMATION, HIP_THROW_ANIMATION, REAR_NAKED_CHOKE_ANIMATION, REDIRECT_THROW_ANIMATION, SWEEP_DEFENSE_ANIMATION, WRIST_LOCK_ANIMATION } from "../catalogs/GrapplingAnimations.js";
|
|
10
|
-
import { AXE_KICK_ANIMATION, BACK_KICK_ANIMATION, FLYING_KICK_ANIMATION, KICK_ANIMATIONS, LOW_KICK_ANIMATION, SIDE_KICK_ANIMATION, TORNADO_KICK_ANIMATION } from "../catalogs/KickAnimations.js";
|
|
8
|
+
import { ELBOW_KNEE_ANIMATIONS, ELBOW_UPPERCUT_ANIMATION, KIDNEY_KNEE_ANIMATION, SPINAL_ELBOW_ANIMATION, TEMPLE_ELBOW_ANIMATION } from "../catalogs/ElbowKneeAnimations.js";
|
|
9
|
+
import { ARM_BAR_ANIMATION, BLOCK_ANIMATION, COUNTER_ATTACK_ANIMATION, COUNTER_STRIKE_ANIMATION, ELBOW_LOCK_ANIMATION, FINGER_LOCK_ANIMATION, GRAPPLE_ANIMATION, GRAPPLING_ANIMATIONS, HIGH_BLOCK_ANIMATION, HIP_THROW_ANIMATION, REAR_NAKED_CHOKE_ANIMATION, REDIRECT_THROW_ANIMATION, SLAM_ANIMATION, SWEEP_DEFENSE_ANIMATION, THROW_ANIMATION, WRIST_LOCK_ANIMATION } from "../catalogs/GrapplingAnimations.js";
|
|
10
|
+
import { AXE_KICK_ANIMATION, BACK_KICK_ANIMATION, FLYING_KICK_ANIMATION, JUMPING_KICK_ANIMATION, KICK_ANIMATIONS, LOW_KICK_ANIMATION, SIDE_KICK_ANIMATION, SWEEP_ANIMATION, TORNADO_KICK_ANIMATION } from "../catalogs/KickAnimations.js";
|
|
11
11
|
import { MOVEMENT_ANIMATIONS } from "../catalogs/MovementAnimations.js";
|
|
12
12
|
import { HAMMER_FIST_ANIMATION, HOOK_ANIMATION, PALM_STRIKE_ANIMATION, PUNCH_ANIMATIONS, UPPERCUT_ANIMATION } from "../catalogs/PunchAnimations.js";
|
|
13
13
|
import { LI_STANCE_ANIMATIONS } from "../catalogs/LiStanceAnimations.js";
|
|
@@ -331,6 +331,6 @@ function resolveTechniqueAnimation(technique) {
|
|
|
331
331
|
return "jab";
|
|
332
332
|
}
|
|
333
333
|
//#endregion
|
|
334
|
-
export { ALL_ANIMATIONS, getAnimation, getAnimationByName, getAnimationDurationOrFallback, getAnimationForTechnique, resolveTechniqueAnimation };
|
|
334
|
+
export { ALL_ANIMATIONS, ANIMATION_ID_REGISTRY, ARM_BAR_ANIMATION, AXE_KICK_ANIMATION, BACK_KICK_ANIMATION, BLOCK_ANIMATION, COMBO_ANIMATIONS, COUNTER_ATTACK_ANIMATION, COUNTER_STRIKE_ANIMATION, DARKOPS_ANIMATIONS, ELBOW_KNEE_ANIMATIONS, ELBOW_UPPERCUT_ANIMATION, GRAPPLE_ANIMATION, GRAPPLING_ANIMATIONS, HOOK_ANIMATION, JUMPING_KICK_ANIMATION, KICK_ANIMATIONS, LOW_KICK_ANIMATION, MOVEMENT_ANIMATIONS, PALM_STRIKE_ANIMATION, PUNCH_ANIMATIONS, SIDE_KICK_ANIMATION, SLAM_ANIMATION, STANCE_ANIMATIONS, SWEEP_ANIMATION, THROW_ANIMATION, TORNADO_KICK_ANIMATION, WRIST_LOCK_ANIMATION, getAnimation, getAnimationByName, getAnimationDurationOrFallback, getAnimationForTechnique, resolveTechniqueAnimation };
|
|
335
335
|
|
|
336
336
|
//# sourceMappingURL=AnimationRegistry.js.map
|
|
@@ -949,6 +949,6 @@ function getStanceTransition(from, to) {
|
|
|
949
949
|
}
|
|
950
950
|
initializeStanceTransitions();
|
|
951
951
|
//#endregion
|
|
952
|
-
export { calculateStanceDistance, determineTransitionType, getStanceTransition, isTransitionAllowed };
|
|
952
|
+
export { DEFAULT_TRANSITIONS, STANCE_TRANSITIONS, TRIGRAM_STANCES_ORDER, calculateStanceDistance, createStanceTransition, determineTransitionType, getStanceTransition, initializeStanceTransitions, isTransitionAllowed };
|
|
953
953
|
|
|
954
954
|
//# sourceMappingURL=AnimationTransitions.js.map
|
|
@@ -756,6 +756,6 @@ var TechniqueAnimationMapper = class {
|
|
|
756
756
|
};
|
|
757
757
|
new TechniqueAnimationMapper();
|
|
758
758
|
//#endregion
|
|
759
|
-
export { calculateSpeedModifierForDamage, determineAnimationTypeForTechnique, getAdjustedAnimationDuration, getAnimationNameForType };
|
|
759
|
+
export { TechniqueAnimationMapper, calculateSpeedModifierForDamage, determineAnimationTypeForTechnique, getAdjustedAnimationDuration, getAnimationNameForType };
|
|
760
760
|
|
|
761
761
|
//# sourceMappingURL=TechniqueAnimationMapper.js.map
|
|
@@ -1307,6 +1307,6 @@ function getAnimationForTechniqueOrDefault(techniqueId, fallbackType = Animation
|
|
|
1307
1307
|
};
|
|
1308
1308
|
}
|
|
1309
1309
|
//#endregion
|
|
1310
|
-
export { getAnimationForTechniqueOrDefault };
|
|
1310
|
+
export { TECHNIQUE_ANIMATIONS, getAnimationForTechniqueOrDefault };
|
|
1311
1311
|
|
|
1312
1312
|
//# sourceMappingURL=TechniqueAnimationMapping.js.map
|
|
@@ -113,6 +113,6 @@ function calculateKickPowerFromHipRotation(hipState, kickType) {
|
|
|
113
113
|
return 1 + powerFactor * .4;
|
|
114
114
|
}
|
|
115
115
|
//#endregion
|
|
116
|
-
export { calculateKickPowerFromHipRotation };
|
|
116
|
+
export { ADVANCED_JOINT_CONSTRAINTS, calculateKickPowerFromHipRotation };
|
|
117
117
|
|
|
118
118
|
//# sourceMappingURL=AdvancedJointMovements.js.map
|
|
@@ -308,6 +308,6 @@ var BodyFacingSystem = class {
|
|
|
308
308
|
};
|
|
309
309
|
new BodyFacingSystem();
|
|
310
310
|
//#endregion
|
|
311
|
-
export { calculateAngleToTarget, createDefaultBodyFacing, getHeadAngleRadians, lockFacing, unlockFacing, updateFacingTowardOpponent };
|
|
311
|
+
export { BodyFacingSystem, HEAD_TRACKING_SMOOTHING, calculateAngleDifference, calculateAngleToTarget, createDefaultBodyFacing, getHeadAngleRadians, lockFacing, normalizeAngle, unlockFacing, updateBodyFacing, updateFacingTowardOpponent };
|
|
312
312
|
|
|
313
313
|
//# sourceMappingURL=BodyFacingSystem.js.map
|
|
@@ -422,6 +422,6 @@ var MuscleActivationManager = class {
|
|
|
422
422
|
}
|
|
423
423
|
};
|
|
424
424
|
//#endregion
|
|
425
|
-
export { MuscleActivationManager, getMuscleTensionForStance };
|
|
425
|
+
export { MuscleActivationManager, getMuscleActivationForTechnique, getMuscleTensionForStance };
|
|
426
426
|
|
|
427
427
|
//# sourceMappingURL=MuscleActivation.js.map
|
|
@@ -87,6 +87,6 @@ function getAllBreakingStatusEffectIds() {
|
|
|
87
87
|
return Object.values(BREAKING_STATUS_EFFECT_IDS);
|
|
88
88
|
}
|
|
89
89
|
//#endregion
|
|
90
|
-
export { BREAKING_STATUS_EFFECT_IDS as default, getAllBreakingStatusEffectIds, isBreakingStatusEffectId };
|
|
90
|
+
export { BREAKING_STATUS_EFFECT_IDS, BREAKING_STATUS_EFFECT_IDS as default, getAllBreakingStatusEffectIds, isBreakingStatusEffectId };
|
|
91
91
|
|
|
92
92
|
//# sourceMappingURL=BreakingStatusEffects.js.map
|
|
@@ -339,6 +339,6 @@ var CombatStateSystem = class {
|
|
|
339
339
|
}
|
|
340
340
|
};
|
|
341
341
|
//#endregion
|
|
342
|
-
export { CombatReadinessState, CombatStateSystem as default };
|
|
342
|
+
export { CombatReadinessState, CombatStateSystem, CombatStateSystem as default };
|
|
343
343
|
|
|
344
344
|
//# sourceMappingURL=CombatStateSystem.js.map
|
|
@@ -506,6 +506,6 @@ var ConsciousnessSystem = class {
|
|
|
506
506
|
}
|
|
507
507
|
};
|
|
508
508
|
//#endregion
|
|
509
|
-
export { ConsciousnessLevel, ConsciousnessSystem as default };
|
|
509
|
+
export { ConsciousnessLevel, ConsciousnessSystem, ConsciousnessSystem as default };
|
|
510
510
|
|
|
511
511
|
//# sourceMappingURL=ConsciousnessSystem.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PlayerArchetype, TrigramStance } from "../../types/common.js";
|
|
2
|
-
import CombatSystem from "../CombatSystem.js";
|
|
2
|
+
import { CombatSystem } from "../CombatSystem.js";
|
|
3
3
|
//#region src/systems/combat/TrainingCombatSystem.ts
|
|
4
4
|
/**
|
|
5
5
|
* Training-specific combat system for Korean martial arts practice
|
|
@@ -219,6 +219,6 @@ var TrainingCombatSystem = class extends CombatSystem {
|
|
|
219
219
|
}
|
|
220
220
|
};
|
|
221
221
|
//#endregion
|
|
222
|
-
export { TrainingCombatSystem as default };
|
|
222
|
+
export { TrainingCombatSystem, TrainingCombatSystem as default };
|
|
223
223
|
|
|
224
224
|
//# sourceMappingURL=TrainingCombatSystem.js.map
|