blacktrigram 0.7.81 → 0.7.83
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/components/screens/combat/CombatScreen3D.js +16 -11
- package/lib/components/screens/combat/CombatScreen3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/ParticleAudio3D.js +2 -1
- package/lib/components/screens/combat/components/effects/ParticleAudio3D.js.map +1 -1
- package/lib/components/screens/combat/hooks/useAICombat.js +2 -1
- package/lib/components/screens/combat/hooks/useAICombat.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatActions.js +25 -9
- package/lib/components/screens/combat/hooks/useCombatActions.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.js +10 -6
- package/lib/components/screens/combat/hooks/useCombatAttackMovement.js.map +1 -1
- package/lib/components/screens/intro/IntroScreen3D.js +8 -4
- package/lib/components/screens/intro/IntroScreen3D.js.map +1 -1
- package/lib/components/screens/training/TrainingScreen3D.js +5 -3
- package/lib/components/screens/training/TrainingScreen3D.js.map +1 -1
- package/lib/components/screens/training/hooks/useAttackMovement.js +2 -1
- package/lib/components/screens/training/hooks/useAttackMovement.js.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingActions.js +2 -1
- package/lib/components/screens/training/hooks/useTrainingActions.js.map +1 -1
- package/lib/components/shared/three/effects/ActionFeedback.js +2 -1
- package/lib/components/shared/three/effects/ActionFeedback.js.map +1 -1
- package/lib/components/shared/three/effects/DamageNumbers.js +2 -1
- package/lib/components/shared/three/effects/DamageNumbers.js.map +1 -1
- package/lib/components/shared/three/effects/HitEffects3D.js +2 -1
- package/lib/components/shared/three/effects/HitEffects3D.js.map +1 -1
- package/lib/components/shared/ui/SplashScreen.js +2 -2
- package/lib/hooks/useMuscleActivation.js +4 -1
- package/lib/hooks/useMuscleActivation.js.map +1 -1
- package/lib/hooks/useRoundTransition.js +2 -1
- package/lib/hooks/useRoundTransition.js.map +1 -1
- package/lib/hooks/useSkeletalAnimation.js +1 -1
- package/lib/index.js +2 -2
- package/lib/systems/VitalPointSystem.js +2 -1
- package/lib/systems/VitalPointSystem.js.map +1 -1
- package/lib/systems/animation/core/AnimationStateMachine.js +1 -1
- package/lib/systems/index.js +2 -2
- package/lib/utils/inputSystem.js +2 -1
- package/lib/utils/inputSystem.js.map +1 -1
- package/package.json +7 -7
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
]
|
|
1371
|
+
];
|
|
1372
|
+
handleStanceSwitch(stances[stanceIndex]);
|
|
1368
1373
|
event.preventDefault();
|
|
1369
1374
|
}
|
|
1370
1375
|
if (key === " ") {
|