6a4ff7a328
fix: hide top bar when choices panel is visible
2026-06-12 19:54:38 +08:00
e7af4a8659
fix: hide bottom bar when choices panel is visible
2026-06-12 19:46:11 +08:00
5ff8e2b669
refactor: move quality/skip/speed controls to bottom bar, sync visibility with top bar
2026-06-12 19:27:32 +08:00
503496ea0e
fix: only switch quality during active playback, not after video ended
2026-06-12 17:51:01 +08:00
b62af5b7de
chore: update HLS segments and App.vue tweaks
2026-06-12 17:33:32 +08:00
b6231e4efd
feat: adaptive bitrate support, engine improvements, demo updates, and electron preload
2026-06-12 17:15:30 +08:00
18bf98aa16
Revert "feat: add transform:scale() UI scaling for 1920x1080 canvas"
...
This reverts commit 6a6414510e .
2026-06-12 16:30:58 +08:00
6a6414510e
feat: add transform:scale() UI scaling for 1920x1080 canvas
2026-06-12 16:23:49 +08:00
741b067567
fix: change intro video to cover for full-screen immersion
2026-06-12 15:56:27 +08:00
0379548a29
feat: full-screen StoryGallery with flow layout, startAtScene engine method, clickable flow nodes
2026-06-12 11:37:14 +08:00
d057beb82d
feat: QTE prompt i18n via promptKey, fallback to prompt text
2026-06-10 16:21:23 +08:00
d2dae38f05
feat: P22 merge chapter select and gallery into StoryGallery, i18n updates
2026-06-10 16:01:26 +08:00
642e18fb5e
feat: auto-hide top-bar and cursor after 3s idle, restore on mouse move
2026-06-10 15:35:12 +08:00
bf4b09f4e0
feat: pause menu, accessibility improvements, main menu polish, roadmap update
2026-06-10 15:18:39 +08:00
e7ed52d89b
fix: reduce menu overlay opacity to show background video
2026-06-10 14:54:28 +08:00
76581d0326
feat: intro video, asset updates, roadmap and engine improvements
2026-06-10 14:47:45 +08:00
bb289f5438
feat: switch hotspot coordinates from container percentage to absolute content pixels
2026-06-10 12:45:41 +08:00
86a0aebdc8
feat: configurable locales path per story, dynamic language switching from story data
2026-06-10 12:17:52 +08:00
23478f0065
feat: three-layer scene loading (?scene > config.json > main.json)
2026-06-10 10:48:17 +08:00
48fb89449a
fix: clear gameEnded flag on new game start so MainMenu dismisses
2026-06-09 20:20:04 +08:00
87ba62b9ef
feat: main menu component, roadmap update
2026-06-09 20:15:46 +08:00
5eb727f17e
fix: watch QTE settings for immediate sync to engine during gameplay
2026-06-09 19:57:02 +08:00
3185dc5819
fix: change pause key from Space to P, disable pause during QTE
2026-06-09 19:46:51 +08:00
c9d29019a0
feat: accessibility settings, subtitle/QTE improvements, docs update
2026-06-09 19:42:08 +08:00
906965c963
fix: wire up EndingGallery click to open ChapterRecap via chapterId
2026-06-09 17:57:21 +08:00
9297117544
feat: P15 ending gallery, chapter recap, visited tracking, save system v6
2026-06-09 17:49:07 +08:00
451c6ea025
chore: sync latest changes
2026-06-09 17:21:54 +08:00
bca137535b
fix: hoist prompt toast to App.vue so it survives ChoicePanel unmount after selection
2026-06-09 16:55:57 +08:00
daec24d69b
fix: App.vue updates
2026-06-09 15:45:58 +08:00
6b4114af43
feat: press Esc to open menu during gameplay, close with Esc
2026-06-09 15:40:01 +08:00
72e442f2c3
feat: UI polish, chapter select improvements, save system enhancements, roadmap update
2026-06-09 15:19:53 +08:00
660fa9347c
feat: playback bar component, save system improvements, demo and roadmap updates
2026-06-09 14:21:41 +08:00
ace5ed1fb3
feat: chapter select system, multi-chapter support, scene manager refactor, and docs update
2026-06-09 11:35:11 +08:00
655b9a23d0
feat: fullscreen composable, roadmap update, and future plans doc
2026-06-09 10:47:14 +08:00
fa7c333214
fix: use v-show instead of v-if for GamePlayer to prevent video element detach during image scenes
2026-06-08 14:26:21 +08:00
6b67989007
feat: engine improvements, new scenes, videos, subtitles, hotspot component and docs update
2026-06-08 14:01:58 +08:00
e2670c50d4
refactor: rename Subtitles prop videoUrl to subtitleUrl
2026-06-07 20:48:39 +08:00
319a379921
feat: P2 - QTE system, subtitles, save thumbnails
...
- QTESystem: trigger detection via timeupdate, multi-key matching, timeout handling
- QTEOverlay: SVG countdown ring + key prompts + success/fail animation
- Engine: integrate QTE (timeupdate check, conditional branching, effect application)
- Subtitles: WebVTT parsing + synchronized subtitle rendering
- GamePlayer: overlay QTE and subtitle components
- SaveSystem: DB v2 with thumbnail field, canvas snapshot at 320x180 JPEG
- SaveLoadMenu: thumbnail preview for save slots
- VideoManager: getActiveVideoElement() for canvas capture
- App.vue: QTE/subtitle integration, thumbnail capture on save
- stores: QTE state management, save list with thumbnails
- demo.json: QTE scene (right_door), subtitles, new event types
- ROADMAP: mark P2 as completed
2026-06-07 19:35:14 +08:00
c61826e87c
feat: auto-save on scene change + resume from auto-save
...
- useGameEngine: auto-save to slot 0 on every sceneChange event
- useGameEngine: add resumeAutoSave() for continuing from auto-save
- useGameEngine: extract registerEvents() to share between start and resume
- SaveLoadMenu: show slot 0 as '自动存档' with distinct styling and read-only button
- App.vue: check auto-save on load, show '继续上次进度' button if available
2026-06-07 18:42:34 +08:00
937e45c203
feat: P1 core - seamless video switching, conditional branches, save/load
...
- VideoManager: A/B dual-buffered video with crossfade transitions and candidate preloading
- Engine: condition-based choice filtering, ChoiceSystem timer, resumeScene for save/load
- SceneManager: getCandidateUrls for preloading next scenes
- SaveSystem: Dexie.js IndexedDB multi-slot save/load
- ChoiceSystem: timed choices with countdown and auto-default on timeout
- GamePlayer: dual video elements with crossfade CSS
- ChoicePanel: timer progress bar and countdown text
- SaveLoadMenu: save/load UI component
- App.vue: menu trigger, dual video refs, save/load integration
- gameStore: timer state, saves list
- demo.json: conditional choice example (secret ending, requires trust >= 80)
- ROADMAP: mark P1 as completed
2026-06-07 16:48:52 +08:00
7aed2b46ca
fix: add start button to satisfy browser autoplay policy
...
Replace auto-start after loading with a '开始游戏' button overlay.
The user click provides the required user gesture for autoplay with sound,
fixing the issue where play() was silently rejected and choices never appeared.
2026-06-07 15:44:31 +08:00
fb93782331
fix: wait for DOM update before attaching video element
2026-06-07 14:16:20 +08:00
aeb6dc46a4
init
2026-06-07 13:50:05 +08:00