blacktrigram 0.7.18 → 0.7.19
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.d.ts.map +1 -1
- package/lib/components/screens/combat/CombatScreen3D.js +64 -28
- package/lib/components/screens/combat/CombatScreen3D.js.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.d.ts +9 -0
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.js +8 -4
- package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.js.map +1 -1
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.d.ts +9 -0
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.js +9 -4
- package/lib/components/screens/combat/components/effects/ConsciousnessBlur.js.map +1 -1
- package/lib/components/screens/combat/components/effects/PainVignette.d.ts +10 -0
- package/lib/components/screens/combat/components/effects/PainVignette.d.ts.map +1 -1
- package/lib/components/screens/combat/components/effects/PainVignette.js +7 -3
- package/lib/components/screens/combat/components/effects/PainVignette.js.map +1 -1
- package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.d.ts +43 -0
- package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.d.ts.map +1 -0
- package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.js +166 -0
- package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.js.map +1 -0
- package/lib/components/screens/combat/components/hud/MobileControlsWrapper.d.ts +8 -0
- package/lib/components/screens/combat/components/hud/MobileControlsWrapper.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/MobileControlsWrapper.js +5 -4
- package/lib/components/screens/combat/components/hud/MobileControlsWrapper.js.map +1 -1
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.d.ts +15 -0
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.d.ts.map +1 -1
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.js +10 -6
- package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.js.map +1 -1
- package/lib/components/screens/combat/components/hud/index.d.ts +2 -0
- package/lib/components/screens/combat/components/hud/index.d.ts.map +1 -1
- package/lib/components/screens/combat/components/indicators/StaminaWarning.d.ts +9 -0
- package/lib/components/screens/combat/components/indicators/StaminaWarning.d.ts.map +1 -1
- package/lib/components/screens/combat/components/indicators/StaminaWarning.js +7 -4
- package/lib/components/screens/combat/components/indicators/StaminaWarning.js.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatLayout.d.ts +1 -0
- package/lib/components/screens/combat/hooks/useCombatLayout.d.ts.map +1 -1
- package/lib/components/screens/combat/hooks/useCombatLayout.js +11 -5
- package/lib/components/screens/combat/hooks/useCombatLayout.js.map +1 -1
- package/lib/components/screens/intro/IntroScreen3D.js +1 -1
- package/lib/components/screens/training/TrainingScreen3D.d.ts.map +1 -1
- package/lib/components/screens/training/TrainingScreen3D.js +20 -8
- package/lib/components/screens/training/TrainingScreen3D.js.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingLayout.d.ts +1 -0
- package/lib/components/screens/training/hooks/useTrainingLayout.d.ts.map +1 -1
- package/lib/components/screens/training/hooks/useTrainingLayout.js +10 -3
- package/lib/components/screens/training/hooks/useTrainingLayout.js.map +1 -1
- package/lib/components/shared/ui/SplashScreen.js +2 -2
- package/lib/systems/animation/core/AnimationRegistry.d.ts +31 -0
- package/lib/systems/animation/core/AnimationRegistry.d.ts.map +1 -1
- package/lib/systems/animation/core/AnimationRegistry.js +59 -1
- package/lib/systems/animation/core/AnimationRegistry.js.map +1 -1
- package/lib/systems/animation/core/index.d.ts +1 -1
- package/lib/systems/animation/core/index.d.ts.map +1 -1
- package/lib/types/constants/layout.d.ts +11 -3
- package/lib/types/constants/layout.d.ts.map +1 -1
- package/lib/types/constants/layout.js +13 -4
- package/lib/types/constants/layout.js.map +1 -1
- package/lib/utils/deviceDetection.d.ts.map +1 -1
- package/lib/utils/deviceDetection.js +1 -1
- package/lib/utils/deviceDetection.js.map +1 -1
- package/lib/utils/mobileLayoutHelpers.d.ts +28 -10
- package/lib/utils/mobileLayoutHelpers.d.ts.map +1 -1
- package/lib/utils/mobileLayoutHelpers.js +24 -14
- package/lib/utils/mobileLayoutHelpers.js.map +1 -1
- package/lib/utils/responsiveOrientationConstants.d.ts +71 -0
- package/lib/utils/responsiveOrientationConstants.d.ts.map +1 -0
- package/lib/utils/responsiveOrientationConstants.js +74 -0
- package/lib/utils/responsiveOrientationConstants.js.map +1 -0
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CombatScreen3D.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/combat/CombatScreen3D.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAa,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"CombatScreen3D.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/combat/CombatScreen3D.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAa,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAsB1D,OAAO,EAEL,QAAQ,EAIT,MAAM,gBAAgB,CAAC;AAkFxB;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAC1B,IAAI,CAAC;IACV;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC;;OAEG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsgGxD,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -11,10 +11,11 @@ import { Z_INDEX } from "../../../types/LayoutTypes.js";
|
|
|
11
11
|
import { InjuryType } from "../../../types/injury.js";
|
|
12
12
|
import { TRIGRAM_STANCES_ORDER } from "../../../systems/trigram/types.js";
|
|
13
13
|
import { useKeyboardControls } from "../../../hooks/useKeyboardControls.js";
|
|
14
|
-
import { getAnimation,
|
|
14
|
+
import { getAnimation, resolveTechniqueAnimation } from "../../../systems/animation/core/AnimationRegistry.js";
|
|
15
15
|
import { determineRecoveryType, getRecoveryAnimationState } from "../../../systems/animation/catalogs/RecoveryAnimations.js";
|
|
16
16
|
import { usePlayerAnimation } from "../../../hooks/usePlayerAnimation.js";
|
|
17
17
|
import useRoundTransition from "../../../hooks/useRoundTransition.js";
|
|
18
|
+
import { TRIGRAM_TECHNIQUES } from "../../../systems/trigram/techniques/index.js";
|
|
18
19
|
import useTechniqueSelection from "../../../hooks/useTechniqueSelection.js";
|
|
19
20
|
import { useWebGLContextLossHandler } from "../../../hooks/useWebGLContextLossHandler.js";
|
|
20
21
|
import { injuryMovementModifier } from "../../../systems/movement/InjuryMovementModifier.js";
|
|
@@ -24,6 +25,7 @@ import BalanceSystem from "../../../systems/combat/BalanceSystem.js";
|
|
|
24
25
|
import CombatSystem from "../../../systems/CombatSystem.js";
|
|
25
26
|
import { getPersonalityByArchetype } from "../../../systems/ai/AIPersonality.js";
|
|
26
27
|
import { AdaptiveDifficulty } from "../../../systems/ai/AdaptiveDifficulty.js";
|
|
28
|
+
import { getMobileControlsBottom } from "../../../types/constants/layout.js";
|
|
27
29
|
import { getAnimationTypeForTechnique } from "../../../data/techniqueMappings.js";
|
|
28
30
|
import { toHexColor } from "../../../utils/colorHelpers.js";
|
|
29
31
|
import { usePlayerMovement } from "../../../utils/inputSystem.js";
|
|
@@ -59,6 +61,7 @@ import CombatTopHUD from "./components/hud/CombatTopHUD.js";
|
|
|
59
61
|
import CombatBottomHUD from "./components/hud/CombatBottomHUD.js";
|
|
60
62
|
import CombatLeftHUD from "./components/hud/CombatLeftHUD.js";
|
|
61
63
|
import CombatRightHUD from "./components/hud/CombatRightHUD.js";
|
|
64
|
+
import CombatPortraitStatusStrip from "./components/hud/CombatPortraitStatusStrip.js";
|
|
62
65
|
import FPSMonitor from "./components/hud/FPSMonitor.js";
|
|
63
66
|
import { PlayerStateOverlayHtml } from "./components/hud/PlayerStateOverlayHtml.js";
|
|
64
67
|
import { BalanceIndicatorOverlayHtml } from "../../ui/combat/BalanceIndicatorOverlayHtml.js";
|
|
@@ -107,7 +110,7 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
107
110
|
}, []);
|
|
108
111
|
const audio = useAudio();
|
|
109
112
|
useEffect(() => {}, []);
|
|
110
|
-
const { arenaBounds, isMobile, screenSize, layoutConstants } = useCombatLayout(width, height);
|
|
113
|
+
const { arenaBounds, isMobile, isPortrait, screenSize, layoutConstants } = useCombatLayout(width, height);
|
|
111
114
|
const theme = useKoreanTheme({
|
|
112
115
|
variant: "primary",
|
|
113
116
|
size: "md",
|
|
@@ -123,7 +126,19 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
123
126
|
default: return 1;
|
|
124
127
|
}
|
|
125
128
|
}, [screenSize]);
|
|
126
|
-
const cameraConfig = useMemo(() =>
|
|
129
|
+
const cameraConfig = useMemo(() => {
|
|
130
|
+
const base = createCameraConfig(isMobile);
|
|
131
|
+
if (!isPortrait) return base;
|
|
132
|
+
return {
|
|
133
|
+
...base,
|
|
134
|
+
fov: Math.min(80, base.fov + 15),
|
|
135
|
+
position: [
|
|
136
|
+
base.position[0],
|
|
137
|
+
base.position[1],
|
|
138
|
+
base.position[2] + 4
|
|
139
|
+
]
|
|
140
|
+
};
|
|
141
|
+
}, [isMobile, isPortrait]);
|
|
127
142
|
const renderConfig = useMemo(() => {
|
|
128
143
|
const performanceSettings = getPerformanceSettings(width, isMobile);
|
|
129
144
|
return {
|
|
@@ -796,7 +811,7 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
796
811
|
enabled: !isPaused && combatState.roundStarted && !combatState.roundEnded && matchCountdownComplete && !showRoundStart,
|
|
797
812
|
onTechniqueExecute: useCallback((technique) => {
|
|
798
813
|
feedbackActions.showTechnique(technique.name.korean, technique.name.english);
|
|
799
|
-
const animationName =
|
|
814
|
+
const animationName = resolveTechniqueAnimation(technique);
|
|
800
815
|
setPlayer1AttackAnimation(animationName);
|
|
801
816
|
setPlayer1TechniqueId(technique.id);
|
|
802
817
|
const attackDuration = getAnimation(animationName)?.duration ?? .55;
|
|
@@ -892,7 +907,9 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
892
907
|
combatState.roundEnded
|
|
893
908
|
]);
|
|
894
909
|
const handleAttackWithFeedback = useCallback(() => {
|
|
895
|
-
|
|
910
|
+
const basicTechnique = techniqueSelection.availableTechniques[0];
|
|
911
|
+
setPlayer1AttackAnimation(basicTechnique ? resolveTechniqueAnimation(basicTechnique) : "jab");
|
|
912
|
+
if (basicTechnique?.id) setPlayer1TechniqueId(basicTechnique.id);
|
|
896
913
|
if (player1Animation.transitionTo(AnimationState.ATTACK)) combatActions.setExecutingTechnique(true);
|
|
897
914
|
else {
|
|
898
915
|
console.warn("Attack animation transition failed; executing attack logic directly.");
|
|
@@ -901,7 +918,8 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
901
918
|
}, [
|
|
902
919
|
player1Animation,
|
|
903
920
|
combatActions,
|
|
904
|
-
handleAttack
|
|
921
|
+
handleAttack,
|
|
922
|
+
techniqueSelection.availableTechniques
|
|
905
923
|
]);
|
|
906
924
|
const handleDefendWithFeedback = useCallback(() => {
|
|
907
925
|
const defenderPos = playerPositions[0];
|
|
@@ -1166,19 +1184,23 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
1166
1184
|
updateDifficultyTarget
|
|
1167
1185
|
]);
|
|
1168
1186
|
const executeAIActionCallback = useCallback((action, targetPos, selectedTechnique, targetVitalPoint) => {
|
|
1187
|
+
const aiFallbackTechnique = TRIGRAM_TECHNIQUES[validPlayers[1]?.currentStance ?? TrigramStance.GEON]?.[0];
|
|
1188
|
+
const aiFallbackAnim = aiFallbackTechnique ? resolveTechniqueAnimation(aiFallbackTechnique) : "jab";
|
|
1169
1189
|
switch (action) {
|
|
1170
1190
|
case "attack":
|
|
1171
|
-
if (selectedTechnique
|
|
1172
|
-
const p2AttackAnimName =
|
|
1191
|
+
if (selectedTechnique) {
|
|
1192
|
+
const p2AttackAnimName = resolveTechniqueAnimation(selectedTechnique);
|
|
1173
1193
|
setPlayer2AttackAnimation(p2AttackAnimName);
|
|
1174
|
-
if (selectedTechnique
|
|
1194
|
+
if (selectedTechnique.id) setPlayer2TechniqueId(selectedTechnique.id);
|
|
1175
1195
|
const p2AttackDur = getAnimation(p2AttackAnimName)?.duration ?? .55;
|
|
1176
1196
|
player2AttackDurationRef.current = p2AttackDur;
|
|
1177
1197
|
player2Animation.transitionToAttack(p2AttackDur);
|
|
1178
1198
|
} else {
|
|
1179
|
-
setPlayer2AttackAnimation(
|
|
1180
|
-
|
|
1181
|
-
|
|
1199
|
+
setPlayer2AttackAnimation(aiFallbackAnim);
|
|
1200
|
+
if (aiFallbackTechnique?.id) setPlayer2TechniqueId(aiFallbackTechnique.id);
|
|
1201
|
+
const p2FallbackDur = getAnimation(aiFallbackAnim)?.duration ?? .55;
|
|
1202
|
+
player2AttackDurationRef.current = p2FallbackDur;
|
|
1203
|
+
player2Animation.transitionToAttack(p2FallbackDur);
|
|
1182
1204
|
}
|
|
1183
1205
|
handleAIAttack(selectedTechnique, targetVitalPoint);
|
|
1184
1206
|
break;
|
|
@@ -1188,17 +1210,19 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
1188
1210
|
break;
|
|
1189
1211
|
case "technique":
|
|
1190
1212
|
case "combo":
|
|
1191
|
-
if (selectedTechnique
|
|
1192
|
-
const p2TechAnimName =
|
|
1213
|
+
if (selectedTechnique) {
|
|
1214
|
+
const p2TechAnimName = resolveTechniqueAnimation(selectedTechnique);
|
|
1193
1215
|
setPlayer2AttackAnimation(p2TechAnimName);
|
|
1194
|
-
if (selectedTechnique
|
|
1216
|
+
if (selectedTechnique.id) setPlayer2TechniqueId(selectedTechnique.id);
|
|
1195
1217
|
const p2TechDur = getAnimation(p2TechAnimName)?.duration ?? .6;
|
|
1196
1218
|
player2AttackDurationRef.current = p2TechDur;
|
|
1197
1219
|
player2Animation.transitionToAttack(p2TechDur);
|
|
1198
1220
|
} else {
|
|
1199
|
-
setPlayer2AttackAnimation(
|
|
1200
|
-
|
|
1201
|
-
|
|
1221
|
+
setPlayer2AttackAnimation(aiFallbackAnim);
|
|
1222
|
+
if (aiFallbackTechnique?.id) setPlayer2TechniqueId(aiFallbackTechnique.id);
|
|
1223
|
+
const p2FallbackDur = getAnimation(aiFallbackAnim)?.duration ?? .6;
|
|
1224
|
+
player2AttackDurationRef.current = p2FallbackDur;
|
|
1225
|
+
player2Animation.transitionToAttack(p2FallbackDur);
|
|
1202
1226
|
}
|
|
1203
1227
|
handleAITechnique(selectedTechnique, targetVitalPoint);
|
|
1204
1228
|
break;
|
|
@@ -1235,17 +1259,19 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
1235
1259
|
}
|
|
1236
1260
|
break;
|
|
1237
1261
|
case "counter":
|
|
1238
|
-
if (selectedTechnique
|
|
1239
|
-
const p2CounterAnimName =
|
|
1262
|
+
if (selectedTechnique) {
|
|
1263
|
+
const p2CounterAnimName = resolveTechniqueAnimation(selectedTechnique);
|
|
1240
1264
|
setPlayer2AttackAnimation(p2CounterAnimName);
|
|
1241
|
-
if (selectedTechnique
|
|
1265
|
+
if (selectedTechnique.id) setPlayer2TechniqueId(selectedTechnique.id);
|
|
1242
1266
|
const p2CounterDur = getAnimation(p2CounterAnimName)?.duration ?? .6;
|
|
1243
1267
|
player2AttackDurationRef.current = p2CounterDur;
|
|
1244
1268
|
player2Animation.transitionToAttack(p2CounterDur);
|
|
1245
1269
|
} else {
|
|
1246
|
-
setPlayer2AttackAnimation(
|
|
1247
|
-
|
|
1248
|
-
|
|
1270
|
+
setPlayer2AttackAnimation(aiFallbackAnim);
|
|
1271
|
+
if (aiFallbackTechnique?.id) setPlayer2TechniqueId(aiFallbackTechnique.id);
|
|
1272
|
+
const p2FallbackDur = getAnimation(aiFallbackAnim)?.duration ?? .6;
|
|
1273
|
+
player2AttackDurationRef.current = p2FallbackDur;
|
|
1274
|
+
player2Animation.transitionToAttack(p2FallbackDur);
|
|
1249
1275
|
}
|
|
1250
1276
|
handleAIAttack(selectedTechnique, targetVitalPoint);
|
|
1251
1277
|
addCombatMessage("AI 반격!", "AI Counter!");
|
|
@@ -1752,7 +1778,7 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
1752
1778
|
onReturnToMenu,
|
|
1753
1779
|
isPaused: isPaused || showPauseMenu
|
|
1754
1780
|
}),
|
|
1755
|
-
/* @__PURE__ */ jsx(CombatLeftHUD, {
|
|
1781
|
+
!(isMobile && isPortrait) && /* @__PURE__ */ jsx(CombatLeftHUD, {
|
|
1756
1782
|
width,
|
|
1757
1783
|
height,
|
|
1758
1784
|
isMobile,
|
|
@@ -1762,7 +1788,7 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
1762
1788
|
isInGuard: player1Animation.isInStanceGuard(),
|
|
1763
1789
|
speedModifiers: player1SpeedModifiers
|
|
1764
1790
|
}),
|
|
1765
|
-
/* @__PURE__ */ jsx(CombatRightHUD, {
|
|
1791
|
+
!(isMobile && isPortrait) && /* @__PURE__ */ jsx(CombatRightHUD, {
|
|
1766
1792
|
width,
|
|
1767
1793
|
height,
|
|
1768
1794
|
isMobile,
|
|
@@ -1772,6 +1798,14 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
1772
1798
|
speedModifiers: player2SpeedModifiers,
|
|
1773
1799
|
difficultyTier: currentDifficultyTier
|
|
1774
1800
|
}),
|
|
1801
|
+
isMobile && isPortrait && /* @__PURE__ */ jsx(CombatPortraitStatusStrip, {
|
|
1802
|
+
width,
|
|
1803
|
+
height,
|
|
1804
|
+
player1: validPlayers[0],
|
|
1805
|
+
player2: validPlayers[1],
|
|
1806
|
+
positionScale,
|
|
1807
|
+
topOffset: layoutConstants.hudHeight
|
|
1808
|
+
}),
|
|
1775
1809
|
/* @__PURE__ */ jsx(CombatBottomHUD, {
|
|
1776
1810
|
width,
|
|
1777
1811
|
height,
|
|
@@ -1792,7 +1826,8 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
1792
1826
|
consciousness: validPlayers[0].consciousness,
|
|
1793
1827
|
bloodLoss: 0,
|
|
1794
1828
|
stamina: validPlayers[0].stamina,
|
|
1795
|
-
isMobile
|
|
1829
|
+
isMobile,
|
|
1830
|
+
intensityScale: isMobile && isPortrait ? .5 : 1
|
|
1796
1831
|
}),
|
|
1797
1832
|
/* @__PURE__ */ jsx("div", {
|
|
1798
1833
|
style: {
|
|
@@ -1878,7 +1913,8 @@ var CombatScreen3D = ({ players, onPlayerUpdate, currentRound, timeRemaining, is
|
|
|
1878
1913
|
/* @__PURE__ */ jsx(MobileControlsOverlay, {
|
|
1879
1914
|
onMove: handleMobileMove,
|
|
1880
1915
|
onAttack: handleMobileAttack,
|
|
1881
|
-
onBlock: handleMobileBlock
|
|
1916
|
+
onBlock: handleMobileBlock,
|
|
1917
|
+
bottom: getMobileControlsBottom(height)
|
|
1882
1918
|
}),
|
|
1883
1919
|
/* @__PURE__ */ jsx(StanceWheelPure, {
|
|
1884
1920
|
currentStance: currentStanceIndex,
|