blacktrigram 0.7.44 → 0.7.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/audio/AudioManager.d.ts +26 -0
- package/lib/audio/AudioManager.d.ts.map +1 -1
- package/lib/audio/AudioManager.js +26 -0
- package/lib/audio/AudioManager.js.map +1 -1
- package/lib/audio/index.d.ts.map +1 -1
- package/lib/audio/index.js.map +1 -1
- package/lib/audio/types.d.ts +18 -2
- package/lib/audio/types.d.ts.map +1 -1
- package/lib/audio/types.js +1 -0
- package/lib/audio/types.js.map +1 -1
- package/lib/components/effects/WindParticles3D.d.ts.map +1 -1
- package/lib/components/index.d.ts.map +1 -1
- package/lib/components/index.js.map +1 -1
- package/lib/components/screens/combat/CombatScreen3D.d.ts.map +1 -1
- package/lib/components/screens/combat/CombatScreen3D.js.map +1 -1
- package/lib/components/screens/combat/components/controls/KeyboardHints.d.ts +0 -1
- package/lib/components/screens/combat/components/controls/KeyboardHints.d.ts.map +1 -1
- package/lib/components/screens/combat/components/controls/KeyboardHints.js +0 -1
- package/lib/components/screens/combat/components/controls/KeyboardHints.js.map +1 -1
- package/lib/components/screens/combat/components/controls/PauseMenu.d.ts.map +1 -1
- package/lib/components/screens/combat/components/controls/PauseMenu.js.map +1 -1
- package/lib/components/screens/combat/components/effects/ArterialSpray3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodDecals3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodDecals3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.js.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodParticles3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodParticles3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodViscosity3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodViscosity3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/BoneCrackParticles3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.js.map +1 -1
- package/lib/components/screens/combat/components/effects/DustClouds3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/EarthCrackEffect3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/EarthHealingEffect3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/ImpactSparks3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/InternalDamage3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/InternalDamage3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/LiPrecisionTargetingOverlay.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/NerveStrikeParticles3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/PainVignette.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/PainVignette.js.map +1 -1
- package/lib/components/screens/combat/components/effects/ParticleAudio3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/ParticleAudio3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/TraumaOverlay3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/TraumaOverlay3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/WaterRipple3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/WaterWave3D.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/index.d.ts.map +1 -1
- package/lib/components/screens/combat/components/feedback/MatchCountdown.d.ts.map +1 -1
- package/lib/components/screens/combat/components/feedback/MatchCountdown.js.map +1 -1
- package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.js.map +1 -1
- package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.js.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatBottomHUD.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatBottomHUD.js.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatLeftHUD.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatLeftHUD.js.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.js.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatRightHUD.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatRightHUD.js.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatTopHUD.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatTopHUD.js.map +1 -1
- package/lib/components/screens/combat/components/hud/DifficultyIndicator.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/DifficultyIndicator.js.map +1 -1
- package/lib/components/screens/combat/components/hud/FPSMonitor.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/FPSMonitor.js.map +1 -1
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.js.map +1 -1
- package/lib/components/screens/combat/components/indicators/BalanceIndicator.d.ts.map +1 -1
- package/lib/components/screens/combat/components/indicators/BalanceIndicator.js.map +1 -1
- package/lib/components/screens/combat/components/indicators/InputBufferDisplay.d.ts +0 -1
- package/lib/components/screens/combat/components/indicators/InputBufferDisplay.d.ts.map +1 -1
- package/lib/components/screens/combat/components/indicators/InputBufferDisplay.js +0 -1
- package/lib/components/screens/combat/components/indicators/InputBufferDisplay.js.map +1 -1
- package/lib/components/screens/combat/components/indicators/StaminaWarning.d.ts.map +1 -1
- package/lib/components/screens/combat/components/indicators/StaminaWarning.js.map +1 -1
- package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.d.ts +0 -2
- package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.d.ts.map +1 -1
- package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js +0 -1
- package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js.map +1 -1
- package/lib/components/screens/combat/helpers/AnimationUpdater.d.ts.map +1 -1
- package/lib/components/screens/combat/helpers/AnimationUpdater.js.map +1 -1
- package/lib/components/screens/combat/helpers/combatHelpers.d.ts.map +1 -1
- package/lib/components/screens/combat/helpers/combatHelpers.js.map +1 -1
- package/lib/components/screens/combat/hooks/useAICombat.d.ts.map +1 -1
- package/lib/components/screens/combat/hooks/useAICombat.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatActions.d.ts.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatActions.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.d.ts.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatAudio.d.ts.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatAudio.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatLayout.d.ts.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatLayout.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatState.d.ts.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatState.js.map +1 -1
- package/lib/components/screens/combat/hooks/useGrapplingAudio.d.ts.map +1 -1
- package/lib/components/screens/combat/hooks/usePreloadCombatAudio.d.ts.map +1 -1
- package/lib/components/screens/controls/ControlsScreen3D.d.ts.map +1 -1
- package/lib/components/screens/controls/ControlsScreen3D.js.map +1 -1
- package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.js.map +1 -1
- package/lib/components/screens/controls/components/GamepadVisualization3D.d.ts.map +1 -1
- package/lib/components/screens/controls/components/GamepadVisualization3D.js.map +1 -1
- package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.js.map +1 -1
- package/lib/components/screens/controls/components/Key3D.d.ts.map +1 -1
- package/lib/components/screens/controls/components/Key3D.js.map +1 -1
- package/lib/components/screens/controls/components/VisualKeyboard3D.d.ts.map +1 -1
- package/lib/components/screens/controls/components/VisualKeyboard3D.js.map +1 -1
- package/lib/components/screens/controls/constants/ControlsConstants.d.ts.map +1 -1
- package/lib/components/screens/controls/constants/ControlsConstants.js.map +1 -1
- package/lib/components/screens/controls/hooks/useControlsState.d.ts.map +1 -1
- package/lib/components/screens/controls/hooks/useControlsState.js.map +1 -1
- package/lib/components/screens/endscreen/EndScreen3D.d.ts.map +1 -1
- package/lib/components/screens/endscreen/EndScreen3D.js.map +1 -1
- package/lib/components/screens/endscreen/components/DefeatAnimation3D.d.ts.map +1 -1
- package/lib/components/screens/endscreen/components/DefeatAnimation3D.js.map +1 -1
- package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.js.map +1 -1
- package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.js.map +1 -1
- package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.js.map +1 -1
- package/lib/components/screens/endscreen/components/VictoryAnimation3D.d.ts.map +1 -1
- package/lib/components/screens/endscreen/components/VictoryAnimation3D.js.map +1 -1
- package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.js.map +1 -1
- package/lib/components/screens/endscreen/components/index.d.ts.map +1 -1
- package/lib/components/screens/endscreen/index.d.ts.map +1 -1
- package/lib/components/screens/intro/IntroScreen3D.d.ts.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.d.ts.map +1 -1
- package/lib/components/screens/intro/components/AbilityListOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/MenuSectionOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/intro/components/MenuSectionOverlayHtml.js.map +1 -1
- package/lib/components/screens/intro/components/StatBarOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/intro/components/StatBarOverlayHtml.js.map +1 -1
- package/lib/components/screens/philosophy/PhilosophyScreen3D.d.ts.map +1 -1
- package/lib/components/screens/philosophy/PhilosophyScreen3D.js.map +1 -1
- package/lib/components/screens/philosophy/components/InteractiveTrigramGridOverlayHtml.d.ts +0 -1
- package/lib/components/screens/philosophy/components/InteractiveTrigramGridOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/philosophy/components/PhilosophyNavigationOverlayHtml.d.ts +0 -1
- package/lib/components/screens/philosophy/components/PhilosophyNavigationOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/philosophy/components/PhilosophySectionOverlayHtml.d.ts +0 -1
- package/lib/components/screens/philosophy/components/PhilosophySectionOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/philosophy/components/PhilosophyTextOverlayHtml.d.ts +0 -1
- package/lib/components/screens/philosophy/components/PhilosophyTextOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/philosophy/components/TrigramSymbol3D.d.ts +0 -1
- package/lib/components/screens/philosophy/components/TrigramSymbol3D.d.ts.map +1 -1
- package/lib/components/screens/philosophy/components/TrigramVisualization3D.d.ts +0 -1
- package/lib/components/screens/philosophy/components/TrigramVisualization3D.d.ts.map +1 -1
- package/lib/components/screens/philosophy/hooks/usePhilosophyState.d.ts +0 -1
- package/lib/components/screens/philosophy/hooks/usePhilosophyState.d.ts.map +1 -1
- package/lib/components/screens/training/TrainingScreen3D.d.ts.map +1 -1
- package/lib/components/screens/training/TrainingScreen3D.js.map +1 -1
- package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/AnatomyOverlay3D.d.ts.map +1 -1
- package/lib/components/screens/training/components/AnatomyOverlay3D.js.map +1 -1
- package/lib/components/screens/training/components/DamageNumber3D.d.ts.map +1 -1
- package/lib/components/screens/training/components/FootPlacementMarkers3D.d.ts.map +1 -1
- package/lib/components/screens/training/components/FootPlacementMarkers3D.js.map +1 -1
- package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/HitFeedbackEffect3D.d.ts.map +1 -1
- package/lib/components/screens/training/components/HitFeedbackEffect3D.js.map +1 -1
- package/lib/components/screens/training/components/TrainingAICharacter3D.d.ts.map +1 -1
- package/lib/components/screens/training/components/TrainingArena3D.d.ts.map +1 -1
- package/lib/components/screens/training/components/TrainingControlsOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/training/components/TrainingControlsOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/TrainingDummy3D.d.ts.map +1 -1
- package/lib/components/screens/training/components/TrainingDummy3D.js.map +1 -1
- package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/TrainingHitEffects3D.d.ts.map +1 -1
- package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/TrainingStatsOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/training/components/TrainingStatsOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/VitalPointMarker3D.d.ts.map +1 -1
- package/lib/components/screens/training/components/VitalPointMarker3D.js.map +1 -1
- package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.js.map +1 -1
- package/lib/components/screens/training/components/hud/TrainingBottomHUD.d.ts.map +1 -1
- package/lib/components/screens/training/components/hud/TrainingBottomHUD.js.map +1 -1
- package/lib/components/screens/training/components/hud/TrainingLeftHUD.d.ts.map +1 -1
- package/lib/components/screens/training/components/hud/TrainingLeftHUD.js.map +1 -1
- package/lib/components/screens/training/components/hud/TrainingRightHUD.d.ts.map +1 -1
- package/lib/components/screens/training/components/hud/TrainingRightHUD.js.map +1 -1
- package/lib/components/screens/training/components/hud/TrainingTopHUD.d.ts.map +1 -1
- package/lib/components/screens/training/components/hud/TrainingTopHUD.js.map +1 -1
- package/lib/components/screens/training/components/index.d.ts.map +1 -1
- package/lib/components/screens/training/hooks/useAttackMovement.d.ts.map +1 -1
- package/lib/components/screens/training/hooks/useAttackMovement.js.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingActions.d.ts.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingActions.js.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingLayout.d.ts.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingLayout.js.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingState.d.ts.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingState.js.map +1 -1
- package/lib/components/shared/base/AccessibilityProvider.d.ts.map +1 -1
- package/lib/components/shared/base/BaseButton.d.ts.map +1 -1
- package/lib/components/shared/base/BaseButton.js.map +1 -1
- package/lib/components/shared/base/BaseButtonOverlayHtml.d.ts.map +1 -1
- package/lib/components/shared/base/BaseButtonOverlayHtml.js.map +1 -1
- package/lib/components/shared/base/BasePanel.d.ts.map +1 -1
- package/lib/components/shared/base/BasePanel.js.map +1 -1
- package/lib/components/shared/base/BaseText.d.ts.map +1 -1
- package/lib/components/shared/base/BaseText.js.map +1 -1
- package/lib/components/shared/base/ResponsiveContainer.d.ts.map +1 -1
- package/lib/components/shared/base/index.d.ts.map +1 -1
- package/lib/components/shared/base/useKoreanTheme.d.ts.map +1 -1
- package/lib/components/shared/base/useKoreanTheme.js.map +1 -1
- package/lib/components/shared/debug/PerformanceDebugOverlayHtml.d.ts.map +1 -1
- package/lib/components/shared/debug/PerformanceDebugOverlayHtml.js.map +1 -1
- package/lib/components/shared/effects/ScreenFlash.d.ts.map +1 -1
- package/lib/components/shared/mobile/ActionButtons.d.ts.map +1 -1
- package/lib/components/shared/mobile/ActionButtons.js +0 -1
- package/lib/components/shared/mobile/ActionButtons.js.map +1 -1
- package/lib/components/shared/mobile/GestureRecognizerPure.d.ts +0 -1
- package/lib/components/shared/mobile/GestureRecognizerPure.d.ts.map +1 -1
- package/lib/components/shared/mobile/GestureRecognizerPure.js +0 -1
- package/lib/components/shared/mobile/GestureRecognizerPure.js.map +1 -1
- package/lib/components/shared/mobile/HapticController.d.ts +0 -13
- package/lib/components/shared/mobile/HapticController.d.ts.map +1 -1
- package/lib/components/shared/mobile/HapticController.js +0 -10
- package/lib/components/shared/mobile/HapticController.js.map +1 -1
- package/lib/components/shared/mobile/MobileControlsPure.d.ts.map +1 -1
- package/lib/components/shared/mobile/MobileControlsPure.js.map +1 -1
- package/lib/components/shared/mobile/PerformanceMonitor.d.ts +0 -15
- package/lib/components/shared/mobile/PerformanceMonitor.d.ts.map +1 -1
- package/lib/components/shared/mobile/StanceWheelPure.d.ts +0 -1
- package/lib/components/shared/mobile/StanceWheelPure.d.ts.map +1 -1
- package/lib/components/shared/mobile/StanceWheelPure.js +0 -1
- package/lib/components/shared/mobile/StanceWheelPure.js.map +1 -1
- package/lib/components/shared/mobile/TouchOptimizer.d.ts +0 -4
- package/lib/components/shared/mobile/TouchOptimizer.d.ts.map +1 -1
- package/lib/components/shared/mobile/TouchOptimizer.js +0 -3
- package/lib/components/shared/mobile/TouchOptimizer.js.map +1 -1
- package/lib/components/shared/mobile/VirtualDPad.d.ts.map +1 -1
- package/lib/components/shared/mobile/VirtualDPad.js +0 -1
- package/lib/components/shared/mobile/VirtualDPad.js.map +1 -1
- package/lib/components/shared/mobile/index.d.ts.map +1 -1
- package/lib/components/shared/three/anatomy/BodySurface.d.ts.map +1 -1
- package/lib/components/shared/three/anatomy/BodySurface.js.map +1 -1
- package/lib/components/shared/three/anatomy/BoneAttachedMuscles.d.ts.map +1 -1
- package/lib/components/shared/three/anatomy/BoneAttachedMuscles.js.map +1 -1
- package/lib/components/shared/three/anatomy/BoneClothing.d.ts.map +1 -1
- package/lib/components/shared/three/anatomy/BoneClothing.js.map +1 -1
- package/lib/components/shared/three/anatomy/BoneRenderer.d.ts +0 -1
- package/lib/components/shared/three/anatomy/BoneRenderer.d.ts.map +1 -1
- package/lib/components/shared/three/anatomy/BoneRenderer.js.map +1 -1
- package/lib/components/shared/three/anatomy/Face3D.d.ts.map +1 -1
- package/lib/components/shared/three/anatomy/Face3D.js.map +1 -1
- package/lib/components/shared/three/anatomy/Foot3D.d.ts +0 -1
- package/lib/components/shared/three/anatomy/Foot3D.d.ts.map +1 -1
- package/lib/components/shared/three/anatomy/Foot3D.js.map +1 -1
- package/lib/components/shared/three/anatomy/Hand3D.d.ts +0 -1
- package/lib/components/shared/three/anatomy/Hand3D.d.ts.map +1 -1
- package/lib/components/shared/three/anatomy/Hand3D.js.map +1 -1
- package/lib/components/shared/three/effects/ActionFeedback.d.ts.map +1 -1
- package/lib/components/shared/three/effects/ActionFeedback.js.map +1 -1
- package/lib/components/shared/three/effects/DamageNumbers.d.ts.map +1 -1
- package/lib/components/shared/three/effects/DamageNumbers.js.map +1 -1
- package/lib/components/shared/three/effects/ExplosiveBurstEffect3D.d.ts.map +1 -1
- package/lib/components/shared/three/effects/GrapplingIndicator3D.d.ts.map +1 -1
- package/lib/components/shared/three/effects/HitEffects3D.d.ts.map +1 -1
- package/lib/components/shared/three/effects/HitEffects3D.js.map +1 -1
- package/lib/components/shared/three/effects/LimbExposureIndicator3D.d.ts.map +1 -1
- package/lib/components/shared/three/effects/NerveDisruptionEffect3D.d.ts.map +1 -1
- package/lib/components/shared/three/effects/PlayerStateIndicators.d.ts.map +1 -1
- package/lib/components/shared/three/effects/PlayerStateIndicators.js.map +1 -1
- package/lib/components/shared/three/effects/StanceSymbol3D.d.ts.map +1 -1
- package/lib/components/shared/three/effects/StanceSymbol3D.js.map +1 -1
- package/lib/components/shared/three/effects/StanceTransitionEffect.d.ts.map +1 -1
- package/lib/components/shared/three/effects/StanceTransitionEffect.js.map +1 -1
- package/lib/components/shared/three/effects/ThunderEffect3D.d.ts.map +1 -1
- package/lib/components/shared/three/effects/VitalPointMarkers3D.d.ts.map +1 -1
- package/lib/components/shared/three/effects/VitalPointMarkers3D.js.map +1 -1
- package/lib/components/shared/three/index.d.ts.map +1 -1
- package/lib/components/shared/three/indicators/ElementalColorSystem.d.ts +0 -6
- package/lib/components/shared/three/indicators/ElementalColorSystem.d.ts.map +1 -1
- package/lib/components/shared/three/indicators/ElementalColorSystem.js +0 -4
- package/lib/components/shared/three/indicators/ElementalColorSystem.js.map +1 -1
- package/lib/components/shared/three/indicators/GuardIndicator.d.ts +0 -1
- package/lib/components/shared/three/indicators/GuardIndicator.d.ts.map +1 -1
- package/lib/components/shared/three/indicators/GuardIndicator.js +0 -1
- package/lib/components/shared/three/indicators/GuardIndicator.js.map +1 -1
- package/lib/components/shared/three/indicators/HapticFeedback.d.ts +0 -7
- package/lib/components/shared/three/indicators/HapticFeedback.d.ts.map +1 -1
- package/lib/components/shared/three/indicators/HapticFeedback.js +0 -2
- package/lib/components/shared/three/indicators/HapticFeedback.js.map +1 -1
- package/lib/components/shared/three/indicators/StanceChangeIndicator.d.ts +0 -1
- package/lib/components/shared/three/indicators/StanceChangeIndicator.d.ts.map +1 -1
- package/lib/components/shared/three/indicators/StanceChangeIndicator.js +0 -1
- package/lib/components/shared/three/indicators/StanceChangeIndicator.js.map +1 -1
- package/lib/components/shared/three/indicators/TrigramSymbol3D.d.ts +0 -1
- package/lib/components/shared/three/indicators/TrigramSymbol3D.d.ts.map +1 -1
- package/lib/components/shared/three/models/Player3DWithTransitions.d.ts.map +1 -1
- package/lib/components/shared/three/models/Player3DWithTransitions.js.map +1 -1
- package/lib/components/shared/three/models/SkeletalPlayer3D.d.ts.map +1 -1
- package/lib/components/shared/three/models/SkeletalPlayer3D.js.map +1 -1
- package/lib/components/shared/three/optimization/AdaptiveQuality.d.ts.map +1 -1
- package/lib/components/shared/three/optimization/AdaptiveQuality.js.map +1 -1
- package/lib/components/shared/three/optimization/InstancedGeometry.d.ts.map +1 -1
- package/lib/components/shared/three/optimization/LODSystem.d.ts.map +1 -1
- package/lib/components/shared/three/scene/AtmosphericParticles3D.d.ts.map +1 -1
- package/lib/components/shared/three/scene/AtmosphericParticles3D.js.map +1 -1
- package/lib/components/shared/three/scene/BackgroundScene3D.d.ts.map +1 -1
- package/lib/components/shared/three/scene/BackgroundScene3D.js.map +1 -1
- package/lib/components/shared/three/scene/CombatArena3D.d.ts.map +1 -1
- package/lib/components/shared/three/scene/CombatArena3D.js.map +1 -1
- package/lib/components/shared/three/scene/DebugCollision.d.ts +0 -2
- package/lib/components/shared/three/scene/DebugCollision.d.ts.map +1 -1
- package/lib/components/shared/three/scene/KoreanSignage3D.d.ts.map +1 -1
- package/lib/components/shared/three/scene/KoreanSignage3D.js.map +1 -1
- package/lib/components/shared/three/ui/ArchetypeCard.d.ts.map +1 -1
- package/lib/components/shared/three/ui/ArchetypeCard.js.map +1 -1
- package/lib/components/shared/three/ui/BodyPartHealthDisplay.d.ts.map +1 -1
- package/lib/components/shared/three/ui/BodyPartHealthDisplay.js.map +1 -1
- package/lib/components/shared/three/ui/BreathingIndicator.d.ts.map +1 -1
- package/lib/components/shared/three/ui/BreathingIndicator2.js.map +1 -1
- package/lib/components/shared/three/ui/CombatReadinessBar.d.ts.map +1 -1
- package/lib/components/shared/three/ui/CombatReadinessBar.js.map +1 -1
- package/lib/components/shared/three/ui/ComboCounter.d.ts.map +1 -1
- package/lib/components/shared/three/ui/ComboCounter.js.map +1 -1
- package/lib/components/shared/three/ui/HealthBar.d.ts.map +1 -1
- package/lib/components/shared/three/ui/HealthBar.js.map +1 -1
- package/lib/components/shared/three/ui/KoreanButton.d.ts.map +1 -1
- package/lib/components/shared/three/ui/KoreanButton.js.map +1 -1
- package/lib/components/shared/three/ui/KoreanPanel.d.ts.map +1 -1
- package/lib/components/shared/three/ui/KoreanPanel.js.map +1 -1
- package/lib/components/shared/three/ui/KoreanText.d.ts.map +1 -1
- package/lib/components/shared/three/ui/KoreanText.js.map +1 -1
- package/lib/components/shared/three/ui/MenuList.d.ts.map +1 -1
- package/lib/components/shared/three/ui/MenuList.js.map +1 -1
- package/lib/components/shared/three/ui/PlayerHUD.d.ts.map +1 -1
- package/lib/components/shared/three/ui/PlayerHUD.js.map +1 -1
- package/lib/components/shared/three/ui/ProgressBar.d.ts.map +1 -1
- package/lib/components/shared/three/ui/ProgressBar.js.map +1 -1
- package/lib/components/shared/three/ui/SpeedIndicatorHUD.d.ts +0 -1
- package/lib/components/shared/three/ui/SpeedIndicatorHUD.d.ts.map +1 -1
- package/lib/components/shared/three/ui/SpeedIndicatorHUD.js +0 -1
- package/lib/components/shared/three/ui/SpeedIndicatorHUD.js.map +1 -1
- package/lib/components/shared/three/ui/StaminaBar.d.ts.map +1 -1
- package/lib/components/shared/three/ui/StaminaBar.js.map +1 -1
- package/lib/components/shared/three/ui/TechniqueBar.d.ts.map +1 -1
- package/lib/components/shared/three/ui/TechniqueBar.js.map +1 -1
- package/lib/components/shared/three/ui/TechniqueBarContainer.d.ts.map +1 -1
- package/lib/components/shared/three/ui/TechniqueCard.d.ts.map +1 -1
- package/lib/components/shared/three/ui/TechniqueCard.js.map +1 -1
- package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.d.ts.map +1 -1
- package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.js.map +1 -1
- package/lib/components/shared/three/ui/VulnerabilityWindowHUD.d.ts.map +1 -1
- package/lib/components/shared/ui/BaseHUDContainer.d.ts.map +1 -1
- package/lib/components/shared/ui/BaseHUDContainer.js.map +1 -1
- package/lib/components/shared/ui/CombatTimer.d.ts.map +1 -1
- package/lib/components/shared/ui/CombatTimer.js.map +1 -1
- package/lib/components/shared/ui/ErrorBoundary.d.ts.map +1 -1
- package/lib/components/shared/ui/ErrorModal.d.ts.map +1 -1
- package/lib/components/shared/ui/ErrorModal.js.map +1 -1
- package/lib/components/shared/ui/HUDSection.d.ts.map +1 -1
- package/lib/components/shared/ui/LoadingState.d.ts.map +1 -1
- package/lib/components/shared/ui/LoadingState.js.map +1 -1
- package/lib/components/shared/ui/MobileHUDLayout.d.ts +0 -1
- package/lib/components/shared/ui/MobileHUDLayout.d.ts.map +1 -1
- package/lib/components/shared/ui/ResponsiveContainer.d.ts +0 -1
- package/lib/components/shared/ui/ResponsiveContainer.d.ts.map +1 -1
- package/lib/components/shared/ui/SplashScreen.d.ts.map +1 -1
- package/lib/components/shared/ui/SplashScreen.js +2 -2
- package/lib/components/shared/ui/SplashScreen.js.map +1 -1
- package/lib/components/shared/ui/StyledHUDPanel.d.ts.map +1 -1
- package/lib/components/shared/ui/VitalPointOverlayControlsPure.d.ts.map +1 -1
- package/lib/components/shared/ui/VitalPointOverlayControlsPure.js.map +1 -1
- package/lib/components/shared/ui/VolumeControl.d.ts.map +1 -1
- package/lib/components/shared/ui/VolumeControl.js.map +1 -1
- package/lib/components/shared/ui/shared/ConfirmDialog.d.ts.map +1 -1
- package/lib/components/shared/ui/shared/ConfirmDialog.js.map +1 -1
- package/lib/components/test/Hello3D.d.ts.map +1 -1
- package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.d.ts.map +1 -1
- package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.js.map +1 -1
- package/lib/components/ui/combat/ComboCounter.d.ts.map +1 -1
- package/lib/components/ui/combat/PressureMeter.d.ts.map +1 -1
- package/lib/systems/CombatSystem.d.ts +0 -6
- package/lib/systems/CombatSystem.d.ts.map +1 -1
- package/lib/systems/CombatSystem.js +0 -6
- package/lib/systems/CombatSystem.js.map +1 -1
- package/lib/systems/EffectCalculator.d.ts +0 -7
- package/lib/systems/EffectCalculator.d.ts.map +1 -1
- package/lib/systems/EffectCalculator.js +0 -4
- package/lib/systems/EffectCalculator.js.map +1 -1
- package/lib/systems/LayoutSystem.d.ts +0 -1
- package/lib/systems/LayoutSystem.d.ts.map +1 -1
- package/lib/systems/LayoutSystem.js +0 -1
- package/lib/systems/LayoutSystem.js.map +1 -1
- package/lib/systems/PlayerEffectManager.d.ts +0 -10
- package/lib/systems/PlayerEffectManager.d.ts.map +1 -1
- package/lib/systems/PlayerEffectManager.js +0 -3
- package/lib/systems/PlayerEffectManager.js.map +1 -1
- package/lib/systems/ResponsiveScaling.d.ts +0 -12
- package/lib/systems/ResponsiveScaling.d.ts.map +1 -1
- package/lib/systems/ResponsiveScaling.js +0 -12
- package/lib/systems/ResponsiveScaling.js.map +1 -1
- package/lib/systems/TrigramSystem.d.ts +0 -13
- package/lib/systems/TrigramSystem.d.ts.map +1 -1
- package/lib/systems/TrigramSystem.js +0 -13
- package/lib/systems/TrigramSystem.js.map +1 -1
- package/lib/systems/VitalPointSystem.d.ts +0 -10
- package/lib/systems/VitalPointSystem.d.ts.map +1 -1
- package/lib/systems/VitalPointSystem.js +0 -10
- package/lib/systems/VitalPointSystem.js.map +1 -1
- package/lib/systems/animation/builders/KeyframeInterpolation.d.ts +0 -4
- package/lib/systems/animation/builders/KeyframeInterpolation.d.ts.map +1 -1
- package/lib/systems/animation/builders/KeyframeInterpolation.js +0 -1
- package/lib/systems/animation/builders/KeyframeInterpolation.js.map +1 -1
- package/lib/systems/animation/builders/SkeletonRig.d.ts +0 -4
- package/lib/systems/animation/builders/SkeletonRig.d.ts.map +1 -1
- package/lib/systems/animation/builders/SkeletonRig.js +0 -3
- package/lib/systems/animation/builders/SkeletonRig.js.map +1 -1
- package/lib/systems/animation/catalogs/RecoveryAnimations.d.ts +0 -5
- package/lib/systems/animation/catalogs/RecoveryAnimations.d.ts.map +1 -1
- package/lib/systems/animation/catalogs/RecoveryAnimations.js +0 -5
- package/lib/systems/animation/catalogs/RecoveryAnimations.js.map +1 -1
- package/lib/systems/animation/core/AnimationHitTiming.d.ts +0 -6
- package/lib/systems/animation/core/AnimationHitTiming.d.ts.map +1 -1
- package/lib/systems/animation/core/AnimationHitTiming.js +0 -4
- package/lib/systems/animation/core/AnimationHitTiming.js.map +1 -1
- package/lib/systems/animation/core/AnimationTransitions.d.ts +0 -3
- package/lib/systems/animation/core/AnimationTransitions.d.ts.map +1 -1
- package/lib/systems/animation/core/AnimationTransitions.js.map +1 -1
- package/lib/systems/animation/core/LateralityTransform.d.ts +0 -3
- package/lib/systems/animation/core/LateralityTransform.d.ts.map +1 -1
- package/lib/systems/animation/core/LateralityTransform.js +0 -1
- package/lib/systems/animation/core/LateralityTransform.js.map +1 -1
- package/lib/systems/animation/core/RecoveryPhaseEnhancer.d.ts +0 -1
- package/lib/systems/animation/core/RecoveryPhaseEnhancer.d.ts.map +1 -1
- package/lib/systems/animation/core/RecoveryPhaseEnhancer.js.map +1 -1
- package/lib/systems/animation/core/TechniqueAnimationMapper.d.ts +0 -10
- package/lib/systems/animation/core/TechniqueAnimationMapper.d.ts.map +1 -1
- package/lib/systems/animation/core/TechniqueAnimationMapper.js +0 -8
- package/lib/systems/animation/core/TechniqueAnimationMapper.js.map +1 -1
- package/lib/systems/animation/core/TrigramAnimationMapping.d.ts +0 -10
- package/lib/systems/animation/core/TrigramAnimationMapping.d.ts.map +1 -1
- package/lib/systems/animation/core/TrigramStanceTransitions.d.ts +0 -2
- package/lib/systems/animation/core/TrigramStanceTransitions.d.ts.map +1 -1
- package/lib/systems/animation/core/types.d.ts +0 -39
- package/lib/systems/animation/core/types.d.ts.map +1 -1
- package/lib/systems/animation/core/types.js +0 -9
- package/lib/systems/animation/core/types.js.map +1 -1
- package/lib/systems/animation/systems/AdvancedJointMovements.d.ts +0 -27
- package/lib/systems/animation/systems/AdvancedJointMovements.d.ts.map +1 -1
- package/lib/systems/animation/systems/AdvancedJointMovements.js +0 -1
- package/lib/systems/animation/systems/AdvancedJointMovements.js.map +1 -1
- package/lib/systems/animation/systems/BodyFacingSystem.d.ts +0 -19
- package/lib/systems/animation/systems/BodyFacingSystem.d.ts.map +1 -1
- package/lib/systems/animation/systems/BodyFacingSystem.js +0 -14
- package/lib/systems/animation/systems/BodyFacingSystem.js.map +1 -1
- package/lib/systems/animation/systems/FacialExpressions.d.ts +0 -10
- package/lib/systems/animation/systems/FacialExpressions.d.ts.map +1 -1
- package/lib/systems/animation/systems/FacialExpressions.js +0 -2
- package/lib/systems/animation/systems/FacialExpressions.js.map +1 -1
- package/lib/systems/animation/systems/FallAnimations.d.ts +0 -4
- package/lib/systems/animation/systems/FallAnimations.d.ts.map +1 -1
- package/lib/systems/animation/systems/FallAnimations.js +0 -2
- package/lib/systems/animation/systems/FallAnimations.js.map +1 -1
- package/lib/systems/animation/systems/HeadMovements.d.ts +0 -10
- package/lib/systems/animation/systems/HeadMovements.d.ts.map +1 -1
- package/lib/systems/bodypart/BodyPartDamageIntegration.d.ts +0 -7
- package/lib/systems/bodypart/BodyPartDamageIntegration.d.ts.map +1 -1
- package/lib/systems/bodypart/BodyPartDamageIntegration.js +0 -7
- package/lib/systems/bodypart/BodyPartDamageIntegration.js.map +1 -1
- package/lib/systems/bodypart/BodyPartHealthSystem.d.ts +0 -13
- package/lib/systems/bodypart/BodyPartHealthSystem.d.ts.map +1 -1
- package/lib/systems/bodypart/BodyPartHealthSystem.js +0 -13
- package/lib/systems/bodypart/BodyPartHealthSystem.js.map +1 -1
- package/lib/systems/bodypart/BodyPartPositionMapping.d.ts +0 -6
- package/lib/systems/bodypart/BodyPartPositionMapping.d.ts.map +1 -1
- package/lib/systems/bodypart/BodyPartPositionMapping.js +0 -6
- package/lib/systems/bodypart/BodyPartPositionMapping.js.map +1 -1
- package/lib/systems/bodypart/CombatInjuryIntegration.d.ts +0 -10
- package/lib/systems/bodypart/CombatInjuryIntegration.d.ts.map +1 -1
- package/lib/systems/bodypart/CombatInjuryIntegration.js +0 -8
- package/lib/systems/bodypart/CombatInjuryIntegration.js.map +1 -1
- package/lib/systems/bodypart/InjuryIntegration.d.ts +0 -2
- package/lib/systems/bodypart/InjuryIntegration.d.ts.map +1 -1
- package/lib/systems/bodypart/InjuryIntegration.js +0 -2
- package/lib/systems/bodypart/InjuryIntegration.js.map +1 -1
- package/lib/systems/bodypart/InjuryTracker.d.ts +0 -14
- package/lib/systems/bodypart/InjuryTracker.d.ts.map +1 -1
- package/lib/systems/bodypart/InjuryTracker.js +0 -12
- package/lib/systems/bodypart/InjuryTracker.js.map +1 -1
- package/lib/systems/bodypart/MovementPenaltySystem.d.ts +0 -8
- package/lib/systems/bodypart/MovementPenaltySystem.d.ts.map +1 -1
- package/lib/systems/bodypart/MovementPenaltySystem.js +0 -8
- package/lib/systems/bodypart/MovementPenaltySystem.js.map +1 -1
- package/lib/systems/bodypart/PlayerInjuryTrackingManager.d.ts +0 -8
- package/lib/systems/bodypart/PlayerInjuryTrackingManager.d.ts.map +1 -1
- package/lib/systems/bodypart/PlayerInjuryTrackingManager.js +0 -8
- package/lib/systems/bodypart/PlayerInjuryTrackingManager.js.map +1 -1
- package/lib/systems/bodypart/types.d.ts +0 -13
- package/lib/systems/bodypart/types.d.ts.map +1 -1
- package/lib/systems/bodypart/types.js +0 -5
- package/lib/systems/bodypart/types.js.map +1 -1
- package/lib/systems/breathing/BreathingDisruptionSystem.d.ts +0 -3
- package/lib/systems/breathing/BreathingDisruptionSystem.d.ts.map +1 -1
- package/lib/systems/breathing/BreathingDisruptionSystem.js +0 -2
- package/lib/systems/breathing/BreathingDisruptionSystem.js.map +1 -1
- package/lib/systems/combat/BalanceSystem.d.ts +0 -25
- package/lib/systems/combat/BalanceSystem.d.ts.map +1 -1
- package/lib/systems/combat/BalanceSystem.js +0 -25
- package/lib/systems/combat/BalanceSystem.js.map +1 -1
- package/lib/systems/combat/BreakingStatusEffects.d.ts +0 -4
- package/lib/systems/combat/BreakingStatusEffects.d.ts.map +1 -1
- package/lib/systems/combat/BreakingStatusEffects.js +0 -3
- package/lib/systems/combat/BreakingStatusEffects.js.map +1 -1
- package/lib/systems/combat/CombatStateSystem.d.ts +0 -9
- package/lib/systems/combat/CombatStateSystem.d.ts.map +1 -1
- package/lib/systems/combat/CombatStateSystem.js +0 -9
- package/lib/systems/combat/CombatStateSystem.js.map +1 -1
- package/lib/systems/combat/ConsciousnessSystem.d.ts +0 -16
- package/lib/systems/combat/ConsciousnessSystem.d.ts.map +1 -1
- package/lib/systems/combat/ConsciousnessSystem.js +0 -16
- package/lib/systems/combat/ConsciousnessSystem.js.map +1 -1
- package/lib/systems/combat/FallIntegration.d.ts +0 -3
- package/lib/systems/combat/FallIntegration.d.ts.map +1 -1
- package/lib/systems/combat/FallIntegration.js +0 -3
- package/lib/systems/combat/FallIntegration.js.map +1 -1
- package/lib/systems/combat/GrappleSystem.d.ts +0 -2
- package/lib/systems/combat/GrappleSystem.d.ts.map +1 -1
- package/lib/systems/combat/GrappleSystem.js +0 -2
- package/lib/systems/combat/GrappleSystem.js.map +1 -1
- package/lib/systems/combat/LimbExposureSystem.d.ts +0 -7
- package/lib/systems/combat/LimbExposureSystem.d.ts.map +1 -1
- package/lib/systems/combat/LimbExposureSystem.js +0 -7
- package/lib/systems/combat/LimbExposureSystem.js.map +1 -1
- package/lib/systems/combat/PainResponseSystem.d.ts +0 -11
- package/lib/systems/combat/PainResponseSystem.d.ts.map +1 -1
- package/lib/systems/combat/PainResponseSystem.js +0 -11
- package/lib/systems/combat/PainResponseSystem.js.map +1 -1
- package/lib/systems/combat/painConsciousnessUtils.d.ts +0 -7
- package/lib/systems/combat/painConsciousnessUtils.d.ts.map +1 -1
- package/lib/systems/combat/painConsciousnessUtils.js +0 -7
- package/lib/systems/combat/painConsciousnessUtils.js.map +1 -1
- package/lib/systems/effects.d.ts +11 -0
- package/lib/systems/effects.d.ts.map +1 -1
- package/lib/systems/effects.js +10 -0
- package/lib/systems/effects.js.map +1 -1
- package/lib/systems/game.d.ts +16 -0
- package/lib/systems/game.d.ts.map +1 -1
- package/lib/systems/game.js +1 -0
- package/lib/systems/game.js.map +1 -1
- package/lib/systems/index.d.ts +5 -1
- package/lib/systems/index.d.ts.map +1 -1
- package/lib/systems/index.js.map +1 -1
- package/lib/systems/movement/InjuryMovementModifier.d.ts +0 -10
- package/lib/systems/movement/InjuryMovementModifier.d.ts.map +1 -1
- package/lib/systems/movement/InjuryMovementModifier.js +0 -7
- package/lib/systems/movement/InjuryMovementModifier.js.map +1 -1
- package/lib/systems/movement/integration.d.ts +0 -3
- package/lib/systems/movement/integration.d.ts.map +1 -1
- package/lib/systems/movement/integration.js +0 -3
- package/lib/systems/movement/integration.js.map +1 -1
- package/lib/systems/physics/AttackMovementPhysics.d.ts +0 -9
- package/lib/systems/physics/AttackMovementPhysics.d.ts.map +1 -1
- package/lib/systems/physics/AttackMovementPhysics.js +0 -7
- package/lib/systems/physics/AttackMovementPhysics.js.map +1 -1
- package/lib/systems/physics/CollisionDetection.d.ts +0 -6
- package/lib/systems/physics/CollisionDetection.d.ts.map +1 -1
- package/lib/systems/physics/CollisionDetection.js +0 -6
- package/lib/systems/physics/CollisionDetection.js.map +1 -1
- package/lib/systems/physics/CoordinateMapper.d.ts +0 -1
- package/lib/systems/physics/CoordinateMapper.d.ts.map +1 -1
- package/lib/systems/physics/CoordinateMapper.js +0 -1
- package/lib/systems/physics/CoordinateMapper.js.map +1 -1
- package/lib/systems/physics/KnockbackPhysics.d.ts +0 -11
- package/lib/systems/physics/KnockbackPhysics.d.ts.map +1 -1
- package/lib/systems/physics/KnockbackPhysics.js +0 -8
- package/lib/systems/physics/KnockbackPhysics.js.map +1 -1
- package/lib/systems/physics/MovementPhysics.d.ts +0 -10
- package/lib/systems/physics/MovementPhysics.d.ts.map +1 -1
- package/lib/systems/physics/MovementPhysics.js +0 -8
- package/lib/systems/physics/MovementPhysics.js.map +1 -1
- package/lib/systems/physics/PhysicalReachCalculator.d.ts +0 -6
- package/lib/systems/physics/PhysicalReachCalculator.d.ts.map +1 -1
- package/lib/systems/physics/PhysicalReachCalculator.js +0 -5
- package/lib/systems/physics/PhysicalReachCalculator.js.map +1 -1
- package/lib/systems/physics/SpeedModifierSystem.d.ts +0 -5
- package/lib/systems/physics/SpeedModifierSystem.d.ts.map +1 -1
- package/lib/systems/physics/SpeedModifierSystem.js +0 -4
- package/lib/systems/physics/SpeedModifierSystem.js.map +1 -1
- package/lib/systems/player.d.ts +0 -5
- package/lib/systems/player.d.ts.map +1 -1
- package/lib/systems/trigram/TrigramCalculator.d.ts +0 -1
- package/lib/systems/trigram/TrigramCalculator.d.ts.map +1 -1
- package/lib/systems/trigram/TrigramCalculator.js +0 -1
- package/lib/systems/trigram/TrigramCalculator.js.map +1 -1
- package/lib/systems/trigram/types.d.ts +0 -4
- package/lib/systems/trigram/types.d.ts.map +1 -1
- package/lib/systems/trigram/types.js +0 -2
- package/lib/systems/trigram/types.js.map +1 -1
- package/lib/systems/types.d.ts +7 -2
- package/lib/systems/types.d.ts.map +1 -1
- package/lib/systems/types.js.map +1 -1
- package/lib/systems/vitalpoint/DamageCalculator.d.ts +0 -3
- package/lib/systems/vitalpoint/DamageCalculator.d.ts.map +1 -1
- package/lib/systems/vitalpoint/DamageCalculator.js +0 -3
- package/lib/systems/vitalpoint/DamageCalculator.js.map +1 -1
- package/lib/systems/vitalpoint/KoreanVitalPoints.d.ts +0 -8
- package/lib/systems/vitalpoint/KoreanVitalPoints.d.ts.map +1 -1
- package/lib/systems/vitalpoint/KoreanVitalPoints.js +0 -8
- package/lib/systems/vitalpoint/KoreanVitalPoints.js.map +1 -1
- package/lib/systems/vitalpoint/VitalPointsData.d.ts +0 -3
- package/lib/systems/vitalpoint/VitalPointsData.d.ts.map +1 -1
- package/lib/systems/vitalpoint/VitalPointsData.js +0 -1
- package/lib/systems/vitalpoint/VitalPointsData.js.map +1 -1
- package/lib/types/PhysicsTypes.d.ts +21 -78
- package/lib/types/PhysicsTypes.d.ts.map +1 -1
- package/lib/types/PhysicsTypes.js +17 -63
- package/lib/types/PhysicsTypes.js.map +1 -1
- package/lib/types/clothing.d.ts +0 -9
- package/lib/types/clothing.d.ts.map +1 -1
- package/lib/types/constants/animations.d.ts +35 -1
- package/lib/types/constants/animations.d.ts.map +1 -1
- package/lib/types/constants/animations.js +12 -1
- package/lib/types/constants/animations.js.map +1 -1
- package/lib/types/constants/colors.d.ts +28 -2
- package/lib/types/constants/colors.d.ts.map +1 -1
- package/lib/types/constants/colors.js +30 -4
- package/lib/types/constants/colors.js.map +1 -1
- package/lib/types/constants/index.d.ts +5 -1
- package/lib/types/constants/index.d.ts.map +1 -1
- package/lib/types/constants/index.js.map +1 -1
- package/lib/types/constants/performance.d.ts +0 -2
- package/lib/types/constants/performance.d.ts.map +1 -1
- package/lib/types/constants/performance.js +0 -2
- package/lib/types/constants/performance.js.map +1 -1
- package/lib/types/constants/typography.d.ts +40 -2
- package/lib/types/constants/typography.d.ts.map +1 -1
- package/lib/types/constants/typography.js +40 -2
- package/lib/types/constants/typography.js.map +1 -1
- package/lib/types/constants/ui.d.ts +89 -1
- package/lib/types/constants/ui.d.ts.map +1 -1
- package/lib/types/constants/ui.js +33 -1
- package/lib/types/constants/ui.js.map +1 -1
- package/lib/types/facial.d.ts +0 -15
- package/lib/types/facial.d.ts.map +1 -1
- package/lib/types/facial.js +0 -8
- package/lib/types/facial.js.map +1 -1
- package/lib/types/hand-animation.d.ts +34 -147
- package/lib/types/hand-animation.d.ts.map +1 -1
- package/lib/types/hand-animation.js +0 -2
- package/lib/types/hand-animation.js.map +1 -1
- package/lib/types/injury.d.ts +0 -2
- package/lib/types/injury.d.ts.map +1 -1
- package/lib/types/injury.js +0 -1
- package/lib/types/injury.js.map +1 -1
- package/lib/types/physics.d.ts +0 -21
- package/lib/types/physics.d.ts.map +1 -1
- package/lib/types/physics.js +0 -6
- package/lib/types/physics.js.map +1 -1
- package/lib/types/physicsConstants.d.ts +0 -12
- package/lib/types/physicsConstants.d.ts.map +1 -1
- package/lib/types/physicsConstants.js +0 -12
- package/lib/types/physicsConstants.js.map +1 -1
- package/lib/types/player-visual.d.ts +45 -189
- package/lib/types/player-visual.d.ts.map +1 -1
- package/lib/types/technique.d.ts +1 -5
- package/lib/types/technique.d.ts.map +1 -1
- package/lib/types/techniqueId.d.ts +0 -1
- package/lib/types/techniqueId.d.ts.map +1 -1
- package/lib/types/techniqueId.js +0 -1
- package/lib/types/techniqueId.js.map +1 -1
- package/lib/utils/arenaWorldDimensions.d.ts +0 -11
- package/lib/utils/arenaWorldDimensions.d.ts.map +1 -1
- package/lib/utils/arenaWorldDimensions.js +0 -6
- package/lib/utils/arenaWorldDimensions.js.map +1 -1
- package/lib/utils/controlMapping.d.ts +3 -4
- package/lib/utils/controlMapping.d.ts.map +1 -1
- package/lib/utils/controlMapping.js +1 -2
- package/lib/utils/controlMapping.js.map +1 -1
- package/lib/utils/deviceDetection.d.ts +0 -5
- package/lib/utils/deviceDetection.d.ts.map +1 -1
- package/lib/utils/deviceDetection.js +0 -5
- package/lib/utils/deviceDetection.js.map +1 -1
- package/lib/utils/hapticFeedback.d.ts +23 -95
- package/lib/utils/hapticFeedback.d.ts.map +1 -1
- package/lib/utils/hapticFeedback.js +9 -39
- package/lib/utils/hapticFeedback.js.map +1 -1
- package/lib/utils/haptics.d.ts +0 -3
- package/lib/utils/haptics.d.ts.map +1 -1
- package/lib/utils/haptics.js +0 -1
- package/lib/utils/haptics.js.map +1 -1
- package/lib/utils/math.d.ts +0 -3
- package/lib/utils/math.d.ts.map +1 -1
- package/lib/utils/math.js +0 -2
- package/lib/utils/math.js.map +1 -1
- package/lib/utils/mobileLayoutHelpers.d.ts +0 -3
- package/lib/utils/mobileLayoutHelpers.d.ts.map +1 -1
- package/lib/utils/mobileLayoutHelpers.js +0 -1
- package/lib/utils/mobileLayoutHelpers.js.map +1 -1
- package/lib/utils/mobileUIUtils.d.ts +5 -100
- package/lib/utils/mobileUIUtils.d.ts.map +1 -1
- package/lib/utils/mobileUIUtils.js +0 -9
- package/lib/utils/mobileUIUtils.js.map +1 -1
- package/lib/utils/physicalAttributeValidation.d.ts.map +1 -1
- package/lib/utils/player3DHelpers.d.ts.map +1 -1
- package/lib/utils/player3DHelpers.js.map +1 -1
- package/lib/utils/responsiveLayoutHelpers.d.ts +0 -65
- package/lib/utils/responsiveLayoutHelpers.d.ts.map +1 -1
- package/lib/utils/responsiveLayoutHelpers.js +0 -65
- package/lib/utils/responsiveLayoutHelpers.js.map +1 -1
- package/lib/utils/responsiveOrientationConstants.d.ts +0 -7
- package/lib/utils/responsiveOrientationConstants.d.ts.map +1 -1
- package/lib/utils/responsiveOrientationConstants.js +0 -7
- package/lib/utils/responsiveOrientationConstants.js.map +1 -1
- package/lib/utils/safeAreaUtils.d.ts +0 -6
- package/lib/utils/safeAreaUtils.d.ts.map +1 -1
- package/lib/utils/safeAreaUtils.js +0 -2
- package/lib/utils/safeAreaUtils.js.map +1 -1
- package/lib/utils/sharedPhysicsConfig.d.ts +0 -4
- package/lib/utils/sharedPhysicsConfig.d.ts.map +1 -1
- package/lib/utils/sharedPhysicsConfig.js +0 -2
- package/lib/utils/sharedPhysicsConfig.js.map +1 -1
- package/lib/utils/skeletonScaling.d.ts +0 -9
- package/lib/utils/skeletonScaling.d.ts.map +1 -1
- package/lib/utils/skeletonScaling.js +0 -1
- package/lib/utils/skeletonScaling.js.map +1 -1
- package/package.json +7 -7
|
@@ -40,7 +40,6 @@ import { PlayerState } from "./player";
|
|
|
40
40
|
* );
|
|
41
41
|
* ```
|
|
42
42
|
*
|
|
43
|
-
* @public
|
|
44
43
|
* @korean 효과추가
|
|
45
44
|
*/
|
|
46
45
|
export declare function addEffectsToPlayer(player: PlayerState, effects: readonly StatusEffect[]): PlayerState;
|
|
@@ -60,7 +59,6 @@ export declare function addEffectsToPlayer(player: PlayerState, effects: readonl
|
|
|
60
59
|
* const updatedPlayer = removeExpiredEffects(player, Date.now());
|
|
61
60
|
* ```
|
|
62
61
|
*
|
|
63
|
-
* @public
|
|
64
62
|
* @korean 만료효과제거
|
|
65
63
|
*/
|
|
66
64
|
export declare function removeExpiredEffects(player: PlayerState, currentTime?: number): PlayerState;
|
|
@@ -78,7 +76,6 @@ export declare function removeExpiredEffects(player: PlayerState, currentTime?:
|
|
|
78
76
|
* const updatedPlayer = removeEffectById(player, "stun_12345");
|
|
79
77
|
* ```
|
|
80
78
|
*
|
|
81
|
-
* @public
|
|
82
79
|
* @korean 효과제거
|
|
83
80
|
*/
|
|
84
81
|
export declare function removeEffectById(player: PlayerState, effectId: string): PlayerState;
|
|
@@ -99,7 +96,6 @@ export declare function removeEffectById(player: PlayerState, effectId: string):
|
|
|
99
96
|
* );
|
|
100
97
|
* ```
|
|
101
98
|
*
|
|
102
|
-
* @public
|
|
103
99
|
* @korean 유형별효과제거
|
|
104
100
|
*/
|
|
105
101
|
export declare function removeEffectsByType(player: PlayerState, effectType: VitalPointEffectType): PlayerState;
|
|
@@ -118,7 +114,6 @@ export declare function removeEffectsByType(player: PlayerState, effectType: Vit
|
|
|
118
114
|
* const clearedPlayer = clearAllEffects(player);
|
|
119
115
|
* ```
|
|
120
116
|
*
|
|
121
|
-
* @public
|
|
122
117
|
* @korean 전체효과제거
|
|
123
118
|
*/
|
|
124
119
|
export declare function clearAllEffects(player: PlayerState): PlayerState;
|
|
@@ -139,7 +134,6 @@ export declare function clearAllEffects(player: PlayerState): PlayerState;
|
|
|
139
134
|
* const effectiveSpeed = baseSpeed * modifiers.speed;
|
|
140
135
|
* ```
|
|
141
136
|
*
|
|
142
|
-
* @public
|
|
143
137
|
* @korean 효과배율계산
|
|
144
138
|
*/
|
|
145
139
|
export declare function getEffectModifiers(player: PlayerState): {
|
|
@@ -166,7 +160,6 @@ export declare function getEffectModifiers(player: PlayerState): {
|
|
|
166
160
|
* }
|
|
167
161
|
* ```
|
|
168
162
|
*
|
|
169
|
-
* @public
|
|
170
163
|
* @korean 효과확인
|
|
171
164
|
*/
|
|
172
165
|
export declare function hasEffect(player: PlayerState, effectType: VitalPointEffectType): boolean;
|
|
@@ -179,7 +172,6 @@ export declare function hasEffect(player: PlayerState, effectType: VitalPointEff
|
|
|
179
172
|
* @param effectType - Type to retrieve
|
|
180
173
|
* @returns Array of matching effects
|
|
181
174
|
*
|
|
182
|
-
* @public
|
|
183
175
|
* @korean 유형별효과조회
|
|
184
176
|
*/
|
|
185
177
|
export declare function getEffectsByType(player: PlayerState, effectType: VitalPointEffectType): StatusEffect[];
|
|
@@ -191,7 +183,6 @@ export declare function getEffectsByType(player: PlayerState, effectType: VitalP
|
|
|
191
183
|
* @param player - Current player state
|
|
192
184
|
* @returns Number of active effects
|
|
193
185
|
*
|
|
194
|
-
* @public
|
|
195
186
|
* @korean 효과개수조회
|
|
196
187
|
*/
|
|
197
188
|
export declare function getActiveEffectCount(player: PlayerState): number;
|
|
@@ -203,7 +194,6 @@ export declare function getActiveEffectCount(player: PlayerState): number;
|
|
|
203
194
|
* @param player - Current player state
|
|
204
195
|
* @returns True if under MAX_CONCURRENT_EFFECTS limit
|
|
205
196
|
*
|
|
206
|
-
* @public
|
|
207
197
|
* @korean 효과추가가능확인
|
|
208
198
|
*/
|
|
209
199
|
export declare function canAddMoreEffects(player: PlayerState): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerEffectManager.d.ts","sourceRoot":"","sources":["../../src/systems/PlayerEffectManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC
|
|
1
|
+
{"version":3,"file":"PlayerEffectManager.d.ts","sourceRoot":"","sources":["../../src/systems/PlayerEffectManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,SAAS,YAAY,EAAE,GAC/B,WAAW,CAgBb;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,MAAmB,GAC/B,WAAW,CAYb;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,GACf,WAAW,CAYb;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,oBAAoB,GAC/B,WAAW,CAYb;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAMhE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAiGA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAET;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,oBAAoB,GAC/B,YAAY,EAAE,CAEhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE9D"}
|
|
@@ -40,7 +40,6 @@ import { applyEffectStacking } from "./EffectCalculator.js";
|
|
|
40
40
|
* );
|
|
41
41
|
* ```
|
|
42
42
|
*
|
|
43
|
-
* @public
|
|
44
43
|
* @korean 효과추가
|
|
45
44
|
*/
|
|
46
45
|
function addEffectsToPlayer(player, effects) {
|
|
@@ -69,7 +68,6 @@ function addEffectsToPlayer(player, effects) {
|
|
|
69
68
|
* const updatedPlayer = removeExpiredEffects(player, Date.now());
|
|
70
69
|
* ```
|
|
71
70
|
*
|
|
72
|
-
* @public
|
|
73
71
|
* @korean 만료효과제거
|
|
74
72
|
*/
|
|
75
73
|
function removeExpiredEffects(player, currentTime = Date.now()) {
|
|
@@ -98,7 +96,6 @@ function removeExpiredEffects(player, currentTime = Date.now()) {
|
|
|
98
96
|
* const effectiveSpeed = baseSpeed * modifiers.speed;
|
|
99
97
|
* ```
|
|
100
98
|
*
|
|
101
|
-
* @public
|
|
102
99
|
* @korean 효과배율계산
|
|
103
100
|
*/
|
|
104
101
|
function getEffectModifiers(player) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerEffectManager.js","names":[],"sources":["../../src/systems/PlayerEffectManager.ts"],"sourcesContent":["/**\n * Player Effect Manager for tracking and applying status effects.\n * \n * **Korean**: 플레이어 효과 관리자 (Player Effect Manager)\n * \n * This module provides utilities for managing status effects on player state,\n * including adding effects with stacking logic, removing expired effects,\n * and applying effect-based combat modifiers.\n * \n * ## Key Features\n * \n * - **Effect Tracking**: Add, remove, and update status effects\n * - **Stacking Logic**: Manage concurrent effects (max 5)\n * - **Expiration Handling**: Auto-remove expired effects\n * - **Combat Modifiers**: Calculate effect-based stat changes\n * \n * @module systems/PlayerEffectManager\n * @category Player Management\n * @korean 플레이어효과관리\n */\n\nimport { VitalPointEffectType } from \"../types/common\";\nimport { StatusEffect } from \"./types\";\nimport { PlayerState } from \"./player\";\nimport { applyEffectStacking, MAX_CONCURRENT_EFFECTS } from \"./EffectCalculator\";\n\n/**\n * Adds status effects to a player's active effects list.\n * \n * **Korean**: 플레이어에 효과 추가 (Add Effects to Player)\n * \n * Applies stacking logic and respects the max concurrent effects limit.\n * \n * @param player - Current player state\n * @param effects - New effects to add\n * @returns Updated player state with new effects\n * \n * @example\n * ```typescript\n * const updatedPlayer = addEffectsToPlayer(\n * player,\n * [paralyze, bleed, stun]\n * );\n * ```\n * \n * @public\n * @korean 효과추가\n */\nexport function addEffectsToPlayer(\n player: PlayerState,\n effects: readonly StatusEffect[]\n): PlayerState {\n const currentTime = Date.now();\n\n // Apply stacking logic\n const updatedEffects = applyEffectStacking(\n player.statusEffects,\n effects,\n currentTime\n );\n\n // Update activeEffects array with effect IDs\n const activeEffectIds = updatedEffects.map((effect) => effect.id);\n\n return {\n ...player,\n statusEffects: updatedEffects,\n activeEffects: activeEffectIds,\n };\n}\n\n/**\n * Removes expired status effects from player.\n * \n * **Korean**: 만료 효과 제거 (Remove Expired Effects)\n * \n * Filters out effects whose endTime has passed.\n * \n * @param player - Current player state\n * @param currentTime - Current timestamp (default: Date.now())\n * @returns Updated player state with expired effects removed\n * \n * @example\n * ```typescript\n * const updatedPlayer = removeExpiredEffects(player, Date.now());\n * ```\n * \n * @public\n * @korean 만료효과제거\n */\nexport function removeExpiredEffects(\n player: PlayerState,\n currentTime: number = Date.now()\n): PlayerState {\n const activeEffects = player.statusEffects.filter(\n (effect) => effect.endTime > currentTime\n );\n\n const activeEffectIds = activeEffects.map((effect) => effect.id);\n\n return {\n ...player,\n statusEffects: activeEffects,\n activeEffects: activeEffectIds,\n };\n}\n\n/**\n * Removes a specific status effect by ID.\n * \n * **Korean**: 특정 효과 제거 (Remove Specific Effect)\n * \n * @param player - Current player state\n * @param effectId - ID of effect to remove\n * @returns Updated player state with effect removed\n * \n * @example\n * ```typescript\n * const updatedPlayer = removeEffectById(player, \"stun_12345\");\n * ```\n * \n * @public\n * @korean 효과제거\n */\nexport function removeEffectById(\n player: PlayerState,\n effectId: string\n): PlayerState {\n const activeEffects = player.statusEffects.filter(\n (effect) => effect.id !== effectId\n );\n\n const activeEffectIds = activeEffects.map((effect) => effect.id);\n\n return {\n ...player,\n statusEffects: activeEffects,\n activeEffects: activeEffectIds,\n };\n}\n\n/**\n * Removes all status effects of a specific type.\n * \n * **Korean**: 특정 유형 효과 모두 제거 (Remove All Effects of Type)\n * \n * @param player - Current player state\n * @param effectType - Type of effects to remove\n * @returns Updated player state with effects removed\n * \n * @example\n * ```typescript\n * const updatedPlayer = removeEffectsByType(\n * player,\n * VitalPointEffectType.PARALYSIS\n * );\n * ```\n * \n * @public\n * @korean 유형별효과제거\n */\nexport function removeEffectsByType(\n player: PlayerState,\n effectType: VitalPointEffectType\n): PlayerState {\n const activeEffects = player.statusEffects.filter(\n (effect) => effect.type !== effectType\n );\n\n const activeEffectIds = activeEffects.map((effect) => effect.id);\n\n return {\n ...player,\n statusEffects: activeEffects,\n activeEffects: activeEffectIds,\n };\n}\n\n/**\n * Clears all status effects from player.\n * \n * **Korean**: 모든 효과 제거 (Clear All Effects)\n * \n * Useful for healing items, rest periods, or match resets.\n * \n * @param player - Current player state\n * @returns Updated player state with no effects\n * \n * @example\n * ```typescript\n * const clearedPlayer = clearAllEffects(player);\n * ```\n * \n * @public\n * @korean 전체효과제거\n */\nexport function clearAllEffects(player: PlayerState): PlayerState {\n return {\n ...player,\n statusEffects: [],\n activeEffects: [],\n };\n}\n\n/**\n * Calculates combat stat modifiers based on active status effects.\n * \n * **Korean**: 효과 기반 전투 배율 계산 (Calculate Effect-Based Combat Modifiers)\n * \n * Returns multipliers for various combat attributes affected by status effects.\n * \n * @param player - Current player state\n * @returns Object with stat multipliers (1.0 = no change)\n * \n * @example\n * ```typescript\n * const modifiers = getEffectModifiers(player);\n * const effectiveDamage = baseDamage * modifiers.attackPower;\n * const effectiveSpeed = baseSpeed * modifiers.speed;\n * ```\n * \n * @public\n * @korean 효과배율계산\n */\nexport function getEffectModifiers(player: PlayerState): {\n attackPower: number;\n defense: number;\n speed: number;\n technique: number;\n staminaRegen: number;\n kiRegen: number;\n} {\n let attackPower = 1.0;\n let defense = 1.0;\n let speed = 1.0;\n let technique = 1.0;\n let staminaRegen = 1.0;\n let kiRegen = 1.0;\n\n for (const effect of player.statusEffects) {\n // UNCONSCIOUSNESS takes precedence - early return with complete incapacitation\n if (effect.type === VitalPointEffectType.UNCONSCIOUSNESS) {\n return {\n attackPower: 0,\n defense: 0,\n speed: 0,\n technique: 0,\n staminaRegen: 0,\n kiRegen: 0,\n };\n }\n\n // Apply other effect modifiers multiplicatively\n switch (effect.type) {\n case VitalPointEffectType.PARALYSIS:\n // Severe movement and action impairment\n attackPower *= 0.3;\n speed *= 0.2;\n technique *= 0.4;\n break;\n\n case VitalPointEffectType.STUN:\n // Moderate impairment\n attackPower *= 0.5;\n defense *= 0.6;\n speed *= 0.5;\n technique *= 0.6;\n break;\n\n case VitalPointEffectType.PAIN:\n // Reduces effectiveness across the board\n attackPower *= 0.7;\n defense *= 0.8;\n speed *= 0.8;\n technique *= 0.7;\n break;\n\n case VitalPointEffectType.BLOOD_FLOW_RESTRICTION:\n // Gradual weakening from reduced circulation\n attackPower *= 0.85;\n staminaRegen *= 0.5;\n break;\n\n case VitalPointEffectType.BREATHLESSNESS:\n // NOTE: Stamina regen is handled by BreathingDisruptionSystem.calculateStaminaRegen()\n // which applies severity-specific multipliers (25%-75% depending on disruption level).\n // DO NOT apply a flat multiplier here as it would compound with the breathing system.\n // Only apply secondary effects here.\n speed *= 0.7; // Reduced movement speed due to breathing difficulty\n break;\n\n case VitalPointEffectType.DISORIENTATION:\n // Accuracy and technique affected\n technique *= 0.6;\n defense *= 0.7;\n break;\n\n case VitalPointEffectType.WEAKNESS:\n // Overall power reduction\n attackPower *= 0.7;\n defense *= 0.8;\n break;\n\n case VitalPointEffectType.NERVE_DISRUPTION:\n // Ki system and coordination impaired\n kiRegen *= 0.5;\n attackPower *= 0.8;\n technique *= 0.7;\n break;\n\n case VitalPointEffectType.ORGAN_DISRUPTION:\n // Internal damage affecting all systems\n attackPower *= 0.6;\n defense *= 0.7;\n staminaRegen *= 0.4;\n kiRegen *= 0.4;\n break;\n }\n }\n\n return {\n attackPower,\n defense,\n speed,\n technique,\n staminaRegen,\n kiRegen,\n };\n}\n\n/**\n * Checks if player has a specific effect type active.\n * \n * **Korean**: 효과 활성 여부 확인 (Check Effect Active)\n * \n * @param player - Current player state\n * @param effectType - Type to check for\n * @returns True if effect type is active\n * \n * @example\n * ```typescript\n * if (hasEffect(player, VitalPointEffectType.PARALYSIS)) {\n * console.log(\"Player is paralyzed!\");\n * }\n * ```\n * \n * @public\n * @korean 효과확인\n */\nexport function hasEffect(\n player: PlayerState,\n effectType: VitalPointEffectType\n): boolean {\n return player.statusEffects.some((effect) => effect.type === effectType);\n}\n\n/**\n * Gets all active effects of a specific type.\n * \n * **Korean**: 유형별 활성 효과 조회 (Get Effects by Type)\n * \n * @param player - Current player state\n * @param effectType - Type to retrieve\n * @returns Array of matching effects\n * \n * @public\n * @korean 유형별효과조회\n */\nexport function getEffectsByType(\n player: PlayerState,\n effectType: VitalPointEffectType\n): StatusEffect[] {\n return player.statusEffects.filter((effect) => effect.type === effectType);\n}\n\n/**\n * Gets the total number of active status effects.\n * \n * **Korean**: 활성 효과 개수 조회 (Get Active Effect Count)\n * \n * @param player - Current player state\n * @returns Number of active effects\n * \n * @public\n * @korean 효과개수조회\n */\nexport function getActiveEffectCount(player: PlayerState): number {\n return player.statusEffects.length;\n}\n\n/**\n * Checks if player can accept new status effects.\n * \n * **Korean**: 효과 추가 가능 여부 확인 (Can Add More Effects)\n * \n * @param player - Current player state\n * @returns True if under MAX_CONCURRENT_EFFECTS limit\n * \n * @public\n * @korean 효과추가가능확인\n */\nexport function canAddMoreEffects(player: PlayerState): boolean {\n return player.statusEffects.length < MAX_CONCURRENT_EFFECTS;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,mBACd,QACA,SACa;CACb,MAAM,cAAc,KAAK,KAAK;CAG9B,MAAM,iBAAiB,oBACrB,OAAO,eACP,SACA,YACD;CAGD,MAAM,kBAAkB,eAAe,KAAK,WAAW,OAAO,GAAG;CAEjE,OAAO;EACL,GAAG;EACH,eAAe;EACf,eAAe;EAChB;;;;;;;;;;;;;;;;;;;;;AAsBH,SAAgB,qBACd,QACA,cAAsB,KAAK,KAAK,EACnB;CACb,MAAM,gBAAgB,OAAO,cAAc,QACxC,WAAW,OAAO,UAAU,YAC9B;CAED,MAAM,kBAAkB,cAAc,KAAK,WAAW,OAAO,GAAG;CAEhE,OAAO;EACL,GAAG;EACH,eAAe;EACf,eAAe;EAChB;;;;;;;;;;;;;;;;;;;;;;AAwHH,SAAgB,mBAAmB,QAOjC;CACA,IAAI,cAAc;CAClB,IAAI,UAAU;CACd,IAAI,QAAQ;CACZ,IAAI,YAAY;CAChB,IAAI,eAAe;CACnB,IAAI,UAAU;CAEd,KAAK,MAAM,UAAU,OAAO,eAAe;EAEzC,IAAI,OAAO,SAAS,qBAAqB,iBACvC,OAAO;GACL,aAAa;GACb,SAAS;GACT,OAAO;GACP,WAAW;GACX,cAAc;GACd,SAAS;GACV;EAIH,QAAQ,OAAO,MAAf;GACE,KAAK,qBAAqB;IAExB,eAAe;IACf,SAAS;IACT,aAAa;IACb;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,WAAW;IACX,SAAS;IACT,aAAa;IACb;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,WAAW;IACX,SAAS;IACT,aAAa;IACb;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,gBAAgB;IAChB;GAEF,KAAK,qBAAqB;IAKxB,SAAS;IACT;GAEF,KAAK,qBAAqB;IAExB,aAAa;IACb,WAAW;IACX;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,WAAW;IACX;GAEF,KAAK,qBAAqB;IAExB,WAAW;IACX,eAAe;IACf,aAAa;IACb;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,WAAW;IACX,gBAAgB;IAChB,WAAW;IACX;;;CAIN,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD"}
|
|
1
|
+
{"version":3,"file":"PlayerEffectManager.js","names":[],"sources":["../../src/systems/PlayerEffectManager.ts"],"sourcesContent":["/**\n * Player Effect Manager for tracking and applying status effects.\n * \n * **Korean**: 플레이어 효과 관리자 (Player Effect Manager)\n * \n * This module provides utilities for managing status effects on player state,\n * including adding effects with stacking logic, removing expired effects,\n * and applying effect-based combat modifiers.\n * \n * ## Key Features\n * \n * - **Effect Tracking**: Add, remove, and update status effects\n * - **Stacking Logic**: Manage concurrent effects (max 5)\n * - **Expiration Handling**: Auto-remove expired effects\n * - **Combat Modifiers**: Calculate effect-based stat changes\n * \n * @module systems/PlayerEffectManager\n * @category Player Management\n * @korean 플레이어효과관리\n */\n\nimport { VitalPointEffectType } from \"../types/common\";\nimport { StatusEffect } from \"./types\";\nimport { PlayerState } from \"./player\";\nimport { applyEffectStacking, MAX_CONCURRENT_EFFECTS } from \"./EffectCalculator\";\n\n/**\n * Adds status effects to a player's active effects list.\n * \n * **Korean**: 플레이어에 효과 추가 (Add Effects to Player)\n * \n * Applies stacking logic and respects the max concurrent effects limit.\n * \n * @param player - Current player state\n * @param effects - New effects to add\n * @returns Updated player state with new effects\n * \n * @example\n * ```typescript\n * const updatedPlayer = addEffectsToPlayer(\n * player,\n * [paralyze, bleed, stun]\n * );\n * ```\n * \n * @korean 효과추가\n */\nexport function addEffectsToPlayer(\n player: PlayerState,\n effects: readonly StatusEffect[]\n): PlayerState {\n const currentTime = Date.now();\n\n const updatedEffects = applyEffectStacking(\n player.statusEffects,\n effects,\n currentTime\n );\n\n const activeEffectIds = updatedEffects.map((effect) => effect.id);\n\n return {\n ...player,\n statusEffects: updatedEffects,\n activeEffects: activeEffectIds,\n };\n}\n\n/**\n * Removes expired status effects from player.\n * \n * **Korean**: 만료 효과 제거 (Remove Expired Effects)\n * \n * Filters out effects whose endTime has passed.\n * \n * @param player - Current player state\n * @param currentTime - Current timestamp (default: Date.now())\n * @returns Updated player state with expired effects removed\n * \n * @example\n * ```typescript\n * const updatedPlayer = removeExpiredEffects(player, Date.now());\n * ```\n * \n * @korean 만료효과제거\n */\nexport function removeExpiredEffects(\n player: PlayerState,\n currentTime: number = Date.now()\n): PlayerState {\n const activeEffects = player.statusEffects.filter(\n (effect) => effect.endTime > currentTime\n );\n\n const activeEffectIds = activeEffects.map((effect) => effect.id);\n\n return {\n ...player,\n statusEffects: activeEffects,\n activeEffects: activeEffectIds,\n };\n}\n\n/**\n * Removes a specific status effect by ID.\n * \n * **Korean**: 특정 효과 제거 (Remove Specific Effect)\n * \n * @param player - Current player state\n * @param effectId - ID of effect to remove\n * @returns Updated player state with effect removed\n * \n * @example\n * ```typescript\n * const updatedPlayer = removeEffectById(player, \"stun_12345\");\n * ```\n * \n * @korean 효과제거\n */\nexport function removeEffectById(\n player: PlayerState,\n effectId: string\n): PlayerState {\n const activeEffects = player.statusEffects.filter(\n (effect) => effect.id !== effectId\n );\n\n const activeEffectIds = activeEffects.map((effect) => effect.id);\n\n return {\n ...player,\n statusEffects: activeEffects,\n activeEffects: activeEffectIds,\n };\n}\n\n/**\n * Removes all status effects of a specific type.\n * \n * **Korean**: 특정 유형 효과 모두 제거 (Remove All Effects of Type)\n * \n * @param player - Current player state\n * @param effectType - Type of effects to remove\n * @returns Updated player state with effects removed\n * \n * @example\n * ```typescript\n * const updatedPlayer = removeEffectsByType(\n * player,\n * VitalPointEffectType.PARALYSIS\n * );\n * ```\n * \n * @korean 유형별효과제거\n */\nexport function removeEffectsByType(\n player: PlayerState,\n effectType: VitalPointEffectType\n): PlayerState {\n const activeEffects = player.statusEffects.filter(\n (effect) => effect.type !== effectType\n );\n\n const activeEffectIds = activeEffects.map((effect) => effect.id);\n\n return {\n ...player,\n statusEffects: activeEffects,\n activeEffects: activeEffectIds,\n };\n}\n\n/**\n * Clears all status effects from player.\n * \n * **Korean**: 모든 효과 제거 (Clear All Effects)\n * \n * Useful for healing items, rest periods, or match resets.\n * \n * @param player - Current player state\n * @returns Updated player state with no effects\n * \n * @example\n * ```typescript\n * const clearedPlayer = clearAllEffects(player);\n * ```\n * \n * @korean 전체효과제거\n */\nexport function clearAllEffects(player: PlayerState): PlayerState {\n return {\n ...player,\n statusEffects: [],\n activeEffects: [],\n };\n}\n\n/**\n * Calculates combat stat modifiers based on active status effects.\n * \n * **Korean**: 효과 기반 전투 배율 계산 (Calculate Effect-Based Combat Modifiers)\n * \n * Returns multipliers for various combat attributes affected by status effects.\n * \n * @param player - Current player state\n * @returns Object with stat multipliers (1.0 = no change)\n * \n * @example\n * ```typescript\n * const modifiers = getEffectModifiers(player);\n * const effectiveDamage = baseDamage * modifiers.attackPower;\n * const effectiveSpeed = baseSpeed * modifiers.speed;\n * ```\n * \n * @korean 효과배율계산\n */\nexport function getEffectModifiers(player: PlayerState): {\n attackPower: number;\n defense: number;\n speed: number;\n technique: number;\n staminaRegen: number;\n kiRegen: number;\n} {\n let attackPower = 1.0;\n let defense = 1.0;\n let speed = 1.0;\n let technique = 1.0;\n let staminaRegen = 1.0;\n let kiRegen = 1.0;\n\n for (const effect of player.statusEffects) {\n // UNCONSCIOUSNESS takes precedence - early return with complete incapacitation\n if (effect.type === VitalPointEffectType.UNCONSCIOUSNESS) {\n return {\n attackPower: 0,\n defense: 0,\n speed: 0,\n technique: 0,\n staminaRegen: 0,\n kiRegen: 0,\n };\n }\n\n // Apply other effect modifiers multiplicatively\n switch (effect.type) {\n case VitalPointEffectType.PARALYSIS:\n // Severe movement and action impairment\n attackPower *= 0.3;\n speed *= 0.2;\n technique *= 0.4;\n break;\n\n case VitalPointEffectType.STUN:\n // Moderate impairment\n attackPower *= 0.5;\n defense *= 0.6;\n speed *= 0.5;\n technique *= 0.6;\n break;\n\n case VitalPointEffectType.PAIN:\n // Reduces effectiveness across the board\n attackPower *= 0.7;\n defense *= 0.8;\n speed *= 0.8;\n technique *= 0.7;\n break;\n\n case VitalPointEffectType.BLOOD_FLOW_RESTRICTION:\n // Gradual weakening from reduced circulation\n attackPower *= 0.85;\n staminaRegen *= 0.5;\n break;\n\n case VitalPointEffectType.BREATHLESSNESS:\n // NOTE: Stamina regen is handled by BreathingDisruptionSystem.calculateStaminaRegen()\n // which applies severity-specific multipliers (25%-75% depending on disruption level).\n // DO NOT apply a flat multiplier here as it would compound with the breathing system.\n // Only apply secondary effects here.\n speed *= 0.7; // Reduced movement speed due to breathing difficulty\n break;\n\n case VitalPointEffectType.DISORIENTATION:\n // Accuracy and technique affected\n technique *= 0.6;\n defense *= 0.7;\n break;\n\n case VitalPointEffectType.WEAKNESS:\n // Overall power reduction\n attackPower *= 0.7;\n defense *= 0.8;\n break;\n\n case VitalPointEffectType.NERVE_DISRUPTION:\n // Ki system and coordination impaired\n kiRegen *= 0.5;\n attackPower *= 0.8;\n technique *= 0.7;\n break;\n\n case VitalPointEffectType.ORGAN_DISRUPTION:\n // Internal damage affecting all systems\n attackPower *= 0.6;\n defense *= 0.7;\n staminaRegen *= 0.4;\n kiRegen *= 0.4;\n break;\n }\n }\n\n return {\n attackPower,\n defense,\n speed,\n technique,\n staminaRegen,\n kiRegen,\n };\n}\n\n/**\n * Checks if player has a specific effect type active.\n * \n * **Korean**: 효과 활성 여부 확인 (Check Effect Active)\n * \n * @param player - Current player state\n * @param effectType - Type to check for\n * @returns True if effect type is active\n * \n * @example\n * ```typescript\n * if (hasEffect(player, VitalPointEffectType.PARALYSIS)) {\n * console.log(\"Player is paralyzed!\");\n * }\n * ```\n * \n * @korean 효과확인\n */\nexport function hasEffect(\n player: PlayerState,\n effectType: VitalPointEffectType\n): boolean {\n return player.statusEffects.some((effect) => effect.type === effectType);\n}\n\n/**\n * Gets all active effects of a specific type.\n * \n * **Korean**: 유형별 활성 효과 조회 (Get Effects by Type)\n * \n * @param player - Current player state\n * @param effectType - Type to retrieve\n * @returns Array of matching effects\n * \n * @korean 유형별효과조회\n */\nexport function getEffectsByType(\n player: PlayerState,\n effectType: VitalPointEffectType\n): StatusEffect[] {\n return player.statusEffects.filter((effect) => effect.type === effectType);\n}\n\n/**\n * Gets the total number of active status effects.\n * \n * **Korean**: 활성 효과 개수 조회 (Get Active Effect Count)\n * \n * @param player - Current player state\n * @returns Number of active effects\n * \n * @korean 효과개수조회\n */\nexport function getActiveEffectCount(player: PlayerState): number {\n return player.statusEffects.length;\n}\n\n/**\n * Checks if player can accept new status effects.\n * \n * **Korean**: 효과 추가 가능 여부 확인 (Can Add More Effects)\n * \n * @param player - Current player state\n * @returns True if under MAX_CONCURRENT_EFFECTS limit\n * \n * @korean 효과추가가능확인\n */\nexport function canAddMoreEffects(player: PlayerState): boolean {\n return player.statusEffects.length < MAX_CONCURRENT_EFFECTS;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,SAAgB,mBACd,QACA,SACa;CACb,MAAM,cAAc,KAAK,KAAK;CAE9B,MAAM,iBAAiB,oBACrB,OAAO,eACP,SACA,YACD;CAED,MAAM,kBAAkB,eAAe,KAAK,WAAW,OAAO,GAAG;CAEjE,OAAO;EACL,GAAG;EACH,eAAe;EACf,eAAe;EAChB;;;;;;;;;;;;;;;;;;;;AAqBH,SAAgB,qBACd,QACA,cAAsB,KAAK,KAAK,EACnB;CACb,MAAM,gBAAgB,OAAO,cAAc,QACxC,WAAW,OAAO,UAAU,YAC9B;CAED,MAAM,kBAAkB,cAAc,KAAK,WAAW,OAAO,GAAG;CAEhE,OAAO;EACL,GAAG;EACH,eAAe;EACf,eAAe;EAChB;;;;;;;;;;;;;;;;;;;;;AAoHH,SAAgB,mBAAmB,QAOjC;CACA,IAAI,cAAc;CAClB,IAAI,UAAU;CACd,IAAI,QAAQ;CACZ,IAAI,YAAY;CAChB,IAAI,eAAe;CACnB,IAAI,UAAU;CAEd,KAAK,MAAM,UAAU,OAAO,eAAe;EAEzC,IAAI,OAAO,SAAS,qBAAqB,iBACvC,OAAO;GACL,aAAa;GACb,SAAS;GACT,OAAO;GACP,WAAW;GACX,cAAc;GACd,SAAS;GACV;EAIH,QAAQ,OAAO,MAAf;GACE,KAAK,qBAAqB;IAExB,eAAe;IACf,SAAS;IACT,aAAa;IACb;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,WAAW;IACX,SAAS;IACT,aAAa;IACb;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,WAAW;IACX,SAAS;IACT,aAAa;IACb;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,gBAAgB;IAChB;GAEF,KAAK,qBAAqB;IAKxB,SAAS;IACT;GAEF,KAAK,qBAAqB;IAExB,aAAa;IACb,WAAW;IACX;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,WAAW;IACX;GAEF,KAAK,qBAAqB;IAExB,WAAW;IACX,eAAe;IACf,aAAa;IACb;GAEF,KAAK,qBAAqB;IAExB,eAAe;IACf,WAAW;IACX,gBAAgB;IAChB,WAAW;IACX;;;CAIN,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD"}
|
|
@@ -91,7 +91,6 @@ export declare const FONT_SIZE_CONSTRAINTS: {
|
|
|
91
91
|
* getScreenSize(1920); // 'xlarge'
|
|
92
92
|
* ```
|
|
93
93
|
*
|
|
94
|
-
* @public
|
|
95
94
|
* @korean 화면크기얻기
|
|
96
95
|
*/
|
|
97
96
|
export declare function getScreenSize(width: number): ScreenSize;
|
|
@@ -117,7 +116,6 @@ export declare function getScreenSize(width: number): ScreenSize;
|
|
|
117
116
|
* calculateFontSize(20, 'xlarge', 14, 24); // 24 (clamped from 28)
|
|
118
117
|
* ```
|
|
119
118
|
*
|
|
120
|
-
* @public
|
|
121
119
|
* @korean 글꼴크기계산
|
|
122
120
|
*/
|
|
123
121
|
export declare function calculateFontSize(baseSize: number, screenSize: ScreenSize, minSize?: number, maxSize?: number): number;
|
|
@@ -138,7 +136,6 @@ export declare function calculateFontSize(baseSize: number, screenSize: ScreenSi
|
|
|
138
136
|
* calculateSpacing(20, 'xlarge'); // 30 (20 * 1.5)
|
|
139
137
|
* ```
|
|
140
138
|
*
|
|
141
|
-
* @public
|
|
142
139
|
* @korean 간격계산
|
|
143
140
|
*/
|
|
144
141
|
export declare function calculateSpacing(baseSpacing: number, screenSize: ScreenSize): number;
|
|
@@ -155,7 +152,6 @@ export declare function calculateSpacing(baseSpacing: number, screenSize: Screen
|
|
|
155
152
|
* getFontScale('xlarge'); // 1.4
|
|
156
153
|
* ```
|
|
157
154
|
*
|
|
158
|
-
* @public
|
|
159
155
|
* @korean 글꼴스케일얻기
|
|
160
156
|
*/
|
|
161
157
|
export declare function getFontScale(screenSize: ScreenSize): number;
|
|
@@ -172,7 +168,6 @@ export declare function getFontScale(screenSize: ScreenSize): number;
|
|
|
172
168
|
* getSpacingScale('xlarge'); // 1.5
|
|
173
169
|
* ```
|
|
174
170
|
*
|
|
175
|
-
* @public
|
|
176
171
|
* @korean 간격스케일얻기
|
|
177
172
|
*/
|
|
178
173
|
export declare function getSpacingScale(screenSize: ScreenSize): number;
|
|
@@ -191,7 +186,6 @@ export declare function getSpacingScale(screenSize: ScreenSize): number;
|
|
|
191
186
|
* // 'font-size 200ms linear, padding 200ms linear, ...'
|
|
192
187
|
* ```
|
|
193
188
|
*
|
|
194
|
-
* @public
|
|
195
189
|
* @korean 전환문자열생성
|
|
196
190
|
*/
|
|
197
191
|
export declare function createTransitionString(config?: Partial<ResizeTransitionConfig>): string;
|
|
@@ -210,7 +204,6 @@ export declare function createTransitionString(config?: Partial<ResizeTransition
|
|
|
210
204
|
* console.log(config.spacingScale); // 0.5
|
|
211
205
|
* ```
|
|
212
206
|
*
|
|
213
|
-
* @public
|
|
214
207
|
* @korean 반응형설정생성
|
|
215
208
|
*/
|
|
216
209
|
export declare function createResponsiveConfig(width: number, height: number): ResponsiveScaleConfig;
|
|
@@ -238,7 +231,6 @@ export declare function createResponsiveConfig(width: number, height: number): R
|
|
|
238
231
|
* </div>
|
|
239
232
|
* ```
|
|
240
233
|
*
|
|
241
|
-
* @public
|
|
242
234
|
* @korean 반응형값계산
|
|
243
235
|
*/
|
|
244
236
|
export declare function calculateResponsiveValues(width: number, baseFontSize?: number, baseSpacing?: number): ResponsiveValues;
|
|
@@ -261,7 +253,6 @@ export declare function calculateResponsiveValues(width: number, baseFontSize?:
|
|
|
261
253
|
* console.log(result.isMobile); // false
|
|
262
254
|
* ```
|
|
263
255
|
*
|
|
264
|
-
* @public
|
|
265
256
|
* @korean 화면크기테스트
|
|
266
257
|
*/
|
|
267
258
|
export declare function testScreenSize(width: number, height: number): ScreenSizeTestResult;
|
|
@@ -271,7 +262,6 @@ export declare function testScreenSize(width: number, height: number): ScreenSiz
|
|
|
271
262
|
* @param width - Viewport width
|
|
272
263
|
* @returns True if mobile screen size
|
|
273
264
|
*
|
|
274
|
-
* @public
|
|
275
265
|
* @korean 모바일확인
|
|
276
266
|
*/
|
|
277
267
|
export declare function isMobileSize(width: number): boolean;
|
|
@@ -281,7 +271,6 @@ export declare function isMobileSize(width: number): boolean;
|
|
|
281
271
|
* @param width - Viewport width
|
|
282
272
|
* @returns True if tablet screen size
|
|
283
273
|
*
|
|
284
|
-
* @public
|
|
285
274
|
* @korean 태블릿확인
|
|
286
275
|
*/
|
|
287
276
|
export declare function isTabletSize(width: number): boolean;
|
|
@@ -291,7 +280,6 @@ export declare function isTabletSize(width: number): boolean;
|
|
|
291
280
|
* @param width - Viewport width
|
|
292
281
|
* @returns True if desktop, large, or xlarge screen size
|
|
293
282
|
*
|
|
294
|
-
* @public
|
|
295
283
|
* @korean 데스크톱확인
|
|
296
284
|
*/
|
|
297
285
|
export declare function isDesktopSize(width: number): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponsiveScaling.d.ts","sourceRoot":"","sources":["../../src/systems/ResponsiveScaling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,GACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,EAAE,qBAM3B,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,YAMnB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAMtB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,sBAK9B,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;IAChC,6CAA6C;;IAE7C,iDAAiD;;IAEjD,oCAAoC;;CAE5B,CAAC;AAEX
|
|
1
|
+
{"version":3,"file":"ResponsiveScaling.d.ts","sourceRoot":"","sources":["../../src/systems/ResponsiveScaling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,GACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,EAAE,qBAM3B,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,YAMnB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAMtB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,sBAK9B,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;IAChC,6CAA6C;;IAE7C,iDAAiD;;IAEjD,oCAAoC;;CAE5B,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAMvD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,MAA4C,EACrD,OAAO,GAAE,MAAuC,GAC/C,MAAM,CAMR;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,GACrB,MAAM,CAGR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAE3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAE9D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,OAAO,CAAC,sBAAsB,CAAM,GAC3C,MAAM,CAeR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,qBAAqB,CAWvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,MAAwC,EACtD,WAAW,GAAE,MAAW,GACvB,gBAAgB,CA6BlB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,oBAAoB,CActB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGpD"}
|
|
@@ -101,7 +101,6 @@ var FONT_SIZE_CONSTRAINTS = {
|
|
|
101
101
|
* getScreenSize(1920); // 'xlarge'
|
|
102
102
|
* ```
|
|
103
103
|
*
|
|
104
|
-
* @public
|
|
105
104
|
* @korean 화면크기얻기
|
|
106
105
|
*/
|
|
107
106
|
function getScreenSize(width) {
|
|
@@ -133,7 +132,6 @@ function getScreenSize(width) {
|
|
|
133
132
|
* calculateFontSize(20, 'xlarge', 14, 24); // 24 (clamped from 28)
|
|
134
133
|
* ```
|
|
135
134
|
*
|
|
136
|
-
* @public
|
|
137
135
|
* @korean 글꼴크기계산
|
|
138
136
|
*/
|
|
139
137
|
function calculateFontSize(baseSize, screenSize, minSize = FONT_SIZE_CONSTRAINTS.MIN_BODY_SIZE, maxSize = FONT_SIZE_CONSTRAINTS.MAX_SIZE) {
|
|
@@ -157,7 +155,6 @@ function calculateFontSize(baseSize, screenSize, minSize = FONT_SIZE_CONSTRAINTS
|
|
|
157
155
|
* calculateSpacing(20, 'xlarge'); // 30 (20 * 1.5)
|
|
158
156
|
* ```
|
|
159
157
|
*
|
|
160
|
-
* @public
|
|
161
158
|
* @korean 간격계산
|
|
162
159
|
*/
|
|
163
160
|
function calculateSpacing(baseSpacing, screenSize) {
|
|
@@ -177,7 +174,6 @@ function calculateSpacing(baseSpacing, screenSize) {
|
|
|
177
174
|
* getFontScale('xlarge'); // 1.4
|
|
178
175
|
* ```
|
|
179
176
|
*
|
|
180
|
-
* @public
|
|
181
177
|
* @korean 글꼴스케일얻기
|
|
182
178
|
*/
|
|
183
179
|
function getFontScale(screenSize) {
|
|
@@ -196,7 +192,6 @@ function getFontScale(screenSize) {
|
|
|
196
192
|
* getSpacingScale('xlarge'); // 1.5
|
|
197
193
|
* ```
|
|
198
194
|
*
|
|
199
|
-
* @public
|
|
200
195
|
* @korean 간격스케일얻기
|
|
201
196
|
*/
|
|
202
197
|
function getSpacingScale(screenSize) {
|
|
@@ -217,7 +212,6 @@ function getSpacingScale(screenSize) {
|
|
|
217
212
|
* // 'font-size 200ms linear, padding 200ms linear, ...'
|
|
218
213
|
* ```
|
|
219
214
|
*
|
|
220
|
-
* @public
|
|
221
215
|
* @korean 전환문자열생성
|
|
222
216
|
*/
|
|
223
217
|
function createTransitionString(config = {}) {
|
|
@@ -240,7 +234,6 @@ function createTransitionString(config = {}) {
|
|
|
240
234
|
* console.log(config.spacingScale); // 0.5
|
|
241
235
|
* ```
|
|
242
236
|
*
|
|
243
|
-
* @public
|
|
244
237
|
* @korean 반응형설정생성
|
|
245
238
|
*/
|
|
246
239
|
function createResponsiveConfig(width, height) {
|
|
@@ -279,7 +272,6 @@ function createResponsiveConfig(width, height) {
|
|
|
279
272
|
* </div>
|
|
280
273
|
* ```
|
|
281
274
|
*
|
|
282
|
-
* @public
|
|
283
275
|
* @korean 반응형값계산
|
|
284
276
|
*/
|
|
285
277
|
function calculateResponsiveValues(width, baseFontSize = FONT_SIZE_CONSTRAINTS.BASE_SIZE, baseSpacing = 16) {
|
|
@@ -321,7 +313,6 @@ function calculateResponsiveValues(width, baseFontSize = FONT_SIZE_CONSTRAINTS.B
|
|
|
321
313
|
* console.log(result.isMobile); // false
|
|
322
314
|
* ```
|
|
323
315
|
*
|
|
324
|
-
* @public
|
|
325
316
|
* @korean 화면크기테스트
|
|
326
317
|
*/
|
|
327
318
|
function testScreenSize(width, height) {
|
|
@@ -342,7 +333,6 @@ function testScreenSize(width, height) {
|
|
|
342
333
|
* @param width - Viewport width
|
|
343
334
|
* @returns True if mobile screen size
|
|
344
335
|
*
|
|
345
|
-
* @public
|
|
346
336
|
* @korean 모바일확인
|
|
347
337
|
*/
|
|
348
338
|
function isMobileSize(width) {
|
|
@@ -354,7 +344,6 @@ function isMobileSize(width) {
|
|
|
354
344
|
* @param width - Viewport width
|
|
355
345
|
* @returns True if tablet screen size
|
|
356
346
|
*
|
|
357
|
-
* @public
|
|
358
347
|
* @korean 태블릿확인
|
|
359
348
|
*/
|
|
360
349
|
function isTabletSize(width) {
|
|
@@ -366,7 +355,6 @@ function isTabletSize(width) {
|
|
|
366
355
|
* @param width - Viewport width
|
|
367
356
|
* @returns True if desktop, large, or xlarge screen size
|
|
368
357
|
*
|
|
369
|
-
* @public
|
|
370
358
|
* @korean 데스크톱확인
|
|
371
359
|
*/
|
|
372
360
|
function isDesktopSize(width) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponsiveScaling.js","names":[],"sources":["../../src/systems/ResponsiveScaling.ts"],"sourcesContent":["/**\n * Responsive Scaling System for Black Trigram\n * \n * Centralized scaling calculations for responsive layout across all screen sizes.\n * Implements proportional font and spacing scaling with smooth transitions.\n * \n * Features:\n * - Five screen size categories (mobile, tablet, desktop, large, xlarge)\n * - Font scaling: 0.8x (mobile) to 1.4x (4K displays)\n * - Spacing scaling: 0.5x (mobile) to 1.5x (4K displays)\n * - Korean text readability: 14-24px range enforced\n * - Smooth CSS transitions for resize operations\n * - 60fps performance maintained\n * \n * @module systems/ResponsiveScaling\n * @category Responsive Layout\n * @korean 반응형스케일시스템\n */\n\nimport type {\n ScreenSize,\n ResponsiveBreakpoints,\n FontScaleMap,\n SpacingScaleMap,\n ResponsiveScaleConfig,\n ResizeTransitionConfig,\n ResponsiveValues,\n ScreenSizeTestResult,\n} from '../types/ResponsiveTypes';\n\n// Re-export types for convenience\nexport type {\n ScreenSize,\n ResponsiveBreakpoints,\n FontScaleMap,\n SpacingScaleMap,\n ResponsiveScaleConfig,\n ResizeTransitionConfig,\n ResponsiveValues,\n ScreenSizeTestResult,\n};\n\n/**\n * Standard breakpoints for responsive design\n * Maps viewport widths to device categories\n * \n * Note: XLARGE is defined as a reference value (2560px) but xlarge category\n * starts at LARGE (1920px). This allows for consistent scaling across all\n * displays from 1920px upwards, including 2K, 4K, and ultra-wide monitors.\n * \n * @constant\n * @category Responsive Layout\n */\nexport const RESPONSIVE_BREAKPOINTS: ResponsiveBreakpoints = {\n MOBILE: 768, // < 768px: Mobile devices\n TABLET: 1024, // 768-1024px: Tablets\n DESKTOP: 1440, // 1024-1440px: Standard desktop\n LARGE: 1920, // 1440-1920px: HD/2K displays\n XLARGE: 2560, // Reference for 4K displays (xlarge starts at 1920px)\n} as const;\n\n/**\n * Font scaling multipliers by screen size\n * Base size (16px) * scale = final size\n * \n * Results clamped to 14-24px for readability\n * \n * @constant\n * @category Typography\n */\nexport const FONT_SCALE_MAP: FontScaleMap = {\n mobile: 0.8, // 16px * 0.8 = 12.8px → clamped to 14px min\n tablet: 0.9, // 16px * 0.9 = 14.4px\n desktop: 1.0, // 16px * 1.0 = 16px (base)\n large: 1.2, // 16px * 1.2 = 19.2px\n xlarge: 1.4, // 16px * 1.4 = 22.4px → clamped to 24px max\n} as const;\n\n/**\n * Spacing scaling multipliers by screen size\n * Base spacing * scale = final spacing\n * \n * @constant\n * @category Layout\n */\nexport const SPACING_SCALE_MAP: SpacingScaleMap = {\n mobile: 0.5, // Compact spacing for small screens\n tablet: 0.75, // Moderate spacing for tablets\n desktop: 1.0, // Standard reference spacing\n large: 1.25, // Spacious for large displays\n xlarge: 1.5, // Maximum spacing for 4K\n} as const;\n\n/**\n * Default transition configuration for smooth resizing\n * Optimized for 60fps performance\n * \n * @constant\n * @category Animation\n */\nexport const DEFAULT_RESIZE_TRANSITION: ResizeTransitionConfig = {\n duration: '300ms',\n easing: 'ease-in-out',\n properties: ['font-size', 'padding', 'margin', 'width', 'height'] as const,\n enabled: true,\n} as const;\n\n/**\n * Font size constraints for Korean and English text\n * Ensures readability across all screen sizes\n * \n * @constant\n * @category Typography\n */\nexport const FONT_SIZE_CONSTRAINTS = {\n /** Minimum body text size for readability */\n MIN_BODY_SIZE: 14,\n /** Maximum size before text becomes too large */\n MAX_SIZE: 24,\n /** Base reference size (desktop) */\n BASE_SIZE: 16,\n} as const;\n\n/**\n * Determine screen size category from viewport width\n * \n * Categories:\n * - mobile: < 768px (phones)\n * - tablet: 768-1024px (tablets)\n * - desktop: 1024-1440px (standard monitors)\n * - large: 1440-1920px (HD/2K displays)\n * - xlarge: ≥1920px (4K/ultra-wide)\n * \n * @param width - Viewport width in pixels\n * @returns Screen size category\n * \n * @example\n * ```typescript\n * getScreenSize(375); // 'mobile'\n * getScreenSize(768); // 'tablet'\n * getScreenSize(1920); // 'xlarge'\n * ```\n * \n * @public\n * @korean 화면크기얻기\n */\nexport function getScreenSize(width: number): ScreenSize {\n if (width < RESPONSIVE_BREAKPOINTS.MOBILE) return 'mobile';\n if (width < RESPONSIVE_BREAKPOINTS.TABLET) return 'tablet';\n if (width < RESPONSIVE_BREAKPOINTS.DESKTOP) return 'desktop';\n if (width < RESPONSIVE_BREAKPOINTS.LARGE) return 'large';\n return 'xlarge';\n}\n\n/**\n * Calculate scaled font size with readability constraints\n * \n * Formula: baseSize * scale\n * Clamped: max(minSize, min(maxSize, calculated))\n * \n * Ensures Korean and English text remain readable at all sizes\n * \n * @param baseSize - Base font size in pixels (typically 16px)\n * @param screenSize - Current screen size category\n * @param minSize - Minimum allowed size (default: 14px)\n * @param maxSize - Maximum allowed size (default: 24px)\n * @returns Calculated font size in pixels\n * \n * @example\n * ```typescript\n * calculateFontSize(16, 'mobile'); // 14 (clamped from 12.8)\n * calculateFontSize(16, 'desktop'); // 16\n * calculateFontSize(16, 'xlarge'); // 22.4\n * calculateFontSize(20, 'xlarge', 14, 24); // 24 (clamped from 28)\n * ```\n * \n * @public\n * @korean 글꼴크기계산\n */\nexport function calculateFontSize(\n baseSize: number,\n screenSize: ScreenSize,\n minSize: number = FONT_SIZE_CONSTRAINTS.MIN_BODY_SIZE,\n maxSize: number = FONT_SIZE_CONSTRAINTS.MAX_SIZE\n): number {\n const scale = FONT_SCALE_MAP[screenSize];\n const scaled = baseSize * scale;\n \n // Clamp to readable range\n return Math.max(minSize, Math.min(maxSize, scaled));\n}\n\n/**\n * Calculate scaled spacing value\n * \n * Formula: baseSpacing * scale\n * Rounded to nearest integer for crisp rendering\n * \n * @param baseSpacing - Base spacing value in pixels\n * @param screenSize - Current screen size category\n * @returns Calculated spacing in pixels (rounded)\n * \n * @example\n * ```typescript\n * calculateSpacing(20, 'mobile'); // 10 (20 * 0.5)\n * calculateSpacing(20, 'desktop'); // 20\n * calculateSpacing(20, 'xlarge'); // 30 (20 * 1.5)\n * ```\n * \n * @public\n * @korean 간격계산\n */\nexport function calculateSpacing(\n baseSpacing: number,\n screenSize: ScreenSize\n): number {\n const scale = SPACING_SCALE_MAP[screenSize];\n return Math.round(baseSpacing * scale);\n}\n\n/**\n * Get font scale multiplier for screen size\n * \n * @param screenSize - Screen size category\n * @returns Scale multiplier (0.8 - 1.4)\n * \n * @example\n * ```typescript\n * getFontScale('mobile'); // 0.8\n * getFontScale('desktop'); // 1.0\n * getFontScale('xlarge'); // 1.4\n * ```\n * \n * @public\n * @korean 글꼴스케일얻기\n */\nexport function getFontScale(screenSize: ScreenSize): number {\n return FONT_SCALE_MAP[screenSize];\n}\n\n/**\n * Get spacing scale multiplier for screen size\n * \n * @param screenSize - Screen size category\n * @returns Scale multiplier (0.5 - 1.5)\n * \n * @example\n * ```typescript\n * getSpacingScale('mobile'); // 0.5\n * getSpacingScale('desktop'); // 1.0\n * getSpacingScale('xlarge'); // 1.5\n * ```\n * \n * @public\n * @korean 간격스케일얻기\n */\nexport function getSpacingScale(screenSize: ScreenSize): number {\n return SPACING_SCALE_MAP[screenSize];\n}\n\n/**\n * Create CSS transition string for smooth resizing\n * \n * @param config - Transition configuration (optional)\n * @returns CSS transition string\n * \n * @example\n * ```typescript\n * createTransitionString();\n * // 'font-size 300ms ease-in-out, padding 300ms ease-in-out, ...'\n * \n * createTransitionString({ duration: '200ms', easing: 'linear' });\n * // 'font-size 200ms linear, padding 200ms linear, ...'\n * ```\n * \n * @public\n * @korean 전환문자열생성\n */\nexport function createTransitionString(\n config: Partial<ResizeTransitionConfig> = {}\n): string {\n const {\n duration = DEFAULT_RESIZE_TRANSITION.duration,\n easing = DEFAULT_RESIZE_TRANSITION.easing,\n properties = DEFAULT_RESIZE_TRANSITION.properties,\n enabled = DEFAULT_RESIZE_TRANSITION.enabled,\n } = config;\n\n if (!enabled) {\n return 'none';\n }\n\n return properties\n .map((prop) => `${prop} ${duration} ${easing}`)\n .join(', ');\n}\n\n/**\n * Create complete responsive scale configuration\n * \n * @param width - Viewport width\n * @param height - Viewport height\n * @returns Complete responsive configuration\n * \n * @example\n * ```typescript\n * const config = createResponsiveConfig(375, 667);\n * console.log(config.screenSize); // 'mobile'\n * console.log(config.fontScale); // 0.8\n * console.log(config.spacingScale); // 0.5\n * ```\n * \n * @public\n * @korean 반응형설정생성\n */\nexport function createResponsiveConfig(\n width: number,\n height: number\n): ResponsiveScaleConfig {\n const screenSize = getScreenSize(width);\n const fontScale = getFontScale(screenSize);\n const spacingScale = getSpacingScale(screenSize);\n\n return {\n screenSize,\n fontScale,\n spacingScale,\n viewport: { width, height },\n };\n}\n\n/**\n * Calculate all responsive values for a component\n * \n * Computes font sizes, spacing, and transitions based on screen size\n * Ready-to-use values for component styling\n * \n * @param width - Viewport width\n * @param baseFontSize - Base font size (default: 16px)\n * @param baseSpacing - Base spacing unit (default: 16px)\n * @returns Complete responsive values\n * \n * @example\n * ```typescript\n * const values = calculateResponsiveValues(375);\n * \n * <div style={{\n * fontSize: values.fontSize.body,\n * padding: values.spacing.md,\n * transition: values.transition,\n * }}>\n * Responsive content\n * </div>\n * ```\n * \n * @public\n * @korean 반응형값계산\n */\nexport function calculateResponsiveValues(\n width: number,\n baseFontSize: number = FONT_SIZE_CONSTRAINTS.BASE_SIZE,\n baseSpacing: number = 16\n): ResponsiveValues {\n const screenSize = getScreenSize(width);\n \n // Calculate font sizes for all text levels\n const fontSize = {\n small: calculateFontSize(baseFontSize * 0.75, screenSize, 12, 18),\n body: calculateFontSize(baseFontSize, screenSize),\n title: calculateFontSize(baseFontSize * 1.5, screenSize, 18, 28),\n hero: calculateFontSize(baseFontSize * 2.25, screenSize, 24, 36),\n hud: calculateFontSize(baseFontSize * 1.25, screenSize, 16, 24),\n };\n\n // Calculate spacing scale\n const spacing = {\n xs: calculateSpacing(baseSpacing * 0.5, screenSize),\n sm: calculateSpacing(baseSpacing * 0.75, screenSize),\n md: calculateSpacing(baseSpacing, screenSize),\n lg: calculateSpacing(baseSpacing * 1.5, screenSize),\n xl: calculateSpacing(baseSpacing * 2, screenSize),\n };\n\n // Create transition string\n const transition = createTransitionString();\n\n return {\n fontSize,\n spacing,\n transition,\n };\n}\n\n/**\n * Test screen size determination for validation\n * \n * Useful for testing and debugging responsive breakpoints.\n * Screen size is determined by width (breakpoints), but height is included\n * in the result for testing portrait/landscape orientations.\n * \n * @param width - Viewport width to test\n * @param height - Viewport height to test\n * @returns Test result with screen size and device type flags\n * \n * @example\n * ```typescript\n * const result = testScreenSize(768, 1024);\n * console.log(result.screenSize); // 'tablet'\n * console.log(result.isTablet); // true\n * console.log(result.isMobile); // false\n * ```\n * \n * @public\n * @korean 화면크기테스트\n */\nexport function testScreenSize(\n width: number,\n height: number\n): ScreenSizeTestResult {\n const screenSize = getScreenSize(width);\n const isLandscape = width > height;\n \n return {\n width,\n height,\n screenSize,\n isMobile: screenSize === 'mobile',\n isTablet: screenSize === 'tablet',\n isDesktop: screenSize === 'desktop' || screenSize === 'large' || screenSize === 'xlarge',\n // Include landscape in test result for completeness\n isLandscape,\n };\n}\n\n/**\n * Check if screen size is mobile\n * \n * @param width - Viewport width\n * @returns True if mobile screen size\n * \n * @public\n * @korean 모바일확인\n */\nexport function isMobileSize(width: number): boolean {\n return getScreenSize(width) === 'mobile';\n}\n\n/**\n * Check if screen size is tablet\n * \n * @param width - Viewport width\n * @returns True if tablet screen size\n * \n * @public\n * @korean 태블릿확인\n */\nexport function isTabletSize(width: number): boolean {\n return getScreenSize(width) === 'tablet';\n}\n\n/**\n * Check if screen size is desktop or larger\n * \n * @param width - Viewport width\n * @returns True if desktop, large, or xlarge screen size\n * \n * @public\n * @korean 데스크톱확인\n */\nexport function isDesktopSize(width: number): boolean {\n const size = getScreenSize(width);\n return size === 'desktop' || size === 'large' || size === 'xlarge';\n}\n"],"mappings":";;;;;;;;;;;;AAqDA,IAAa,yBAAgD;CAC3D,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;;;;;AAWD,IAAa,iBAA+B;CAC1C,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;;;AASD,IAAa,oBAAqC;CAChD,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;;;AASD,IAAa,4BAAoD;CAC/D,UAAU;CACV,QAAQ;CACR,YAAY;EAAC;EAAa;EAAW;EAAU;EAAS;EAAS;CACjE,SAAS;CACV;;;;;;;;AASD,IAAa,wBAAwB;;CAEnC,eAAe;;CAEf,UAAU;;CAEV,WAAW;CACZ;;;;;;;;;;;;;;;;;;;;;;;;AAyBD,SAAgB,cAAc,OAA2B;CACvD,IAAI,QAAQ,uBAAuB,QAAQ,OAAO;CAClD,IAAI,QAAQ,uBAAuB,QAAQ,OAAO;CAClD,IAAI,QAAQ,uBAAuB,SAAS,OAAO;CACnD,IAAI,QAAQ,uBAAuB,OAAO,OAAO;CACjD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,SAAgB,kBACd,UACA,YACA,UAAkB,sBAAsB,eACxC,UAAkB,sBAAsB,UAChC;CAER,MAAM,SAAS,WADD,eAAe;CAI7B,OAAO,KAAK,IAAI,SAAS,KAAK,IAAI,SAAS,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;AAuBrD,SAAgB,iBACd,aACA,YACQ;CACR,MAAM,QAAQ,kBAAkB;CAChC,OAAO,KAAK,MAAM,cAAc,MAAM;;;;;;;;;;;;;;;;;;AAmBxC,SAAgB,aAAa,YAAgC;CAC3D,OAAO,eAAe;;;;;;;;;;;;;;;;;;AAmBxB,SAAgB,gBAAgB,YAAgC;CAC9D,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;;AAqB3B,SAAgB,uBACd,SAA0C,EAAE,EACpC;CACR,MAAM,EACJ,WAAW,0BAA0B,UACrC,SAAS,0BAA0B,QACnC,aAAa,0BAA0B,YACvC,UAAU,0BAA0B,YAClC;CAEJ,IAAI,CAAC,SACH,OAAO;CAGT,OAAO,WACJ,KAAK,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAC9C,KAAK,KAAK;;;;;;;;;;;;;;;;;;;;AAqBf,SAAgB,uBACd,OACA,QACuB;CACvB,MAAM,aAAa,cAAc,MAAM;CAIvC,OAAO;EACL;EACA,WALgB,aAAa,WAK7B;EACA,cALmB,gBAAgB,WAKnC;EACA,UAAU;GAAE;GAAO;GAAQ;EAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BH,SAAgB,0BACd,OACA,eAAuB,sBAAsB,WAC7C,cAAsB,IACJ;CAClB,MAAM,aAAa,cAAc,MAAM;CAuBvC,OAAO;EACL,UAAA;GApBA,OAAO,kBAAkB,eAAe,KAAM,YAAY,IAAI,GAAG;GACjE,MAAM,kBAAkB,cAAc,WAAW;GACjD,OAAO,kBAAkB,eAAe,KAAK,YAAY,IAAI,GAAG;GAChE,MAAM,kBAAkB,eAAe,MAAM,YAAY,IAAI,GAAG;GAChE,KAAK,kBAAkB,eAAe,MAAM,YAAY,IAAI,GAAG;GAgB/D;EACA,SAAA;GAZA,IAAI,iBAAiB,cAAc,IAAK,WAAW;GACnD,IAAI,iBAAiB,cAAc,KAAM,WAAW;GACpD,IAAI,iBAAiB,aAAa,WAAW;GAC7C,IAAI,iBAAiB,cAAc,KAAK,WAAW;GACnD,IAAI,iBAAiB,cAAc,GAAG,WAAW;GAQjD;EACA,YALiB,wBAKjB;EACD;;;;;;;;;;;;;;;;;;;;;;;;AAyBH,SAAgB,eACd,OACA,QACsB;CACtB,MAAM,aAAa,cAAc,MAAM;CAGvC,OAAO;EACL;EACA;EACA;EACA,UAAU,eAAe;EACzB,UAAU,eAAe;EACzB,WAAW,eAAe,aAAa,eAAe,WAAW,eAAe;EAEhF,aAVkB,QAAQ;EAW3B;;;;;;;;;;;AAYH,SAAgB,aAAa,OAAwB;CACnD,OAAO,cAAc,MAAM,KAAK;;;;;;;;;;;AAYlC,SAAgB,aAAa,OAAwB;CACnD,OAAO,cAAc,MAAM,KAAK;;;;;;;;;;;AAYlC,SAAgB,cAAc,OAAwB;CACpD,MAAM,OAAO,cAAc,MAAM;CACjC,OAAO,SAAS,aAAa,SAAS,WAAW,SAAS"}
|
|
1
|
+
{"version":3,"file":"ResponsiveScaling.js","names":[],"sources":["../../src/systems/ResponsiveScaling.ts"],"sourcesContent":["/**\n * Responsive Scaling System for Black Trigram\n * \n * Centralized scaling calculations for responsive layout across all screen sizes.\n * Implements proportional font and spacing scaling with smooth transitions.\n * \n * Features:\n * - Five screen size categories (mobile, tablet, desktop, large, xlarge)\n * - Font scaling: 0.8x (mobile) to 1.4x (4K displays)\n * - Spacing scaling: 0.5x (mobile) to 1.5x (4K displays)\n * - Korean text readability: 14-24px range enforced\n * - Smooth CSS transitions for resize operations\n * - 60fps performance maintained\n * \n * @module systems/ResponsiveScaling\n * @category Responsive Layout\n * @korean 반응형스케일시스템\n */\n\nimport type {\n ScreenSize,\n ResponsiveBreakpoints,\n FontScaleMap,\n SpacingScaleMap,\n ResponsiveScaleConfig,\n ResizeTransitionConfig,\n ResponsiveValues,\n ScreenSizeTestResult,\n} from '../types/ResponsiveTypes';\n\n// Re-export types for convenience\nexport type {\n ScreenSize,\n ResponsiveBreakpoints,\n FontScaleMap,\n SpacingScaleMap,\n ResponsiveScaleConfig,\n ResizeTransitionConfig,\n ResponsiveValues,\n ScreenSizeTestResult,\n};\n\n/**\n * Standard breakpoints for responsive design\n * Maps viewport widths to device categories\n * \n * Note: XLARGE is defined as a reference value (2560px) but xlarge category\n * starts at LARGE (1920px). This allows for consistent scaling across all\n * displays from 1920px upwards, including 2K, 4K, and ultra-wide monitors.\n * \n * @constant\n * @category Responsive Layout\n */\nexport const RESPONSIVE_BREAKPOINTS: ResponsiveBreakpoints = {\n MOBILE: 768, // < 768px: Mobile devices\n TABLET: 1024, // 768-1024px: Tablets\n DESKTOP: 1440, // 1024-1440px: Standard desktop\n LARGE: 1920, // 1440-1920px: HD/2K displays\n XLARGE: 2560, // Reference for 4K displays (xlarge starts at 1920px)\n} as const;\n\n/**\n * Font scaling multipliers by screen size\n * Base size (16px) * scale = final size\n * \n * Results clamped to 14-24px for readability\n * \n * @constant\n * @category Typography\n */\nexport const FONT_SCALE_MAP: FontScaleMap = {\n mobile: 0.8, // 16px * 0.8 = 12.8px → clamped to 14px min\n tablet: 0.9, // 16px * 0.9 = 14.4px\n desktop: 1.0, // 16px * 1.0 = 16px (base)\n large: 1.2, // 16px * 1.2 = 19.2px\n xlarge: 1.4, // 16px * 1.4 = 22.4px → clamped to 24px max\n} as const;\n\n/**\n * Spacing scaling multipliers by screen size\n * Base spacing * scale = final spacing\n * \n * @constant\n * @category Layout\n */\nexport const SPACING_SCALE_MAP: SpacingScaleMap = {\n mobile: 0.5, // Compact spacing for small screens\n tablet: 0.75, // Moderate spacing for tablets\n desktop: 1.0, // Standard reference spacing\n large: 1.25, // Spacious for large displays\n xlarge: 1.5, // Maximum spacing for 4K\n} as const;\n\n/**\n * Default transition configuration for smooth resizing\n * Optimized for 60fps performance\n * \n * @constant\n * @category Animation\n */\nexport const DEFAULT_RESIZE_TRANSITION: ResizeTransitionConfig = {\n duration: '300ms',\n easing: 'ease-in-out',\n properties: ['font-size', 'padding', 'margin', 'width', 'height'] as const,\n enabled: true,\n} as const;\n\n/**\n * Font size constraints for Korean and English text\n * Ensures readability across all screen sizes\n * \n * @constant\n * @category Typography\n */\nexport const FONT_SIZE_CONSTRAINTS = {\n /** Minimum body text size for readability */\n MIN_BODY_SIZE: 14,\n /** Maximum size before text becomes too large */\n MAX_SIZE: 24,\n /** Base reference size (desktop) */\n BASE_SIZE: 16,\n} as const;\n\n/**\n * Determine screen size category from viewport width\n * \n * Categories:\n * - mobile: < 768px (phones)\n * - tablet: 768-1024px (tablets)\n * - desktop: 1024-1440px (standard monitors)\n * - large: 1440-1920px (HD/2K displays)\n * - xlarge: ≥1920px (4K/ultra-wide)\n * \n * @param width - Viewport width in pixels\n * @returns Screen size category\n * \n * @example\n * ```typescript\n * getScreenSize(375); // 'mobile'\n * getScreenSize(768); // 'tablet'\n * getScreenSize(1920); // 'xlarge'\n * ```\n * \n * @korean 화면크기얻기\n */\nexport function getScreenSize(width: number): ScreenSize {\n if (width < RESPONSIVE_BREAKPOINTS.MOBILE) return 'mobile';\n if (width < RESPONSIVE_BREAKPOINTS.TABLET) return 'tablet';\n if (width < RESPONSIVE_BREAKPOINTS.DESKTOP) return 'desktop';\n if (width < RESPONSIVE_BREAKPOINTS.LARGE) return 'large';\n return 'xlarge';\n}\n\n/**\n * Calculate scaled font size with readability constraints\n * \n * Formula: baseSize * scale\n * Clamped: max(minSize, min(maxSize, calculated))\n * \n * Ensures Korean and English text remain readable at all sizes\n * \n * @param baseSize - Base font size in pixels (typically 16px)\n * @param screenSize - Current screen size category\n * @param minSize - Minimum allowed size (default: 14px)\n * @param maxSize - Maximum allowed size (default: 24px)\n * @returns Calculated font size in pixels\n * \n * @example\n * ```typescript\n * calculateFontSize(16, 'mobile'); // 14 (clamped from 12.8)\n * calculateFontSize(16, 'desktop'); // 16\n * calculateFontSize(16, 'xlarge'); // 22.4\n * calculateFontSize(20, 'xlarge', 14, 24); // 24 (clamped from 28)\n * ```\n * \n * @korean 글꼴크기계산\n */\nexport function calculateFontSize(\n baseSize: number,\n screenSize: ScreenSize,\n minSize: number = FONT_SIZE_CONSTRAINTS.MIN_BODY_SIZE,\n maxSize: number = FONT_SIZE_CONSTRAINTS.MAX_SIZE\n): number {\n const scale = FONT_SCALE_MAP[screenSize];\n const scaled = baseSize * scale;\n \n // Clamp to readable range\n return Math.max(minSize, Math.min(maxSize, scaled));\n}\n\n/**\n * Calculate scaled spacing value\n * \n * Formula: baseSpacing * scale\n * Rounded to nearest integer for crisp rendering\n * \n * @param baseSpacing - Base spacing value in pixels\n * @param screenSize - Current screen size category\n * @returns Calculated spacing in pixels (rounded)\n * \n * @example\n * ```typescript\n * calculateSpacing(20, 'mobile'); // 10 (20 * 0.5)\n * calculateSpacing(20, 'desktop'); // 20\n * calculateSpacing(20, 'xlarge'); // 30 (20 * 1.5)\n * ```\n * \n * @korean 간격계산\n */\nexport function calculateSpacing(\n baseSpacing: number,\n screenSize: ScreenSize\n): number {\n const scale = SPACING_SCALE_MAP[screenSize];\n return Math.round(baseSpacing * scale);\n}\n\n/**\n * Get font scale multiplier for screen size\n * \n * @param screenSize - Screen size category\n * @returns Scale multiplier (0.8 - 1.4)\n * \n * @example\n * ```typescript\n * getFontScale('mobile'); // 0.8\n * getFontScale('desktop'); // 1.0\n * getFontScale('xlarge'); // 1.4\n * ```\n * \n * @korean 글꼴스케일얻기\n */\nexport function getFontScale(screenSize: ScreenSize): number {\n return FONT_SCALE_MAP[screenSize];\n}\n\n/**\n * Get spacing scale multiplier for screen size\n * \n * @param screenSize - Screen size category\n * @returns Scale multiplier (0.5 - 1.5)\n * \n * @example\n * ```typescript\n * getSpacingScale('mobile'); // 0.5\n * getSpacingScale('desktop'); // 1.0\n * getSpacingScale('xlarge'); // 1.5\n * ```\n * \n * @korean 간격스케일얻기\n */\nexport function getSpacingScale(screenSize: ScreenSize): number {\n return SPACING_SCALE_MAP[screenSize];\n}\n\n/**\n * Create CSS transition string for smooth resizing\n * \n * @param config - Transition configuration (optional)\n * @returns CSS transition string\n * \n * @example\n * ```typescript\n * createTransitionString();\n * // 'font-size 300ms ease-in-out, padding 300ms ease-in-out, ...'\n * \n * createTransitionString({ duration: '200ms', easing: 'linear' });\n * // 'font-size 200ms linear, padding 200ms linear, ...'\n * ```\n * \n * @korean 전환문자열생성\n */\nexport function createTransitionString(\n config: Partial<ResizeTransitionConfig> = {}\n): string {\n const {\n duration = DEFAULT_RESIZE_TRANSITION.duration,\n easing = DEFAULT_RESIZE_TRANSITION.easing,\n properties = DEFAULT_RESIZE_TRANSITION.properties,\n enabled = DEFAULT_RESIZE_TRANSITION.enabled,\n } = config;\n\n if (!enabled) {\n return 'none';\n }\n\n return properties\n .map((prop) => `${prop} ${duration} ${easing}`)\n .join(', ');\n}\n\n/**\n * Create complete responsive scale configuration\n * \n * @param width - Viewport width\n * @param height - Viewport height\n * @returns Complete responsive configuration\n * \n * @example\n * ```typescript\n * const config = createResponsiveConfig(375, 667);\n * console.log(config.screenSize); // 'mobile'\n * console.log(config.fontScale); // 0.8\n * console.log(config.spacingScale); // 0.5\n * ```\n * \n * @korean 반응형설정생성\n */\nexport function createResponsiveConfig(\n width: number,\n height: number\n): ResponsiveScaleConfig {\n const screenSize = getScreenSize(width);\n const fontScale = getFontScale(screenSize);\n const spacingScale = getSpacingScale(screenSize);\n\n return {\n screenSize,\n fontScale,\n spacingScale,\n viewport: { width, height },\n };\n}\n\n/**\n * Calculate all responsive values for a component\n * \n * Computes font sizes, spacing, and transitions based on screen size\n * Ready-to-use values for component styling\n * \n * @param width - Viewport width\n * @param baseFontSize - Base font size (default: 16px)\n * @param baseSpacing - Base spacing unit (default: 16px)\n * @returns Complete responsive values\n * \n * @example\n * ```typescript\n * const values = calculateResponsiveValues(375);\n * \n * <div style={{\n * fontSize: values.fontSize.body,\n * padding: values.spacing.md,\n * transition: values.transition,\n * }}>\n * Responsive content\n * </div>\n * ```\n * \n * @korean 반응형값계산\n */\nexport function calculateResponsiveValues(\n width: number,\n baseFontSize: number = FONT_SIZE_CONSTRAINTS.BASE_SIZE,\n baseSpacing: number = 16\n): ResponsiveValues {\n const screenSize = getScreenSize(width);\n \n // Calculate font sizes for all text levels\n const fontSize = {\n small: calculateFontSize(baseFontSize * 0.75, screenSize, 12, 18),\n body: calculateFontSize(baseFontSize, screenSize),\n title: calculateFontSize(baseFontSize * 1.5, screenSize, 18, 28),\n hero: calculateFontSize(baseFontSize * 2.25, screenSize, 24, 36),\n hud: calculateFontSize(baseFontSize * 1.25, screenSize, 16, 24),\n };\n\n // Calculate spacing scale\n const spacing = {\n xs: calculateSpacing(baseSpacing * 0.5, screenSize),\n sm: calculateSpacing(baseSpacing * 0.75, screenSize),\n md: calculateSpacing(baseSpacing, screenSize),\n lg: calculateSpacing(baseSpacing * 1.5, screenSize),\n xl: calculateSpacing(baseSpacing * 2, screenSize),\n };\n\n // Create transition string\n const transition = createTransitionString();\n\n return {\n fontSize,\n spacing,\n transition,\n };\n}\n\n/**\n * Test screen size determination for validation\n * \n * Useful for testing and debugging responsive breakpoints.\n * Screen size is determined by width (breakpoints), but height is included\n * in the result for testing portrait/landscape orientations.\n * \n * @param width - Viewport width to test\n * @param height - Viewport height to test\n * @returns Test result with screen size and device type flags\n * \n * @example\n * ```typescript\n * const result = testScreenSize(768, 1024);\n * console.log(result.screenSize); // 'tablet'\n * console.log(result.isTablet); // true\n * console.log(result.isMobile); // false\n * ```\n * \n * @korean 화면크기테스트\n */\nexport function testScreenSize(\n width: number,\n height: number\n): ScreenSizeTestResult {\n const screenSize = getScreenSize(width);\n const isLandscape = width > height;\n \n return {\n width,\n height,\n screenSize,\n isMobile: screenSize === 'mobile',\n isTablet: screenSize === 'tablet',\n isDesktop: screenSize === 'desktop' || screenSize === 'large' || screenSize === 'xlarge',\n // Include landscape in test result for completeness\n isLandscape,\n };\n}\n\n/**\n * Check if screen size is mobile\n * \n * @param width - Viewport width\n * @returns True if mobile screen size\n * \n * @korean 모바일확인\n */\nexport function isMobileSize(width: number): boolean {\n return getScreenSize(width) === 'mobile';\n}\n\n/**\n * Check if screen size is tablet\n * \n * @param width - Viewport width\n * @returns True if tablet screen size\n * \n * @korean 태블릿확인\n */\nexport function isTabletSize(width: number): boolean {\n return getScreenSize(width) === 'tablet';\n}\n\n/**\n * Check if screen size is desktop or larger\n * \n * @param width - Viewport width\n * @returns True if desktop, large, or xlarge screen size\n * \n * @korean 데스크톱확인\n */\nexport function isDesktopSize(width: number): boolean {\n const size = getScreenSize(width);\n return size === 'desktop' || size === 'large' || size === 'xlarge';\n}\n"],"mappings":";;;;;;;;;;;;AAqDA,IAAa,yBAAgD;CAC3D,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;;;;;AAWD,IAAa,iBAA+B;CAC1C,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;;;AASD,IAAa,oBAAqC;CAChD,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACT;;;;;;;;AASD,IAAa,4BAAoD;CAC/D,UAAU;CACV,QAAQ;CACR,YAAY;EAAC;EAAa;EAAW;EAAU;EAAS;EAAS;CACjE,SAAS;CACV;;;;;;;;AASD,IAAa,wBAAwB;;CAEnC,eAAe;;CAEf,UAAU;;CAEV,WAAW;CACZ;;;;;;;;;;;;;;;;;;;;;;;AAwBD,SAAgB,cAAc,OAA2B;CACvD,IAAI,QAAQ,uBAAuB,QAAQ,OAAO;CAClD,IAAI,QAAQ,uBAAuB,QAAQ,OAAO;CAClD,IAAI,QAAQ,uBAAuB,SAAS,OAAO;CACnD,IAAI,QAAQ,uBAAuB,OAAO,OAAO;CACjD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,SAAgB,kBACd,UACA,YACA,UAAkB,sBAAsB,eACxC,UAAkB,sBAAsB,UAChC;CAER,MAAM,SAAS,WADD,eAAe;CAI7B,OAAO,KAAK,IAAI,SAAS,KAAK,IAAI,SAAS,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;AAsBrD,SAAgB,iBACd,aACA,YACQ;CACR,MAAM,QAAQ,kBAAkB;CAChC,OAAO,KAAK,MAAM,cAAc,MAAM;;;;;;;;;;;;;;;;;AAkBxC,SAAgB,aAAa,YAAgC;CAC3D,OAAO,eAAe;;;;;;;;;;;;;;;;;AAkBxB,SAAgB,gBAAgB,YAAgC;CAC9D,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;AAoB3B,SAAgB,uBACd,SAA0C,EAAE,EACpC;CACR,MAAM,EACJ,WAAW,0BAA0B,UACrC,SAAS,0BAA0B,QACnC,aAAa,0BAA0B,YACvC,UAAU,0BAA0B,YAClC;CAEJ,IAAI,CAAC,SACH,OAAO;CAGT,OAAO,WACJ,KAAK,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAC9C,KAAK,KAAK;;;;;;;;;;;;;;;;;;;AAoBf,SAAgB,uBACd,OACA,QACuB;CACvB,MAAM,aAAa,cAAc,MAAM;CAIvC,OAAO;EACL;EACA,WALgB,aAAa,WAK7B;EACA,cALmB,gBAAgB,WAKnC;EACA,UAAU;GAAE;GAAO;GAAQ;EAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,SAAgB,0BACd,OACA,eAAuB,sBAAsB,WAC7C,cAAsB,IACJ;CAClB,MAAM,aAAa,cAAc,MAAM;CAuBvC,OAAO;EACL,UAAA;GApBA,OAAO,kBAAkB,eAAe,KAAM,YAAY,IAAI,GAAG;GACjE,MAAM,kBAAkB,cAAc,WAAW;GACjD,OAAO,kBAAkB,eAAe,KAAK,YAAY,IAAI,GAAG;GAChE,MAAM,kBAAkB,eAAe,MAAM,YAAY,IAAI,GAAG;GAChE,KAAK,kBAAkB,eAAe,MAAM,YAAY,IAAI,GAAG;GAgB/D;EACA,SAAA;GAZA,IAAI,iBAAiB,cAAc,IAAK,WAAW;GACnD,IAAI,iBAAiB,cAAc,KAAM,WAAW;GACpD,IAAI,iBAAiB,aAAa,WAAW;GAC7C,IAAI,iBAAiB,cAAc,KAAK,WAAW;GACnD,IAAI,iBAAiB,cAAc,GAAG,WAAW;GAQjD;EACA,YALiB,wBAKjB;EACD;;;;;;;;;;;;;;;;;;;;;;;AAwBH,SAAgB,eACd,OACA,QACsB;CACtB,MAAM,aAAa,cAAc,MAAM;CAGvC,OAAO;EACL;EACA;EACA;EACA,UAAU,eAAe;EACzB,UAAU,eAAe;EACzB,WAAW,eAAe,aAAa,eAAe,WAAW,eAAe;EAEhF,aAVkB,QAAQ;EAW3B;;;;;;;;;;AAWH,SAAgB,aAAa,OAAwB;CACnD,OAAO,cAAc,MAAM,KAAK;;;;;;;;;;AAWlC,SAAgB,aAAa,OAAwB;CACnD,OAAO,cAAc,MAAM,KAAK;;;;;;;;;;AAWlC,SAAgB,cAAc,OAAwB;CACpD,MAAM,OAAO,cAAc,MAAM;CACjC,OAAO,SAAS,aAAa,SAAS,WAAW,SAAS"}
|
|
@@ -83,7 +83,6 @@ export declare function applyCounterStanceDamage(baseDamage: number, isCounterSt
|
|
|
83
83
|
* const recommendedStance = trigramSystem.recommendStance(playerState);
|
|
84
84
|
* ```
|
|
85
85
|
*
|
|
86
|
-
* @public
|
|
87
86
|
* @category Trigram System
|
|
88
87
|
* @korean 팔괘시스템
|
|
89
88
|
*/
|
|
@@ -121,7 +120,6 @@ export declare class TrigramSystem {
|
|
|
121
120
|
* console.log(offensive); // "offensive"
|
|
122
121
|
* ```
|
|
123
122
|
*
|
|
124
|
-
* @public
|
|
125
123
|
* @korean 자세특성조회
|
|
126
124
|
*/
|
|
127
125
|
getStanceCharacteristic(stance: TrigramStance): "defensive" | "offensive" | "balanced";
|
|
@@ -140,7 +138,6 @@ export declare class TrigramSystem {
|
|
|
140
138
|
* }
|
|
141
139
|
* ```
|
|
142
140
|
*
|
|
143
|
-
* @public
|
|
144
141
|
* @korean 방어자세확인
|
|
145
142
|
*/
|
|
146
143
|
isDefensiveStance(stance: TrigramStance): boolean;
|
|
@@ -159,7 +156,6 @@ export declare class TrigramSystem {
|
|
|
159
156
|
* }
|
|
160
157
|
* ```
|
|
161
158
|
*
|
|
162
|
-
* @public
|
|
163
159
|
* @korean 공격자세확인
|
|
164
160
|
*/
|
|
165
161
|
isOffensiveStance(stance: TrigramStance): boolean;
|
|
@@ -183,7 +179,6 @@ export declare class TrigramSystem {
|
|
|
183
179
|
* );
|
|
184
180
|
* ```
|
|
185
181
|
*
|
|
186
|
-
* @public
|
|
187
182
|
* @korean 자세전환가능확인
|
|
188
183
|
*/
|
|
189
184
|
canTransitionTo(fromStance: TrigramStance, toStance: TrigramStance, player: PlayerState): boolean;
|
|
@@ -205,7 +200,6 @@ export declare class TrigramSystem {
|
|
|
205
200
|
* console.log(`Consider switching to ${recommended}`);
|
|
206
201
|
* ```
|
|
207
202
|
*
|
|
208
|
-
* @public
|
|
209
203
|
* @korean 최적자세추천
|
|
210
204
|
*/
|
|
211
205
|
recommendStance(player: PlayerState): TrigramStance;
|
|
@@ -237,7 +231,6 @@ export declare class TrigramSystem {
|
|
|
237
231
|
* console.log(`Cost: ${cost.ki} Ki, ${cost.stamina} Stamina`);
|
|
238
232
|
* ```
|
|
239
233
|
*
|
|
240
|
-
* @public
|
|
241
234
|
* @korean 자세전환비용
|
|
242
235
|
*/
|
|
243
236
|
getTransitionCost(from: TrigramStance, to: TrigramStance, player?: PlayerState): TrigramTransitionCost;
|
|
@@ -259,7 +252,6 @@ export declare class TrigramSystem {
|
|
|
259
252
|
* ); // Returns > 1.0 (Water beats Fire)
|
|
260
253
|
* ```
|
|
261
254
|
*
|
|
262
|
-
* @public
|
|
263
255
|
* @korean 자세효과성계산
|
|
264
256
|
*/
|
|
265
257
|
calculateStanceEffectiveness(attackerStance: TrigramStance, defenderStance: TrigramStance): number;
|
|
@@ -277,7 +269,6 @@ export declare class TrigramSystem {
|
|
|
277
269
|
* console.log(`${name.korean} (${name.english})`); // "건 (Heaven)"
|
|
278
270
|
* ```
|
|
279
271
|
*
|
|
280
|
-
* @public
|
|
281
272
|
* @korean 자세이름조회
|
|
282
273
|
*/
|
|
283
274
|
getStanceName(stance: TrigramStance): {
|
|
@@ -306,7 +297,6 @@ export declare class TrigramSystem {
|
|
|
306
297
|
* console.log(counterStance); // TrigramStance.GAM (Water counters Heaven)
|
|
307
298
|
* ```
|
|
308
299
|
*
|
|
309
|
-
* @public
|
|
310
300
|
* @korean 상극자세조회
|
|
311
301
|
*/
|
|
312
302
|
getCounterStance(opponentStance: TrigramStance): TrigramStance;
|
|
@@ -332,7 +322,6 @@ export declare class TrigramSystem {
|
|
|
332
322
|
* }
|
|
333
323
|
* ```
|
|
334
324
|
*
|
|
335
|
-
* @public
|
|
336
325
|
* @korean 상극자세확인
|
|
337
326
|
*/
|
|
338
327
|
isCounterStance(myStance: TrigramStance, opponentStance: TrigramStance): boolean;
|
|
@@ -344,7 +333,6 @@ export declare class TrigramSystem {
|
|
|
344
333
|
* @param stance - Stance to get data for
|
|
345
334
|
* @returns Stance data object
|
|
346
335
|
*
|
|
347
|
-
* @public
|
|
348
336
|
* @korean 자세데이터조회
|
|
349
337
|
*/
|
|
350
338
|
getCurrentStanceData(stance: TrigramStance): {
|
|
@@ -376,7 +364,6 @@ export declare class TrigramSystem {
|
|
|
376
364
|
* }
|
|
377
365
|
* ```
|
|
378
366
|
*
|
|
379
|
-
* @public
|
|
380
367
|
* @korean 자세전환검증
|
|
381
368
|
*/
|
|
382
369
|
validateTransition(fromStance: TrigramStance, toStance: TrigramStance, player: PlayerState): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrigramSystem.d.ts","sourceRoot":"","sources":["../../src/systems/TrigramSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAyB,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAIzE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAShE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,OAAO,GACvB,MAAM,CAMR;AAED
|
|
1
|
+
{"version":3,"file":"TrigramSystem.d.ts","sourceRoot":"","sources":["../../src/systems/TrigramSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAyB,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAIzE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAShE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,OAAO,GACvB,MAAM,CAMR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAoB;IAEtC;;;;OAIG;;IAKH;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,uBAAuB,CACrB,MAAM,EAAE,aAAa,GACpB,WAAW,GAAG,WAAW,GAAG,UAAU;IAezC;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIjD;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIjD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,eAAe,CACb,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,WAAW,GAClB,OAAO;IAYV;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa;IAiBnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,iBAAiB,CACtB,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,aAAa,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,qBAAqB;IAmCxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,4BAA4B,CAC1B,cAAc,EAAE,aAAa,EAC7B,cAAc,EAAE,aAAa,GAC5B,MAAM;IAOT;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAezE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,gBAAgB,CAAC,cAAc,EAAE,aAAa,GAAG,aAAa;IAI9D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,GAAG,OAAO;IAIhF;;;;;;;;;OASG;IACH,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG;QAC3C,EAAE,EAAE,aAAa,CAAC;QAClB,IAAI,EAAE,UAAU,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB;IAUD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,kBAAkB,CAChB,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,WAAW,GAClB;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAuBvC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -97,7 +97,6 @@ function applyCounterStanceDamage(baseDamage, isCounterStance) {
|
|
|
97
97
|
* const recommendedStance = trigramSystem.recommendStance(playerState);
|
|
98
98
|
* ```
|
|
99
99
|
*
|
|
100
|
-
* @public
|
|
101
100
|
* @category Trigram System
|
|
102
101
|
* @korean 팔괘시스템
|
|
103
102
|
*/
|
|
@@ -137,7 +136,6 @@ var TrigramSystem = class {
|
|
|
137
136
|
* console.log(offensive); // "offensive"
|
|
138
137
|
* ```
|
|
139
138
|
*
|
|
140
|
-
* @public
|
|
141
139
|
* @korean 자세특성조회
|
|
142
140
|
*/
|
|
143
141
|
getStanceCharacteristic(stance) {
|
|
@@ -164,7 +162,6 @@ var TrigramSystem = class {
|
|
|
164
162
|
* }
|
|
165
163
|
* ```
|
|
166
164
|
*
|
|
167
|
-
* @public
|
|
168
165
|
* @korean 방어자세확인
|
|
169
166
|
*/
|
|
170
167
|
isDefensiveStance(stance) {
|
|
@@ -185,7 +182,6 @@ var TrigramSystem = class {
|
|
|
185
182
|
* }
|
|
186
183
|
* ```
|
|
187
184
|
*
|
|
188
|
-
* @public
|
|
189
185
|
* @korean 공격자세확인
|
|
190
186
|
*/
|
|
191
187
|
isOffensiveStance(stance) {
|
|
@@ -211,7 +207,6 @@ var TrigramSystem = class {
|
|
|
211
207
|
* );
|
|
212
208
|
* ```
|
|
213
209
|
*
|
|
214
|
-
* @public
|
|
215
210
|
* @korean 자세전환가능확인
|
|
216
211
|
*/
|
|
217
212
|
canTransitionTo(fromStance, toStance, player) {
|
|
@@ -239,7 +234,6 @@ var TrigramSystem = class {
|
|
|
239
234
|
* console.log(`Consider switching to ${recommended}`);
|
|
240
235
|
* ```
|
|
241
236
|
*
|
|
242
|
-
* @public
|
|
243
237
|
* @korean 최적자세추천
|
|
244
238
|
*/
|
|
245
239
|
recommendStance(player) {
|
|
@@ -284,7 +278,6 @@ var TrigramSystem = class {
|
|
|
284
278
|
* console.log(`Cost: ${cost.ki} Ki, ${cost.stamina} Stamina`);
|
|
285
279
|
* ```
|
|
286
280
|
*
|
|
287
|
-
* @public
|
|
288
281
|
* @korean 자세전환비용
|
|
289
282
|
*/
|
|
290
283
|
getTransitionCost(from, to, player) {
|
|
@@ -327,7 +320,6 @@ var TrigramSystem = class {
|
|
|
327
320
|
* ); // Returns > 1.0 (Water beats Fire)
|
|
328
321
|
* ```
|
|
329
322
|
*
|
|
330
|
-
* @public
|
|
331
323
|
* @korean 자세효과성계산
|
|
332
324
|
*/
|
|
333
325
|
calculateStanceEffectiveness(attackerStance, defenderStance) {
|
|
@@ -347,7 +339,6 @@ var TrigramSystem = class {
|
|
|
347
339
|
* console.log(`${name.korean} (${name.english})`); // "건 (Heaven)"
|
|
348
340
|
* ```
|
|
349
341
|
*
|
|
350
|
-
* @public
|
|
351
342
|
* @korean 자세이름조회
|
|
352
343
|
*/
|
|
353
344
|
getStanceName(stance) {
|
|
@@ -411,7 +402,6 @@ var TrigramSystem = class {
|
|
|
411
402
|
* console.log(counterStance); // TrigramStance.GAM (Water counters Heaven)
|
|
412
403
|
* ```
|
|
413
404
|
*
|
|
414
|
-
* @public
|
|
415
405
|
* @korean 상극자세조회
|
|
416
406
|
*/
|
|
417
407
|
getCounterStance(opponentStance) {
|
|
@@ -439,7 +429,6 @@ var TrigramSystem = class {
|
|
|
439
429
|
* }
|
|
440
430
|
* ```
|
|
441
431
|
*
|
|
442
|
-
* @public
|
|
443
432
|
* @korean 상극자세확인
|
|
444
433
|
*/
|
|
445
434
|
isCounterStance(myStance, opponentStance) {
|
|
@@ -453,7 +442,6 @@ var TrigramSystem = class {
|
|
|
453
442
|
* @param stance - Stance to get data for
|
|
454
443
|
* @returns Stance data object
|
|
455
444
|
*
|
|
456
|
-
* @public
|
|
457
445
|
* @korean 자세데이터조회
|
|
458
446
|
*/
|
|
459
447
|
getCurrentStanceData(stance) {
|
|
@@ -488,7 +476,6 @@ var TrigramSystem = class {
|
|
|
488
476
|
* }
|
|
489
477
|
* ```
|
|
490
478
|
*
|
|
491
|
-
* @public
|
|
492
479
|
* @korean 자세전환검증
|
|
493
480
|
*/
|
|
494
481
|
validateTransition(fromStance, toStance, player) {
|