blacktrigram 0.7.81 → 0.7.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/lib/components/screens/combat/CombatScreen3D.js +16 -11
  2. package/lib/components/screens/combat/CombatScreen3D.js.map +1 -1
  3. package/lib/components/screens/combat/components/effects/ParticleAudio3D.js +2 -1
  4. package/lib/components/screens/combat/components/effects/ParticleAudio3D.js.map +1 -1
  5. package/lib/components/screens/combat/hooks/useAICombat.js +2 -1
  6. package/lib/components/screens/combat/hooks/useAICombat.js.map +1 -1
  7. package/lib/components/screens/combat/hooks/useCombatActions.js +25 -9
  8. package/lib/components/screens/combat/hooks/useCombatActions.js.map +1 -1
  9. package/lib/components/screens/combat/hooks/useCombatAttackMovement.js +10 -6
  10. package/lib/components/screens/combat/hooks/useCombatAttackMovement.js.map +1 -1
  11. package/lib/components/screens/intro/IntroScreen3D.js +8 -4
  12. package/lib/components/screens/intro/IntroScreen3D.js.map +1 -1
  13. package/lib/components/screens/training/TrainingScreen3D.js +5 -3
  14. package/lib/components/screens/training/TrainingScreen3D.js.map +1 -1
  15. package/lib/components/screens/training/hooks/useAttackMovement.js +2 -1
  16. package/lib/components/screens/training/hooks/useAttackMovement.js.map +1 -1
  17. package/lib/components/screens/training/hooks/useTrainingActions.js +2 -1
  18. package/lib/components/screens/training/hooks/useTrainingActions.js.map +1 -1
  19. package/lib/components/shared/three/effects/ActionFeedback.js +2 -1
  20. package/lib/components/shared/three/effects/ActionFeedback.js.map +1 -1
  21. package/lib/components/shared/three/effects/DamageNumbers.js +2 -1
  22. package/lib/components/shared/three/effects/DamageNumbers.js.map +1 -1
  23. package/lib/components/shared/three/effects/HitEffects3D.js +2 -1
  24. package/lib/components/shared/three/effects/HitEffects3D.js.map +1 -1
  25. package/lib/components/shared/ui/SplashScreen.js +2 -2
  26. package/lib/hooks/useMuscleActivation.js +4 -1
  27. package/lib/hooks/useMuscleActivation.js.map +1 -1
  28. package/lib/hooks/useRoundTransition.js +2 -1
  29. package/lib/hooks/useRoundTransition.js.map +1 -1
  30. package/lib/hooks/useSkeletalAnimation.js +1 -1
  31. package/lib/index.js +2 -2
  32. package/lib/systems/VitalPointSystem.js +2 -1
  33. package/lib/systems/VitalPointSystem.js.map +1 -1
  34. package/lib/systems/animation/core/AnimationStateMachine.js +1 -1
  35. package/lib/systems/index.js +2 -2
  36. package/lib/utils/inputSystem.js +2 -1
  37. package/lib/utils/inputSystem.js.map +1 -1
  38. package/package.json +6 -6
@@ -18,12 +18,13 @@ import useRoundTransition from "../../../hooks/useRoundTransition.js";
18
18
  import { TRIGRAM_TECHNIQUES } from "../../../systems/trigram/techniques/index.js";
19
19
  import useTechniqueSelection from "../../../hooks/useTechniqueSelection.js";
20
20
  import { useWebGLContextLossHandler } from "../../../hooks/useWebGLContextLossHandler.js";
21
+ import { injuryMovementModifier } from "../../../systems/movement/InjuryMovementModifier.js";
22
+ import { MovementType, SpeedModifierSystem } from "../../../systems/physics/SpeedModifierSystem.js";
21
23
  import { useCombatAttackMovement } from "./hooks/useCombatAttackMovement.js";
22
24
  import { BalanceSystem } from "../../../systems/combat/BalanceSystem.js";
23
25
  import { CombatSystem } from "../../../systems/CombatSystem.js";
24
26
  import { getPersonalityByArchetype } from "../../../systems/ai/AIPersonality.js";
25
27
  import { AdaptiveDifficulty } from "../../../systems/ai/AdaptiveDifficulty.js";
26
- import { injuryMovementModifier } from "../../../systems/movement/InjuryMovementModifier.js";
27
28
  import { COMBAT_TOP_HUD_HEIGHT_PERCENT, getMobileControlsBottom } from "../../../types/constants/layout.js";
28
29
  import { getAnimationTypeForTechnique } from "../../../data/techniqueMappings.js";
29
30
  import { toHexColor } from "../../../utils/colorHelpers.js";
@@ -50,7 +51,6 @@ import { RoundAnnouncement } from "./components/feedback/RoundAnnouncementOverla
50
51
  import { RoundDisplayStatus } from "./components/feedback/RoundDisplayStatus.js";
51
52
  import { RoundStartAnnouncement } from "./components/feedback/RoundStartAnnouncementOverlayHtml.js";
52
53
  import { InputBufferDisplay } from "./components/indicators/InputBufferDisplay.js";
53
- import { MovementType, SpeedModifierSystem } from "../../../systems/physics/SpeedModifierSystem.js";
54
54
  import { animationStateToPlayerAnimation, convertPlayerStateToProps, getBalanceState } from "../../../utils/player3DHelpers.js";
55
55
  import { MobileControlsOverlay } from "../../shared/mobile/MobileControlsPure.js";
56
56
  import { StanceWheelPure } from "../../shared/mobile/StanceWheelPure.js";
@@ -67,8 +67,8 @@ import { CombatPortraitStatusStrip } from "./components/hud/CombatPortraitStatus
67
67
  import { FPSMonitor } from "./components/hud/FPSMonitor.js";
68
68
  import { PlayerStateOverlayHtml } from "./components/hud/PlayerStateOverlayHtml.js";
69
69
  import { BalanceIndicatorOverlayHtml } from "../../ui/combat/BalanceIndicatorOverlayHtml.js";
70
- import { STANCE_INDEX_MAP, calculateAccuracy } from "./helpers/combatHelpers.js";
71
70
  import { AnimationUpdater } from "./helpers/AnimationUpdater.js";
71
+ import { STANCE_INDEX_MAP, calculateAccuracy } from "./helpers/combatHelpers.js";
72
72
  import { isRunningSpeed } from "../../../systems/movement/helpers/accelerationUtils.js";
73
73
  import { AccelerationUpdater } from "../../../systems/movement/helpers/AccelerationUpdater.js";
74
74
  import { useAICombat } from "./hooks/useAICombat.js";
@@ -842,7 +842,8 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
842
842
  const handleStanceChangeWithAnimation = useCallback((newStance) => {
843
843
  const currentStance = validPlayers[0].currentStance;
844
844
  if (player1Animation.transitionToStanceChange(currentStance, newStance)) {
845
- setPreviousStance(STANCE_INDEX_MAP.get(currentStance) ?? 0);
845
+ const prevStance = STANCE_INDEX_MAP.get(currentStance) ?? 0;
846
+ setPreviousStance(prevStance);
846
847
  setPlayer1LocalStance(newStance);
847
848
  handleStanceSwitch(newStance);
848
849
  playStanceChangeSound();
@@ -1170,7 +1171,8 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
1170
1171
  damageDealt: player1.totalDamageDealt ?? 0,
1171
1172
  damageTaken: player1.totalDamageReceived ?? 0
1172
1173
  });
1173
- updateDifficultyTarget(adaptiveDifficulty.getDifficultyParameters());
1174
+ const newParams = adaptiveDifficulty.getDifficultyParameters();
1175
+ updateDifficultyTarget(newParams);
1174
1176
  }
1175
1177
  }, [
1176
1178
  combatState.roundEnded,
@@ -1230,10 +1232,11 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
1230
1232
  {
1231
1233
  const playerPos = validPlayers[0].position;
1232
1234
  const feintOffsetMeters = .5;
1233
- moveAIPlayer({
1235
+ const feintPos = {
1234
1236
  x: playerPos.x + (Math.random() - .5) * feintOffsetMeters,
1235
1237
  y: playerPos.y + (Math.random() - .5) * feintOffsetMeters
1236
- });
1238
+ };
1239
+ moveAIPlayer(feintPos);
1237
1240
  addCombatMessage("AI 페인트", "AI Feint");
1238
1241
  setTimeout(() => {
1239
1242
  if (!combatState.roundEnded && combatState.roundStarted && validPlayers.length >= 2) {
@@ -1245,10 +1248,11 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
1245
1248
  const retreatDistanceMeters = .8;
1246
1249
  const halfWidth = arenaBounds.worldWidthMeters / 2;
1247
1250
  const halfDepth = arenaBounds.worldDepthMeters / 2;
1248
- moveAIPlayer({
1251
+ const retreatPos = {
1249
1252
  x: Math.max(-halfWidth + .5, Math.min(halfWidth - .5, currentPlayerPos.x + dx / dist * retreatDistanceMeters)),
1250
1253
  y: Math.max(-halfDepth + .5, Math.min(halfDepth - .5, currentPlayerPos.y + dy / dist * retreatDistanceMeters))
1251
- });
1254
+ };
1255
+ moveAIPlayer(retreatPos);
1252
1256
  }
1253
1257
  }, 200);
1254
1258
  }
@@ -1355,7 +1359,7 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
1355
1359
  const key = event.key.toLowerCase();
1356
1360
  if (key >= "1" && key <= "8") {
1357
1361
  const stanceIndex = parseInt(key) - 1;
1358
- handleStanceSwitch([
1362
+ const stances = [
1359
1363
  TrigramStance.GEON,
1360
1364
  TrigramStance.TAE,
1361
1365
  TrigramStance.LI,
@@ -1364,7 +1368,8 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
1364
1368
  TrigramStance.GAM,
1365
1369
  TrigramStance.GAN,
1366
1370
  TrigramStance.GON
1367
- ][stanceIndex]);
1371
+ ];
1372
+ handleStanceSwitch(stances[stanceIndex]);
1368
1373
  event.preventDefault();
1369
1374
  }
1370
1375
  if (key === " ") {