blacktrigram 0.7.67 → 0.7.69
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.map +1 -1
- package/lib/assets/index.css +987 -987
- package/lib/audio/AudioAssetLoader.js.map +1 -1
- package/lib/audio/AudioAssetRegistry.js +2 -2
- package/lib/audio/AudioAssetRegistry.js.map +1 -1
- package/lib/audio/AudioCache.js.map +1 -1
- package/lib/audio/AudioManager.js +1 -1
- package/lib/audio/AudioManager.js.map +1 -1
- package/lib/audio/AudioMonitor.js.map +1 -1
- package/lib/audio/AudioPool.js.map +1 -1
- package/lib/audio/AudioProvider.js.map +1 -1
- package/lib/audio/AudioUtils.js.map +1 -1
- package/lib/audio/BoneImpactAudioMap.js.map +1 -1
- package/lib/components/screens/combat/CombatScreen3D.js +3 -3
- package/lib/components/screens/combat/CombatScreen3D.js.map +1 -1
- package/lib/components/screens/combat/components/controls/CombatControlsPanel.js.map +1 -1
- package/lib/components/screens/combat/components/controls/PauseMenu.js.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodDecals3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodParticles3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodViscosity3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/InternalDamage3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/ParticleAudio3D.js.map +1 -1
- package/lib/components/screens/combat/components/hud/FPSMonitor.js.map +1 -1
- package/lib/components/screens/combat/components/indicators/BalanceIndicator.js.map +1 -1
- package/lib/components/screens/combat/hooks/useAICombat.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatActions.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.js.map +1 -1
- package/lib/components/screens/controls/ControlsScreen3D.js.map +1 -1
- package/lib/components/screens/controls/components/ControlCategoryTabsOverlayHtml.js.map +1 -1
- package/lib/components/screens/endscreen/components/MatchStatisticsDisplayOverlayHtml.js.map +1 -1
- package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.js.map +1 -1
- package/lib/components/screens/endscreen/components/VictoryAnimation3D.js.map +1 -1
- package/lib/components/screens/intro/IntroScreen3D.js +1 -1
- package/lib/components/screens/intro/IntroScreen3D.js.map +1 -1
- package/lib/components/screens/intro/components/AbilityListOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/MenuSectionOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/StatBarOverlayHtml.js.map +1 -1
- package/lib/components/screens/philosophy/PhilosophyScreen3D.js.map +1 -1
- package/lib/components/screens/training/TrainingScreen3D.js +1 -1
- package/lib/components/screens/training/TrainingScreen3D.js.map +1 -1
- package/lib/components/screens/training/components/AnatomyOverlay3D.js.map +1 -1
- package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/HitFeedbackEffect3D.js.map +1 -1
- package/lib/components/screens/training/components/TrainingButtonsOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/TrainingDummy3D.js.map +1 -1
- package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/TrainingStatsOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/VitalPointMarker3D.js.map +1 -1
- package/lib/components/screens/training/hooks/useAttackMovement.js.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingActions.js.map +1 -1
- package/lib/components/shared/mobile/ActionButtons.js.map +1 -1
- package/lib/components/shared/mobile/GestureRecognizerPure.js.map +1 -1
- package/lib/components/shared/mobile/HapticController.js.map +1 -1
- package/lib/components/shared/mobile/StanceWheelPure.js.map +1 -1
- package/lib/components/shared/mobile/VirtualDPad.js.map +1 -1
- package/lib/components/shared/three/anatomy/BoneAttachedMuscles.js.map +1 -1
- package/lib/components/shared/three/anatomy/BoneClothing.js.map +1 -1
- package/lib/components/shared/three/anatomy/BoneRenderer.js.map +1 -1
- package/lib/components/shared/three/anatomy/Face3D.js.map +1 -1
- package/lib/components/shared/three/effects/ActionFeedback.js.map +1 -1
- package/lib/components/shared/three/effects/DamageNumbers.js.map +1 -1
- package/lib/components/shared/three/effects/HitEffects3D.js.map +1 -1
- package/lib/components/shared/three/effects/StanceTransitionEffect.js.map +1 -1
- package/lib/components/shared/three/effects/VitalPointMarkers3D.js.map +1 -1
- package/lib/components/shared/three/indicators/ElementalColorSystem.js.map +1 -1
- package/lib/components/shared/three/indicators/GuardIndicator.js.map +1 -1
- package/lib/components/shared/three/scene/CombatArena3D.js.map +1 -1
- package/lib/components/shared/three/ui/BodyPartHealthDisplay.js.map +1 -1
- package/lib/components/shared/three/ui/CombatReadinessBar.js.map +1 -1
- package/lib/components/shared/three/ui/HealthBar.js.map +1 -1
- package/lib/components/shared/three/ui/PlayerHUD.js.map +1 -1
- package/lib/components/shared/three/ui/SpeedIndicatorHUD.js.map +1 -1
- package/lib/components/shared/three/ui/StaminaBar.js.map +1 -1
- package/lib/components/shared/three/ui/TechniqueCard.js.map +1 -1
- package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.js.map +1 -1
- package/lib/components/shared/ui/SplashScreen.js +2 -2
- package/lib/components/shared/ui/VitalPointOverlayControlsPure.js.map +1 -1
- package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.js.map +1 -1
- package/lib/data/techniques.js.map +1 -1
- package/lib/hooks/useCombatTimer.js.map +1 -1
- package/lib/hooks/useKeyboardControls.js.map +1 -1
- package/lib/hooks/useSkeletalAnimation.js +2 -2
- package/lib/hooks/useSkeletalAnimation.js.map +1 -1
- package/lib/hooks/useTechniqueSelection.js.map +1 -1
- package/lib/hooks/useWebGLContextLossHandler.js.map +1 -1
- package/lib/index.js +2 -2
- package/lib/systems/CombatSystem.js.map +1 -1
- package/lib/systems/EffectCalculator.js.map +1 -1
- package/lib/systems/ResponsiveScaling.js.map +1 -1
- package/lib/systems/TrigramSystem.js.map +1 -1
- package/lib/systems/ai/AIPersonality.js.map +1 -1
- package/lib/systems/ai/ArchetypeEnforcer.js.map +1 -1
- package/lib/systems/ai/DecisionTree.js.map +1 -1
- package/lib/systems/animation/builders/KeyframeConfig.js.map +1 -1
- package/lib/systems/animation/builders/KeyframeInterpolation.js.map +1 -1
- package/lib/systems/animation/builders/MartialArtsAnimationBuilder.js.map +1 -1
- package/lib/systems/animation/builders/SkeletonRig.js +1 -1
- package/lib/systems/animation/builders/SkeletonRig.js.map +1 -1
- package/lib/systems/animation/catalogs/AttackAnimations.js +1 -1
- package/lib/systems/animation/catalogs/AttackAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/BasicAnimations.js +1 -1
- package/lib/systems/animation/catalogs/BasicAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/ComboAnimations.js +1 -1
- package/lib/systems/animation/catalogs/ComboAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/DarkOpsAnimations.js +1 -1
- package/lib/systems/animation/catalogs/DarkOpsAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/DefensiveAnimations.js +2 -11
- package/lib/systems/animation/catalogs/DefensiveAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/ElbowKneeAnimations.js +1 -1
- package/lib/systems/animation/catalogs/ElbowKneeAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/FootworkSkeletalAnimations.js +1 -1
- package/lib/systems/animation/catalogs/FootworkSkeletalAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/GamRedirectionAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/GamStanceAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/GamTechniqueAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/GanStanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/GanStanceAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/GanTechniqueAnimations.js +1 -1
- package/lib/systems/animation/catalogs/GanTechniqueAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/GeonStanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/GeonStanceAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/GonTechniqueAnimations.js +1 -1
- package/lib/systems/animation/catalogs/GonTechniqueAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/GrapplingAnimations.js +1 -1
- package/lib/systems/animation/catalogs/GrapplingAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/JinStanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/JinStanceAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/JinTechniqueAnimations.js +1 -1
- package/lib/systems/animation/catalogs/JinTechniqueAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/KickAnimations.js +1 -1
- package/lib/systems/animation/catalogs/KickAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/LiStanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/LiStanceAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/LiTechniqueAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/MovementAnimations.js +1 -1
- package/lib/systems/animation/catalogs/MovementAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/PunchAnimations.js +1 -1
- package/lib/systems/animation/catalogs/PunchAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/SonStanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/SonStanceAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/SonTechniqueAnimations.js +1 -1
- package/lib/systems/animation/catalogs/SonTechniqueAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/SpecializedPunchAnimations.js +1 -1
- package/lib/systems/animation/catalogs/SpecializedPunchAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/StanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/StanceAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/StanceAttackAnimations.js +215 -272
- package/lib/systems/animation/catalogs/StanceAttackAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/StanceIdleAnimations.js +2 -11
- package/lib/systems/animation/catalogs/StanceIdleAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/StanceLocomotionAnimations.js +2 -2
- package/lib/systems/animation/catalogs/StanceLocomotionAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/StepSkeletalAnimations.js +1 -1
- package/lib/systems/animation/catalogs/StepSkeletalAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/TaeJointLockAnimations.js.map +1 -1
- package/lib/systems/animation/catalogs/TaeStanceAnimations.js +1 -1
- package/lib/systems/animation/catalogs/TaeStanceAnimations.js.map +1 -1
- package/lib/systems/animation/core/AnimationOptimizations.js +1 -1
- package/lib/systems/animation/core/AnimationOptimizations.js.map +1 -1
- package/lib/systems/animation/core/AnimationPriority.js.map +1 -1
- package/lib/systems/animation/core/AnimationRegistry.js +11 -209
- package/lib/systems/animation/core/AnimationRegistry.js.map +1 -1
- package/lib/systems/animation/core/AnimationStateMachine.js +2 -2
- package/lib/systems/animation/core/AnimationStateMachine.js.map +1 -1
- package/lib/systems/animation/core/TechniqueAnimationMapper.js +1 -1
- package/lib/systems/animation/core/TechniqueAnimationMapper.js.map +1 -1
- package/lib/systems/animation/core/TechniqueAnimationMapping.js +1 -1
- package/lib/systems/animation/core/TechniqueAnimationMapping.js.map +1 -1
- package/lib/systems/animation/systems/MuscleActivation.js.map +1 -1
- package/lib/systems/bodypart/BodyPartDamageIntegration.js.map +1 -1
- package/lib/systems/bodypart/BodyPartHealthSystem.js.map +1 -1
- package/lib/systems/bodypart/BodyPartPositionMapping.js.map +1 -1
- package/lib/systems/bodypart/InjuryTracker.js.map +1 -1
- package/lib/systems/breathing/BreathingDisruptionSystem.js.map +1 -1
- package/lib/systems/combat/BalanceSystem.js.map +1 -1
- package/lib/systems/combat/BreakingStatusEffects.js.map +1 -1
- package/lib/systems/combat/CombatStateSystem.js.map +1 -1
- package/lib/systems/combat/GrappleSystem.js.map +1 -1
- package/lib/systems/combat/painConsciousnessUtils.js.map +1 -1
- package/lib/systems/combat/typeGuards.js.map +1 -1
- package/lib/systems/index.js +2 -2
- package/lib/systems/movement/integration.js.map +1 -1
- package/lib/systems/physics/AttackMovementPhysics.js.map +1 -1
- package/lib/systems/physics/CollisionDetection.js +1 -1
- package/lib/systems/physics/CollisionDetection.js.map +1 -1
- package/lib/systems/physics/KnockbackPhysics.js.map +1 -1
- package/lib/systems/physics/MovementPhysics.js.map +1 -1
- package/lib/systems/physics/PhysicalReachCalculator.js.map +1 -1
- package/lib/systems/physics/SpeedModifierSystem.js.map +1 -1
- package/lib/systems/trigram/KoreanTechniques.js.map +1 -1
- package/lib/systems/trigram/StanceManager.js.map +1 -1
- package/lib/systems/trigram/TransitionCalculator.js.map +1 -1
- package/lib/systems/trigram/TrigramCalculator.js.map +1 -1
- package/lib/systems/trigram/techniques/TechniqueConfig.js.map +1 -1
- package/lib/systems/trigram/techniques/index.js.map +1 -1
- package/lib/systems/trigram/types.js.map +1 -1
- package/lib/systems/vitalpoint/DamageCalculator.js.map +1 -1
- package/lib/systems/vitalpoint/KoreanAnatomy.js.map +1 -1
- package/lib/systems/vitalpoint/KoreanVitalPoints.js.map +1 -1
- package/lib/systems/vitalpoint/MeridianVitalPointMapping.js.map +1 -1
- package/lib/types/constants/designSystem.js.map +1 -1
- package/lib/utils/colorHelpers.js.map +1 -1
- package/lib/utils/colorUtils.js.map +1 -1
- package/lib/utils/controlMapping.js.map +1 -1
- package/lib/utils/deviceDetection.js.map +1 -1
- package/lib/utils/effectUtils.js.map +1 -1
- package/lib/utils/fabricTextures.js.map +1 -1
- package/lib/utils/htmlOverlayHelpers.js.map +1 -1
- package/lib/utils/performance/PerformanceMonitor.js.map +1 -1
- package/lib/utils/performance/PerformanceOverlay3D.js.map +1 -1
- package/lib/utils/safeAreaUtils.js.map +1 -1
- package/lib/utils/stanceHelpers.js.map +1 -1
- package/lib/utils/visualEffects.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpecializedPunchAnimations.js","names":[],"sources":["../../../../src/systems/animation/catalogs/SpecializedPunchAnimations.ts"],"sourcesContent":["/**\n * Specialized Punch Animations Module\n *\n * Unique punch variant animations for different martial arts techniques.\n * Each animation has distinct biomechanics to visually differentiate techniques.\n *\n * 특수 주먹 기술 애니메이션 모듈 - 각 기술마다 고유한 동작\n *\n * @module systems/animation/SpecializedPunchAnimations\n * @korean 특수주먹애니메이션\n */\n\nimport type { SkeletalAnimation } from \"@/types/skeletal\";\nimport { BoneName } from \"@/types/skeletal\";\nimport {\n MartialArtsAnimationBuilder,\n TECHNIQUE_TIMING,\n} from \"../builders/MartialArtsAnimationBuilder\";\n\n// ═══════════════════════════════════════════════════════════════════════════\n// SPEAR HAND STRIKES (관수) - Finger Thrust Techniques\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Spear Hand Strike - 관수 (Gwansu)\n *\n * Extended finger thrust targeting soft tissue.\n * Li stance technique for precise nerve/pressure point attacks.\n *\n * Distinct from jab:\n * - Fingers extended, not fist\n * - Thrust trajectory (linear), not punch arc\n * - Targets throat, eyes, solar plexus\n *\n * @korean 관수애니메이션\n */\nexport const SPEAR_HAND_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"spear_hand_strike\", \"관수\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.2, 0, -0.3)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.2)\n .rotate(BoneName.WRIST_R, -0.3, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0, 0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .rotate(BoneName.WRIST_R, -0.2, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.3, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.02)\n .rotate(BoneName.WRIST_R, -0.15, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.35, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// NERVE STRIKES (신경타격) - Pressure Point Attacks\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Nerve Strike - 신경타격\n *\n * Precise single-knuckle strike to nerve clusters.\n * Li stance precision technique.\n *\n * Distinct from jab:\n * - Single knuckle formation (phoenix eye fist)\n * - Shorter range, more precise\n * - Snap motion, not power punch\n *\n * @korean 신경타격애니메이션\n */\nexport const NERVE_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"nerve_strike\", \"신경타격\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.08, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.1, 0, -0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.4)\n .rotate(BoneName.WRIST_R, 0.2, 0, 0.3)\n .done<MartialArtsAnimationBuilder>()\n .at(0.2, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.1, 0, 0.05)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .rotate(BoneName.WRIST_R, 0.15, 0, 0.25)\n .rotate(BoneName.SPINE_UPPER, 0, 0.2, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.28, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.12, 0, 0.08)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.WRIST_R, 0.1, 0, 0.2)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Pressure Point Strike - 급소타격\n *\n * Targeted strike to pressure points.\n * Uses thumb or knuckle for precision.\n *\n * @korean 급소타격애니메이션\n */\nexport const PRESSURE_POINT_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"pressure_point_strike\", \"급소타격\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.05, -0.1, -0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.3)\n .rotate(BoneName.WRIST_R, 0.3, 0.1, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.05, 0.1, 0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.2)\n .rotate(BoneName.WRIST_R, 0.2, 0.05, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.15, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.08, 0.12, 0.12)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .rotate(BoneName.WRIST_R, 0.15, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// LIGHTNING/THUNDER STRIKES (번개/천둥타격) - Explosive Power\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Lightning Strike - 번개타격\n *\n * Jin stance explosive straight punch.\n * Maximum speed with electric-fast execution.\n *\n * Distinct from jab:\n * - Full body commitment\n * - Explosive hip rotation\n * - Longer wind-up for power\n *\n * @korean 번개타격애니메이션\n */\nexport const LIGHTNING_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"lightning_strike\", \"번개타격\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.12, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.2, 0, -0.35)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.5)\n .rotate(BoneName.PELVIS, 0, -0.2, 0)\n .rotate(BoneName.SPINE_LOWER, 0, -0.15, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.3, 0, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.08)\n .rotate(BoneName.PELVIS, 0, 0.35, 0)\n .rotate(BoneName.SPINE_LOWER, 0, 0.25, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.45, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.32, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.35, 0, 0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.03)\n .rotate(BoneName.PELVIS, 0, 0.4, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.5, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Heaven Strike - 천격\n *\n * Geon stance descending power strike.\n * Downward trajectory with gravitational force.\n *\n * Distinct from cross:\n * - Descending arc trajectory\n * - More vertical shoulder rotation\n * - Hammer-like impact\n *\n * @korean 천격애니메이션\n */\nexport const HEAVEN_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"heaven_strike\", \"천격\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.15, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.5, 0, -0.4)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.8)\n .rotate(BoneName.SPINE_UPPER, -0.1, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.4, 0, 0.3)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.SPINE_UPPER, 0.15, 0.3, 0)\n .rotate(BoneName.PELVIS, 0, 0.25, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.45, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.5, 0, 0.35)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .rotate(BoneName.SPINE_UPPER, 0.2, 0.35, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// FLOWING STRIKES (유수타격) - Circular/Continuous Motion\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Flowing Cross - 유수교차\n *\n * Tae/Gam stance circular cross punch.\n * Uses opponent's energy with redirection.\n *\n * Distinct from cross:\n * - Circular trajectory instead of linear\n * - Less hip commitment, more arm flow\n * - Can chain into grappling\n *\n * @korean 유수교차애니메이션\n */\nexport const FLOWING_CROSS_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"flowing_cross\", \"유수교차\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.12, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.1, -0.2, -0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.3)\n .rotate(BoneName.SPINE_UPPER, 0, -0.2, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.3, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0.15, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.2)\n .rotate(BoneName.WRIST_R, 0, -0.2, 0.1)\n .rotate(BoneName.SPINE_UPPER, 0, 0.25, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.45, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0.1, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .rotate(BoneName.SPINE_UPPER, 0, 0.3, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Rapid Barrage - 연타\n *\n * Son stance multiple rapid punches.\n * Continuous wind-like pressure.\n *\n * @korean 연타애니메이션\n */\nexport const RAPID_BARRAGE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"rapid_barrage\", \"연타\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.08, \"ease-out\")\n .rotate(BoneName.SHOULDER_L, 0.2, 0, 0.1)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.1)\n .done<MartialArtsAnimationBuilder>()\n .at(0.16, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0, 0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.SHOULDER_L, -0.1, 0, -0.2)\n .done<MartialArtsAnimationBuilder>()\n .at(0.24, \"ease-out\")\n .rotate(BoneName.SHOULDER_L, 0.25, 0, 0.15)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.08)\n .rotate(BoneName.SHOULDER_R, -0.1, 0, -0.2)\n .done<MartialArtsAnimationBuilder>()\n .at(0.32, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.25, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.08)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Rhythmic Strikes - 리듬타격\n *\n * Son stance patterned strikes.\n * Alternating rhythm for unpredictability.\n *\n * @korean 리듬타격애니메이션\n */\nexport const RHYTHMIC_STRIKES_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"rhythmic_strikes\", \"리듬타격\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.1, \"ease-out\")\n .rotate(BoneName.SHOULDER_L, 0.2, 0, 0.1)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.1)\n .done<MartialArtsAnimationBuilder>()\n .at(0.2, \"linear\")\n .rotate(BoneName.SHOULDER_L, 0.1, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.1, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.4, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.3, 0, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .rotate(BoneName.SPINE_UPPER, 0, 0.4, 0)\n .rotate(BoneName.PELVIS, 0, 0.3, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// PALM STRIKE VARIANTS (장권변형)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Solar Plexus Strike - 명치타격\n *\n * Li stance precision palm to solar plexus.\n * Targets diaphragm for wind knockout.\n *\n * @korean 명치타격애니메이션\n */\nexport const SOLAR_PLEXUS_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"solar_plexus_strike\", \"명치타격\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.15, 0, -0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.4)\n .rotate(BoneName.WRIST_R, -0.4, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.WRIST_R, -0.5, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.25, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.25, 0, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .rotate(BoneName.WRIST_R, -0.6, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Flowing Push - 유수밀기\n *\n * Gam/Son stance redirecting palm.\n * Uses attacker's energy against them.\n *\n * @korean 유수밀기애니메이션\n */\nexport const FLOWING_PUSH_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"flowing_push\", \"유수밀기\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.15, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.05, -0.15, 0)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.0)\n .rotate(BoneName.WRIST_R, -0.3, -0.1, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0.1, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.3)\n .rotate(BoneName.WRIST_R, -0.4, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.2, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.5, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0.15, 0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// DARK OPS STRIKE VARIANTS (암살타격변형)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Throat Strike - 인후타격\n *\n * Dark ops precise strike to trachea.\n * Causes immediate breathing difficulty.\n *\n * @korean 인후타격애니메이션\n */\nexport const THROAT_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"throat_strike\", \"인후타격\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.08, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.1, 0, -0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.3)\n .rotate(BoneName.WRIST_R, 0, 0, 0.3)\n .done<MartialArtsAnimationBuilder>()\n .at(0.2, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0, 0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.WRIST_R, 0, 0, 0.25)\n .done<MartialArtsAnimationBuilder>()\n .at(0.28, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Eye Gouge - 안구공격\n *\n * Dark ops vision attack.\n * Uses extended fingers.\n *\n * @korean 안구공격애니메이션\n */\nexport const EYE_GOUGE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"eye_gouge\", \"안구공격\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.06, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.08, 0, -0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.2)\n .rotate(BoneName.WRIST_R, -0.2, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.15, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.25, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.WRIST_R, -0.3, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.22, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.3, 0, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Nerve Paralysis Strike - 신경마비타격\n *\n * Dark ops debilitating nerve attack.\n * Targets brachial plexus or sciatic nerve.\n *\n * @korean 신경마비타격애니메이션\n */\nexport const NERVE_PARALYSIS_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"nerve_paralysis\", \"신경마비\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.15, -0.1, -0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.4)\n .rotate(BoneName.WRIST_R, 0.2, 0.1, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.1, 0.15, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.2)\n .rotate(BoneName.WRIST_R, 0.15, 0.05, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.38, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.12, 0.18, 0.18)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Liver Disruption - 간장타격\n *\n * Dark ops organ attack.\n * Palm strike under ribs.\n *\n * @korean 간장타격애니메이션\n */\nexport const LIVER_DISRUPTION_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"liver_disruption\", \"간장타격\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.2, 0, -0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.5)\n .rotate(BoneName.SPINE_UPPER, 0.1, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.28, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.3, 0, 0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .rotate(BoneName.WRIST_R, -0.5, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0.15, 0.2, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.38, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.35, 0, 0.3)\n .rotate(BoneName.WRIST_R, -0.6, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Ear Strike - 이타격\n *\n * Dark ops concussive palm cupping strike.\n * Targets ear for vestibular disruption.\n *\n * @korean 이타격애니메이션\n */\nexport const EAR_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"ear_strike\", \"이타격\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.1, 0, -0.4)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.2)\n .rotate(BoneName.WRIST_R, 0, 0, -0.2)\n .done<MartialArtsAnimationBuilder>()\n .at(0.28, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.1, 0.3, 0.35)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.8)\n .rotate(BoneName.SPINE_UPPER, 0, 0.35, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.38, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0.35, 0.4)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.7)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// EXPORT MAP\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Map of all specialized punch animations\n * 특수 주먹 애니메이션 맵\n */\nexport const SPECIALIZED_PUNCH_ANIMATIONS: ReadonlyMap<\n string,\n SkeletalAnimation\n> = new Map([\n // Spear/finger strikes\n [\"spear_hand_strike\", SPEAR_HAND_STRIKE_ANIMATION],\n\n // Nerve/pressure point strikes\n [\"nerve_strike\", NERVE_STRIKE_ANIMATION],\n [\"pressure_point_strike\", PRESSURE_POINT_STRIKE_ANIMATION],\n\n // Lightning/thunder strikes\n [\"lightning_strike\", LIGHTNING_STRIKE_ANIMATION],\n [\"heaven_strike\", HEAVEN_STRIKE_ANIMATION],\n\n // Flowing strikes\n [\"flowing_cross\", FLOWING_CROSS_ANIMATION],\n [\"rapid_barrage\", RAPID_BARRAGE_ANIMATION],\n [\"rhythmic_strikes\", RHYTHMIC_STRIKES_ANIMATION],\n\n // Palm variants\n [\"solar_plexus_strike\", SOLAR_PLEXUS_STRIKE_ANIMATION],\n [\"flowing_push\", FLOWING_PUSH_ANIMATION],\n\n // Dark ops strikes\n [\"throat_strike\", THROAT_STRIKE_ANIMATION],\n [\"eye_gouge\", EYE_GOUGE_ANIMATION],\n [\"nerve_paralysis\", NERVE_PARALYSIS_ANIMATION],\n [\"liver_disruption\", LIVER_DISRUPTION_ANIMATION],\n [\"ear_strike\", EAR_STRIKE_ANIMATION],\n]);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SpecializedPunchAnimations.js","names":[],"sources":["../../../../src/systems/animation/catalogs/SpecializedPunchAnimations.ts"],"sourcesContent":["/**\n * Specialized Punch Animations Module\n *\n * Unique punch variant animations for different martial arts techniques.\n * Each animation has distinct biomechanics to visually differentiate techniques.\n *\n * 특수 주먹 기술 애니메이션 모듈 - 각 기술마다 고유한 동작\n *\n * @module systems/animation/SpecializedPunchAnimations\n * @korean 특수주먹애니메이션\n */\n\nimport type { SkeletalAnimation } from \"@/types/skeletal\";\nimport { BoneName } from \"@/types/skeletal\";\nimport {\n MartialArtsAnimationBuilder,\n TECHNIQUE_TIMING,\n} from \"../builders/MartialArtsAnimationBuilder\";\n\n// ═══════════════════════════════════════════════════════════════════════════\n// SPEAR HAND STRIKES (관수) - Finger Thrust Techniques\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Spear Hand Strike - 관수 (Gwansu)\n *\n * Extended finger thrust targeting soft tissue.\n * Li stance technique for precise nerve/pressure point attacks.\n *\n * Distinct from jab:\n * - Fingers extended, not fist\n * - Thrust trajectory (linear), not punch arc\n * - Targets throat, eyes, solar plexus\n *\n * @korean 관수애니메이션\n */\nexport const SPEAR_HAND_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"spear_hand_strike\", \"관수\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.2, 0, -0.3)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.2)\n .rotate(BoneName.WRIST_R, -0.3, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0, 0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .rotate(BoneName.WRIST_R, -0.2, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.3, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.02)\n .rotate(BoneName.WRIST_R, -0.15, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.35, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// NERVE STRIKES (신경타격) - Pressure Point Attacks\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Nerve Strike - 신경타격\n *\n * Precise single-knuckle strike to nerve clusters.\n * Li stance precision technique.\n *\n * Distinct from jab:\n * - Single knuckle formation (phoenix eye fist)\n * - Shorter range, more precise\n * - Snap motion, not power punch\n *\n * @korean 신경타격애니메이션\n */\nexport const NERVE_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"nerve_strike\", \"신경타격\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.08, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.1, 0, -0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.4)\n .rotate(BoneName.WRIST_R, 0.2, 0, 0.3)\n .done<MartialArtsAnimationBuilder>()\n .at(0.2, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.1, 0, 0.05)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .rotate(BoneName.WRIST_R, 0.15, 0, 0.25)\n .rotate(BoneName.SPINE_UPPER, 0, 0.2, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.28, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.12, 0, 0.08)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.WRIST_R, 0.1, 0, 0.2)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Pressure Point Strike - 급소타격\n *\n * Targeted strike to pressure points.\n * Uses thumb or knuckle for precision.\n *\n * @korean 급소타격애니메이션\n */\nexport const PRESSURE_POINT_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"pressure_point_strike\", \"급소타격\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.05, -0.1, -0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.3)\n .rotate(BoneName.WRIST_R, 0.3, 0.1, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.05, 0.1, 0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.2)\n .rotate(BoneName.WRIST_R, 0.2, 0.05, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.15, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.08, 0.12, 0.12)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .rotate(BoneName.WRIST_R, 0.15, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// LIGHTNING/THUNDER STRIKES (번개/천둥타격) - Explosive Power\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Lightning Strike - 번개타격\n *\n * Jin stance explosive straight punch.\n * Maximum speed with electric-fast execution.\n *\n * Distinct from jab:\n * - Full body commitment\n * - Explosive hip rotation\n * - Longer wind-up for power\n *\n * @korean 번개타격애니메이션\n */\nexport const LIGHTNING_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"lightning_strike\", \"번개타격\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.12, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.2, 0, -0.35)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.5)\n .rotate(BoneName.PELVIS, 0, -0.2, 0)\n .rotate(BoneName.SPINE_LOWER, 0, -0.15, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.3, 0, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.08)\n .rotate(BoneName.PELVIS, 0, 0.35, 0)\n .rotate(BoneName.SPINE_LOWER, 0, 0.25, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.45, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.32, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.35, 0, 0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.03)\n .rotate(BoneName.PELVIS, 0, 0.4, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.5, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Heaven Strike - 천격\n *\n * Geon stance descending power strike.\n * Downward trajectory with gravitational force.\n *\n * Distinct from cross:\n * - Descending arc trajectory\n * - More vertical shoulder rotation\n * - Hammer-like impact\n *\n * @korean 천격애니메이션\n */\nexport const HEAVEN_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"heaven_strike\", \"천격\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.15, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.5, 0, -0.4)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.8)\n .rotate(BoneName.SPINE_UPPER, -0.1, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.4, 0, 0.3)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.SPINE_UPPER, 0.15, 0.3, 0)\n .rotate(BoneName.PELVIS, 0, 0.25, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.45, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.5, 0, 0.35)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .rotate(BoneName.SPINE_UPPER, 0.2, 0.35, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// FLOWING STRIKES (유수타격) - Circular/Continuous Motion\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Flowing Cross - 유수교차\n *\n * Tae/Gam stance circular cross punch.\n * Uses opponent's energy with redirection.\n *\n * Distinct from cross:\n * - Circular trajectory instead of linear\n * - Less hip commitment, more arm flow\n * - Can chain into grappling\n *\n * @korean 유수교차애니메이션\n */\nexport const FLOWING_CROSS_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"flowing_cross\", \"유수교차\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.12, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.1, -0.2, -0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.3)\n .rotate(BoneName.SPINE_UPPER, 0, -0.2, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.3, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0.15, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.2)\n .rotate(BoneName.WRIST_R, 0, -0.2, 0.1)\n .rotate(BoneName.SPINE_UPPER, 0, 0.25, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.45, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0.1, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .rotate(BoneName.SPINE_UPPER, 0, 0.3, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Rapid Barrage - 연타\n *\n * Son stance multiple rapid punches.\n * Continuous wind-like pressure.\n *\n * @korean 연타애니메이션\n */\nexport const RAPID_BARRAGE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"rapid_barrage\", \"연타\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.08, \"ease-out\")\n .rotate(BoneName.SHOULDER_L, 0.2, 0, 0.1)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.1)\n .done<MartialArtsAnimationBuilder>()\n .at(0.16, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0, 0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.SHOULDER_L, -0.1, 0, -0.2)\n .done<MartialArtsAnimationBuilder>()\n .at(0.24, \"ease-out\")\n .rotate(BoneName.SHOULDER_L, 0.25, 0, 0.15)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.08)\n .rotate(BoneName.SHOULDER_R, -0.1, 0, -0.2)\n .done<MartialArtsAnimationBuilder>()\n .at(0.32, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.25, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.08)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Rhythmic Strikes - 리듬타격\n *\n * Son stance patterned strikes.\n * Alternating rhythm for unpredictability.\n *\n * @korean 리듬타격애니메이션\n */\nexport const RHYTHMIC_STRIKES_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"rhythmic_strikes\", \"리듬타격\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.1, \"ease-out\")\n .rotate(BoneName.SHOULDER_L, 0.2, 0, 0.1)\n .rotate(BoneName.ELBOW_L, 0, 0, -0.1)\n .done<MartialArtsAnimationBuilder>()\n .at(0.2, \"linear\")\n .rotate(BoneName.SHOULDER_L, 0.1, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.1, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.4, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.3, 0, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .rotate(BoneName.SPINE_UPPER, 0, 0.4, 0)\n .rotate(BoneName.PELVIS, 0, 0.3, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// PALM STRIKE VARIANTS (장권변형)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Solar Plexus Strike - 명치타격\n *\n * Li stance precision palm to solar plexus.\n * Targets diaphragm for wind knockout.\n *\n * @korean 명치타격애니메이션\n */\nexport const SOLAR_PLEXUS_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"solar_plexus_strike\", \"명치타격\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.15, 0, -0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.4)\n .rotate(BoneName.WRIST_R, -0.4, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.WRIST_R, -0.5, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.25, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.25, 0, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .rotate(BoneName.WRIST_R, -0.6, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Flowing Push - 유수밀기\n *\n * Gam/Son stance redirecting palm.\n * Uses attacker's energy against them.\n *\n * @korean 유수밀기애니메이션\n */\nexport const FLOWING_PUSH_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"flowing_push\", \"유수밀기\")\n .asAttack(TECHNIQUE_TIMING.MEDIUM.total)\n .at(0.15, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.05, -0.15, 0)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.0)\n .rotate(BoneName.WRIST_R, -0.3, -0.1, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.35, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0.1, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.3)\n .rotate(BoneName.WRIST_R, -0.4, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0, 0.2, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.5, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0.15, 0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// DARK OPS STRIKE VARIANTS (암살타격변형)\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Throat Strike - 인후타격\n *\n * Dark ops precise strike to trachea.\n * Causes immediate breathing difficulty.\n *\n * @korean 인후타격애니메이션\n */\nexport const THROAT_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"throat_strike\", \"인후타격\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.08, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.1, 0, -0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.3)\n .rotate(BoneName.WRIST_R, 0, 0, 0.3)\n .done<MartialArtsAnimationBuilder>()\n .at(0.2, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0, 0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.WRIST_R, 0, 0, 0.25)\n .done<MartialArtsAnimationBuilder>()\n .at(0.28, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.2, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Eye Gouge - 안구공격\n *\n * Dark ops vision attack.\n * Uses extended fingers.\n *\n * @korean 안구공격애니메이션\n */\nexport const EYE_GOUGE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"eye_gouge\", \"안구공격\")\n .asAttack(TECHNIQUE_TIMING.FAST.total)\n .at(0.06, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.08, 0, -0.1)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.2)\n .rotate(BoneName.WRIST_R, -0.2, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.15, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.25, 0, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.1)\n .rotate(BoneName.WRIST_R, -0.3, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.22, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.3, 0, 0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.05)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Nerve Paralysis Strike - 신경마비타격\n *\n * Dark ops debilitating nerve attack.\n * Targets brachial plexus or sciatic nerve.\n *\n * @korean 신경마비타격애니메이션\n */\nexport const NERVE_PARALYSIS_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"nerve_paralysis\", \"신경마비\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.15, -0.1, -0.2)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.4)\n .rotate(BoneName.WRIST_R, 0.2, 0.1, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.25, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.1, 0.15, 0.15)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.2)\n .rotate(BoneName.WRIST_R, 0.15, 0.05, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.38, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.12, 0.18, 0.18)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Liver Disruption - 간장타격\n *\n * Dark ops organ attack.\n * Palm strike under ribs.\n *\n * @korean 간장타격애니메이션\n */\nexport const LIVER_DISRUPTION_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"liver_disruption\", \"간장타격\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.2, 0, -0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.5)\n .rotate(BoneName.SPINE_UPPER, 0.1, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.28, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.3, 0, 0.25)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.15)\n .rotate(BoneName.WRIST_R, -0.5, 0, 0)\n .rotate(BoneName.SPINE_UPPER, 0.15, 0.2, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.38, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.35, 0, 0.3)\n .rotate(BoneName.WRIST_R, -0.6, 0, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n/**\n * Ear Strike - 이타격\n *\n * Dark ops concussive palm cupping strike.\n * Targets ear for vestibular disruption.\n *\n * @korean 이타격애니메이션\n */\nexport const EAR_STRIKE_ANIMATION: SkeletalAnimation =\n MartialArtsAnimationBuilder.create(\"ear_strike\", \"이타격\")\n .asAttack(TECHNIQUE_TIMING.FAST_MEDIUM.total)\n .at(0.1, \"ease-in\")\n .rotate(BoneName.SHOULDER_R, -0.1, 0, -0.4)\n .rotate(BoneName.ELBOW_R, 0, 0, -1.2)\n .rotate(BoneName.WRIST_R, 0, 0, -0.2)\n .done<MartialArtsAnimationBuilder>()\n .at(0.28, \"ease-out\")\n .rotate(BoneName.SHOULDER_R, 0.1, 0.3, 0.35)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.8)\n .rotate(BoneName.SPINE_UPPER, 0, 0.35, 0)\n .done<MartialArtsAnimationBuilder>()\n .at(0.38, \"linear\")\n .rotate(BoneName.SHOULDER_R, 0.15, 0.35, 0.4)\n .rotate(BoneName.ELBOW_R, 0, 0, -0.7)\n .done<MartialArtsAnimationBuilder>()\n .at(TECHNIQUE_TIMING.FAST_MEDIUM.total, \"ease-in\")\n .withGuard(\"MIDDLE_GUARD\")\n .done<MartialArtsAnimationBuilder>()\n .build();\n\n// ═══════════════════════════════════════════════════════════════════════════\n// EXPORT MAP\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Map of all specialized punch animations\n * 특수 주먹 애니메이션 맵\n */\nexport const SPECIALIZED_PUNCH_ANIMATIONS: ReadonlyMap<\n string,\n SkeletalAnimation\n> = new Map([\n // Spear/finger strikes\n [\"spear_hand_strike\", SPEAR_HAND_STRIKE_ANIMATION],\n\n // Nerve/pressure point strikes\n [\"nerve_strike\", NERVE_STRIKE_ANIMATION],\n [\"pressure_point_strike\", PRESSURE_POINT_STRIKE_ANIMATION],\n\n // Lightning/thunder strikes\n [\"lightning_strike\", LIGHTNING_STRIKE_ANIMATION],\n [\"heaven_strike\", HEAVEN_STRIKE_ANIMATION],\n\n // Flowing strikes\n [\"flowing_cross\", FLOWING_CROSS_ANIMATION],\n [\"rapid_barrage\", RAPID_BARRAGE_ANIMATION],\n [\"rhythmic_strikes\", RHYTHMIC_STRIKES_ANIMATION],\n\n // Palm variants\n [\"solar_plexus_strike\", SOLAR_PLEXUS_STRIKE_ANIMATION],\n [\"flowing_push\", FLOWING_PUSH_ANIMATION],\n\n // Dark ops strikes\n [\"throat_strike\", THROAT_STRIKE_ANIMATION],\n [\"eye_gouge\", EYE_GOUGE_ANIMATION],\n [\"nerve_paralysis\", NERVE_PARALYSIS_ANIMATION],\n [\"liver_disruption\", LIVER_DISRUPTION_ANIMATION],\n [\"ear_strike\", EAR_STRIKE_ANIMATION],\n]);\n"],"mappings":"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"}
|
|
@@ -749,7 +749,7 @@ var createGonStance = () => {
|
|
|
749
749
|
* Map of all stance-specific animations for easy access
|
|
750
750
|
* 자세별 애니메이션 맵
|
|
751
751
|
*/
|
|
752
|
-
var STANCE_ANIMATIONS = new Map([
|
|
752
|
+
var STANCE_ANIMATIONS = /* @__PURE__ */ new Map([
|
|
753
753
|
["stance_geon", createGeonStance()],
|
|
754
754
|
["stance_tae", createTaeStance()],
|
|
755
755
|
["stance_li", createLiStance()],
|