Commit Graph

34 Commits

Author SHA1 Message Date
c46c4efd6c chore: engine, types, demo, and UI updates 2026-06-14 16:05:00 +08:00
d0e901bd1f feat: battle system, state manager enhancements, engine and demo updates 2026-06-14 15:35:31 +08:00
92966331d3 feat: add dev diary and ending thumbnails, update chapter endings display 2026-06-14 11:51:32 +08:00
e949a84171 feat: P25 conditional routing, nextScene supports Choice[] with conditions 2026-06-13 00:50:48 +08:00
5a4acfc6bb docs: update SCENE_JSON_SPEC with current types, deprecate flag fields 2026-06-12 21:26:00 +08:00
b6231e4efd feat: adaptive bitrate support, engine improvements, demo updates, and electron preload 2026-06-12 17:15:30 +08:00
215a8db829 feat: chapter boundary gateway nodes in flow, prevent cross-chapter BFS expansion 2026-06-12 12:28:31 +08:00
9baa7b5ab3 feat: add scene thumbnails to TreeFlow nodes with auto-generated demo thumbs 2026-06-12 12:08:39 +08:00
ae7721d70e feat: story gallery progress, type updates, roadmap, cleanup old session file 2026-06-11 21:08:29 +08:00
03c4ee3a65 feat: i18n for choice prompt via promptKey, with fallback 2026-06-10 16:51:50 +08:00
2f9f9a4117 feat: i18n achievement UI labels and data layer title/description 2026-06-10 16:36:24 +08:00
e51b5e234e feat: i18n StoryGallery UI labels and data layer chapter/ending names 2026-06-10 16:29:25 +08:00
d057beb82d feat: QTE prompt i18n via promptKey, fallback to prompt text 2026-06-10 16:21:23 +08:00
0a1147c2fe fix: hotspot, demo, i18n and type updates 2026-06-10 16:10:23 +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
937e709dca feat: global assetBase for scene JSON, convert demo to relative paths 2026-06-10 11:01:21 +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
bf4b85f727 feat: choice conditions with variables, demo updates, roadmap update 2026-06-09 16:46:06 +08:00
f044ed0b60 refactor: switch to key-based i18n for choices, revert inline textEn approach 2026-06-09 15:54:55 +08:00
8e7f77bc38 feat: inline bilingual choice text (textEn), lang-aware choice rendering 2026-06-09 15:51:37 +08:00
59aed77199 feat: i18n system, lang switch component, english subtitles, UI improvements, roadmap update 2026-06-09 15:40:51 +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
4bfdfbc27d feat: audio system, demo scene updates, docs, and engine improvements 2026-06-08 23:18:33 +08:00
0dbe1b097d feat: video loop support for hotspot scenes, demo updates, docs, and engine fixes 2026-06-08 21:48:47 +08:00
6b67989007 feat: engine improvements, new scenes, videos, subtitles, hotspot component and docs update 2026-06-08 14:01:58 +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
7826d789a7 docs: add unit comment for Choice.timeLimit 2026-06-07 18:57:16 +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
aeb6dc46a4 init 2026-06-07 13:50:05 +08:00