Tom Boullay
feaf502e44
feat: support webm mission notifications
2026-06-02 09:40:18 +02:00
Tom Boullay
a1798aecb3
refactor(ui): split talkie dialogue overlay
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-06-01 21:43:58 +02:00
Tom Boullay
3b07f40f2d
fix(ui): restore talkie idle vs active animation
...
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
The previous talkie-overlay refactor lost the rest/active behaviour and
left the radio-shake CSS animation running constantly. Restore the
intended polish:
- Position lerp between TALKIE_REST_Y (idle) and TALKIE_ACTIVE_Y
(raised when narrator is speaking) with a subtle floating bob.
- Subtle z-axis float at idle, faster shake when active.
- Gate the CSS radio-shake on the new --active modifier so the talkie
is calm when no narrator dialogue is playing.
- Keep the face-camera rotation [0.18, PI, -0.08] from the original
overlay version.
Visibility still kicks in at the reveal step (no regression on the
recent fix).
2026-06-01 17:01:08 +02:00
Tom Boullay
5faf4b4197
fix(ui): keep talkie overlay visible after reveal step
...
Regression introduced by the narrator-video revert (1ad0c4d ): the talkie
overlay was hidden whenever no narrator subtitle was active. Restore the
prior behaviour where the talkie stays visible from the reveal step
onward and only the --raised modifier and signal lines depend on the
active narrator dialogue.
2026-06-01 16:49:58 +02:00
Tom Boullay
7c35090dbd
fix(ui): animate scene loading logo
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-06-01 14:28:48 +02:00
Tom Boullay
1ad0c4de37
revert(ui): remove narrator video on talkie
2026-06-01 14:14:03 +02:00
Tom Boullay
bdc704fe8e
feat(ui): show narrator video on talkie
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-06-01 10:52:28 +02:00
Tom Boullay
dcf3a8564c
feat(ui): add narrator talkie overlay
2026-06-01 01:32:46 +02:00
Tom Boullay
061e0dc677
feat: update ui and intro sequence
2026-06-01 00:54:59 +02:00
Tom Boullay
9ef94af488
Merge branch 'develop' into feat/polish-mission1
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-06-01 00:15:46 +02:00
Tom Boullay
51569af7b8
feat(ui): add transient loading indicator
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-05-31 22:43:48 +02:00
Tom Boullay
d26c676edf
polish(ui): compact pause menu backdrop
2026-05-31 22:22:29 +02:00
Tom Boullay
4a43083178
fix(ui): preserve site cookie on restart
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-05-31 21:45:55 +02:00
Tom Boullay
efcbf9e972
polish(ui): refine pause settings menu
2026-05-31 21:42:59 +02:00
Tom Boullay
34c198ebfd
feat(world): add map lod graphics presets
2026-05-31 19:03:55 +02:00
Tom Boullay
c33d973f12
fix(ui): update logo asset path
2026-05-31 11:51:33 +02:00
Tom Boullay
bff8a16290
feat(intro): add ebike onboarding sequence
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-05-31 10:42:46 +02:00
Tom Boullay
7c691a8044
fix: show dialogue subtitles on black screen
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-05-30 20:25:21 +02:00
Tom Boullay
e6bfcbe960
feat(intro): polish loading transition
2026-05-30 20:11:40 +02:00
Tom Boullay
970adf4853
feat(a11y): WCAG AA polish on the site onboarding flow
...
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
- index.css: add visible :focus-visible rings for .site-card-button
and .site-button so keyboard users can see where focus lives
- SiteCard: drop outline:none, add aria-pressed and aria-label so
screen readers announce selection state
- SiteButton: add the .site-button class for the shared focus ring
- SiteDisclaimerScreen: keyboard skip via Enter / Space / Escape, a
role="region" + aria-label wrapper and aria-live="polite" on the
message; honour prefers-reduced-motion on the fade
- IntroVideoPlayer: role="region" with a skip hint in aria-label,
preload="auto", and aria-hidden on the decorative caption span
2026-05-30 18:44:03 +02:00
Tom Boullay
07b09c22af
fix(site): repair onboarding audio cleanup, redirect, and manifest fetches
...
- loadDialogueManifest: cache the resolved manifest at module level and
dedupe concurrent fetches so each screen no longer re-downloads it
- useGameStore: completeIntroState now also advances intro.currentStep
to "playing" so callers do not need a separate setIntroStep call
- SiteNamingScreen and SiteTransitionOverlay: replace ref-based guards
with an isCancelled flag captured per effect. The previous guards
persisted across StrictMode remounts, leaving mount 2 unable to
re-run the effect after mount 1's chain was cancelled, which broke
the fade animations, the second narrator dialogue and the redirect.
Both screens now also call stopCurrentDialogue on unmount so audio
cannot bleed across routes, and the transition gets a safety timeout
in case the dialogue audio fails to fire its "ended" event
- SiteTransitionOverlay: keep the <Subtitles /> mount inside the
overlay so it renders inside the z-index 1000 stacking context
(above the black screen); the one in SiteLayout sits behind it
- IntroDialogueOverlay: route through playDialogueById instead of
AudioManager.playSoundWithCallback so the narrator subtitles play
in sync, and add the same isCancelled cleanup pattern
- IntroRevealOverlay: rely on completeIntro alone now that it advances
intro.currentStep, and skip the fade when reduced motion is requested
- SiteMobileBlocker: correct logo path from public/... to /...
2026-05-30 18:43:53 +02:00
Tom Boullay
ce5dc8ada0
update: intro flow overlays
2026-05-30 04:00:20 +02:00
Tom Boullay
4c5e2ed945
feat(types): add SiteStep and refactor GameStep for new intro flow
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-05-30 02:14:10 +02:00
tom-boullay
1a91b1d7ae
refactor: clean map gameplay architecture
2026-05-28 11:15:45 +02:00
tom-boullay
d9cf87d2d6
feat: launch ebike repair from map interaction
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-05-28 10:13:59 +02:00
Tom Boullay
d654565f87
chore: address code quality audit findings
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
2026-05-28 08:31:42 +02:00
Tom Boullay
a52d57ae6c
fix: keep terrain collision during visual filtering
2026-05-25 01:28:25 +02:00
Tom Boullay
d0497ec42c
fix(debug): defer hand tracking startup
2026-05-25 01:19:14 +02:00
tom-boullay
4f25b33d3b
feat(debug): persist and reset debug game state
2026-05-21 12:09:12 +02:00
math-pixel
ceffedf684
fix : lint
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
2026-05-12 16:51:35 +02:00
math-pixel
700c088c48
fix : audio and data issues
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
2026-05-12 14:29:38 +02:00
math-pixel
8d197ba26b
PR: refactor state game
2026-05-12 13:47:05 +02:00
Tom Boullay
2c3f0db65b
refactor: move mission flow state into game store
🔍 Lint / 🪄 Check lint (pull_request) Has been cancelled
🔍 Lint / 🎨 Check format (pull_request) Has been cancelled
🔍 Lint / 🔎 Typecheck (pull_request) Has been cancelled
🔍 Lint / 🏗 Build (pull_request) Has been cancelled
📊 Quality / 🔒 Security Audit (pull_request) Has been cancelled
📊 Quality / 📋 Dependency Freshness (pull_request) Has been cancelled
📊 Quality / 📦 Bundle Size (pull_request) Has been cancelled
2026-05-11 18:02:00 +02:00
Tom Boullay
91ebea8d99
Merge remote-tracking branch 'origin/develop' into feat/mission-2
...
# Conflicts:
# package-lock.json
# package.json
# src/App.tsx
# src/components/three/interaction/CentralObject.tsx
# src/components/three/interaction/VillageoisHelperObject.tsx
# src/managers/GameStepManager.ts
# src/stateManager/AudioManager.ts
# src/world/World.tsx
# src/world/player/PlayerController.tsx
2026-05-11 17:46:42 +02:00
Tom Boullay
711c336f1e
Merge branch 'develop' into feat/repair-game
2026-05-11 17:31:14 +02:00
math-pixel
f7b968abe7
wip mission 2
2026-05-11 16:46:22 +02:00
Tom Boullay
e9875206ff
update: show repair movement lock indicator
2026-05-11 13:15:16 +02:00
Tom Boullay
49e96c7f5a
update: improve repair debug mission switching
2026-05-11 13:03:46 +02:00
Tom Boullay
c2ba26ca86
add: loading
2026-05-11 11:11:46 +02:00
math-pixel
1b7813a5bb
update flow
2026-05-11 11:03:01 +02:00
math-pixel
e8fb859f79
update
2026-05-11 08:56:54 +02:00
Tom Boullay
53fdf3cb1e
update: play audio + srt sync
2026-05-10 00:07:56 +01:00
Tom Boullay
5b43f503ac
add: basic subtitle
2026-05-09 23:51:22 +01:00
Tom Boullay
974f1e33fb
add: settings menu + menu store
2026-05-09 23:45:05 +01:00
Tom Boullay
6d9eac291e
big clean up
2026-05-08 03:02:26 +01:00
Tom Boullay
ead3634aab
add: animate repair reassembly
2026-05-08 02:40:31 +01:00
Tom Boullay
eee69825c6
clean: remove obsolete repair debug code + unused core utilities
2026-05-08 02:07:03 +01:00
Tom Boullay
553dc6eb0a
fix: flickering hands
2026-05-06 23:16:58 +01:00
Tom Boullay
ac7f60060c
fix hand tracking glove fallback and loading
2026-05-02 11:35:28 +02:00
Tom Boullay
fe662ebe7d
fix hand tracking glove rendering
2026-05-02 11:32:00 +02:00