diff --git a/public/images/investigation_scene.jpg b/public/images/investigation_scene.jpg new file mode 100644 index 0000000..c7847d7 Binary files /dev/null and b/public/images/investigation_scene.jpg differ diff --git a/public/scenes/demo.json b/public/scenes/demo.json index 9e0b0e8..aa9d466 100644 --- a/public/scenes/demo.json +++ b/public/scenes/demo.json @@ -5,77 +5,14 @@ "courage": 0, "investigation": 0 }, - "achievements": [ - { - "id": "qte_master", - "title": "反应达人", - "description": "成功完成一次 QTE", - "icon": "", - "hidden": false, - "condition": { "variable": "qte_succeeded", "op": ">=", "value": 1 } - }, - { - "id": "explorer", - "title": "探索者", - "description": "搜索过房间的所有角落", - "icon": "", - "hidden": false, - "condition": { "variable": "investigation", "op": ">=", "value": 2 } - }, - { - "id": "game_finished", - "title": "通关达成", - "description": "完成一次游戏", - "icon": "", - "hidden": false, - "condition": { "variable": "completed_game", "op": ">=", "value": 1 } - } - ], - "endings": [ - { "id": "trust_end", "label": "信任的伙伴", "sceneId": "trust_ending", "chapterId": "ch1", "thumbnail": "/images/end_trust.jpg" }, - { "id": "alone_end", "label": "独行之路", "sceneId": "alone_ending", "chapterId": "ch1", "thumbnail": "/images/end_alone.jpg" }, - { "id": "continue_end", "label": "继续前行", "sceneId": "continue_ending", "chapterId": "ch3", "thumbnail": "/images/end_continue.jpg" } - ], - "chapters": [ - { - "id": "ch1", - "label": "第一章:醒来", - "startScene": "intro", - "thumbnail": "/images/ch1.jpg", - "defaultVariables": { "trust": 50, "courage": 0, "investigation": 0 } - }, - { - "id": "ch2", - "label": "第二章:调查", - "startScene": "desk_detail", - "thumbnail": "/images/ch2.jpg", - "defaultVariables": { "trust": 60, "courage": 10, "investigation": 1 } - }, - { - "id": "ch3", - "label": "第三章:终局", - "startScene": "qte_success", - "thumbnail": "/images/ch3.jpg", - "defaultVariables": { "trust": 70, "courage": 20, "investigation": 2 } - } - ], "scenes": { "intro": { "id": "intro", "videoUrl": "/videos/intro.mp4", "subtitleUrl": "/subtitles/intro.vtt", - "subtitles": { - "zh": "/subtitles/intro.vtt", - "en": "/subtitles/intro_en.vtt" - }, - "bgmUrl": "/audio/calm_bgm.mp3", - "bgmVolume": 0.6, - "bgmCrossFade": 1.5, - "videoMuted": true, "choices": [ { "text": "走向左边那扇发光的门", - "textKey": "scene.intro.choice.left_door", "targetScene": "left_door", "effects": [ { "type": "add", "target": "courage", "value": 10 } @@ -83,7 +20,6 @@ }, { "text": "走向右边那扇普通的门", - "textKey": "scene.intro.choice.right_door", "targetScene": "right_door", "effects": [ { "type": "add", "target": "courage", "value": -5 } @@ -91,12 +27,10 @@ }, { "text": "仔细搜索房间", - "textKey": "scene.intro.choice.search", "targetScene": "investigation_site" }, { "text": "留在原地,什么也不做", - "textKey": "scene.intro.choice.stay", "targetScene": "stay" } ] @@ -138,6 +72,7 @@ } ], "choices": [ + { "text": "离开房间", "targetScene": "corridor" } ] }, "corridor": { @@ -177,8 +112,6 @@ "choices": [ { "text": "与陌生人握手", - "textKey": "scene.left_door.choice.handshake", - "prompt": "陌生人会记住你的善意", "targetScene": "trust_ending", "effects": [ { "type": "add", "target": "trust", "value": 30 } @@ -193,11 +126,6 @@ "right_door": { "id": "right_door", "videoUrl": "/videos/right_door.mp4", - "skippable": false, - "bgmUrl": "/audio/tense_bgm.mp3", - "bgmVolume": 0.7, - "bgmCrossFade": 2.0, - "videoMuted": true, "qte": { "triggerTime": 1.0, "prompt": "躲避飞来的石块!", @@ -206,10 +134,7 @@ "successScene": "qte_success", "failScene": "qte_fail", "effects": { - "success": [ - { "type": "add", "target": "courage", "value": 15 }, - { "type": "set", "target": "qte_succeeded", "value": 1 } - ], + "success": [{ "type": "add", "target": "courage", "value": 15 }], "fail": [{ "type": "add", "target": "trust", "value": -20 }] } } @@ -258,16 +183,9 @@ }, "stay": { "id": "stay", - "videoUrl": "/videos/stay_loop.mp4", + "videoUrl": "/videos/stay.mp4", "subtitleUrl": "/subtitles/stay.vtt", - "bgmUrl": "/audio/calm_bgm.mp3", - "bgmVolume": 0.6, - "videoMuted": true, - "loopStart": 3.0, - "loopEnd": 6.0, - "choices": [ - { "text": "站起来离开", "targetScene": "alone_ending" } - ] + "nextScene": "alone_ending" }, "trust_ending": { "id": "trust_ending", @@ -275,8 +193,6 @@ "choices": [ { "text": "开启信任的旅程(需要 trust >= 80)", - "textKey": "scene.trust_ending.choice.journey", - "prompt": "你们的羁绊将改变一切", "targetScene": "secret_ending", "conditions": [ { "variable": "trust", "op": ">=", "value": 80 } @@ -296,10 +212,7 @@ "alone_ending": { "id": "alone_ending", "videoUrl": "/videos/alone_ending.mp4", - "choices": [], - "onEnter": [ - { "type": "set", "target": "completed_game", "value": 1 } - ] + "choices": [] }, "continue_ending": { "id": "continue_ending", diff --git a/public/subtitles/intro_en.vtt b/public/subtitles/intro_en.vtt new file mode 100644 index 0000000..446c3ab --- /dev/null +++ b/public/subtitles/intro_en.vtt @@ -0,0 +1,5 @@ +WEBVTT +00:00.000 --> 00:02.000 +You wake up in a strange room +00:02.500 --> 00:03.000 +Two doors stand before you. You must choose. diff --git a/public/subtitles/investigation.vtt b/public/subtitles/investigation.vtt new file mode 100644 index 0000000..b5c4e49 --- /dev/null +++ b/public/subtitles/investigation.vtt @@ -0,0 +1,4 @@ +WEBVTT + +00:00.000 --> 00:05.000 +你走进了一个凌乱的房间,仔细观察四周... diff --git a/public/subtitles/left_door.vtt b/public/subtitles/left_door.vtt new file mode 100644 index 0000000..a453522 --- /dev/null +++ b/public/subtitles/left_door.vtt @@ -0,0 +1,7 @@ +WEBVTT + +00:00.000 --> 00:02.500 +你走进了发光的门,来到一个明亮的大厅 + +00:02.500 --> 00:03.000 +一位陌生人向你伸出了手 diff --git a/public/subtitles/left_door_en.vtt b/public/subtitles/left_door_en.vtt new file mode 100644 index 0000000..4be17b2 --- /dev/null +++ b/public/subtitles/left_door_en.vtt @@ -0,0 +1,5 @@ +WEBVTT +00:00.000 --> 00:02.500 +You enter the glowing door into a bright hall +00:02.500 --> 00:03.000 +A stranger extends their hand toward you diff --git a/public/subtitles/stay.vtt b/public/subtitles/stay.vtt new file mode 100644 index 0000000..0aaf9de --- /dev/null +++ b/public/subtitles/stay.vtt @@ -0,0 +1,4 @@ +WEBVTT + +00:00.000 --> 00:03.000 +你选择留在原地,时间缓缓流逝... diff --git a/public/subtitles/stay_en.vtt b/public/subtitles/stay_en.vtt new file mode 100644 index 0000000..a52572d --- /dev/null +++ b/public/subtitles/stay_en.vtt @@ -0,0 +1,3 @@ +WEBVTT +00:00.000 --> 00:03.000 +You choose to stay. Time passes slowly... diff --git a/public/videos/alone_ending.mp4 b/public/videos/alone_ending.mp4 new file mode 100644 index 0000000..1fc207e Binary files /dev/null and b/public/videos/alone_ending.mp4 differ diff --git a/public/videos/continue_ending.mp4 b/public/videos/continue_ending.mp4 new file mode 100644 index 0000000..542351a Binary files /dev/null and b/public/videos/continue_ending.mp4 differ diff --git a/public/videos/corridor.mp4 b/public/videos/corridor.mp4 new file mode 100644 index 0000000..3a0cc28 Binary files /dev/null and b/public/videos/corridor.mp4 differ diff --git a/public/videos/left_door.mp4 b/public/videos/left_door.mp4 new file mode 100644 index 0000000..db2bb35 Binary files /dev/null and b/public/videos/left_door.mp4 differ diff --git a/public/videos/qte_fail.mp4 b/public/videos/qte_fail.mp4 new file mode 100644 index 0000000..b8a1e56 Binary files /dev/null and b/public/videos/qte_fail.mp4 differ diff --git a/public/videos/qte_success.mp4 b/public/videos/qte_success.mp4 new file mode 100644 index 0000000..49d1e76 Binary files /dev/null and b/public/videos/qte_success.mp4 differ diff --git a/public/videos/right_door.mp4 b/public/videos/right_door.mp4 new file mode 100644 index 0000000..61b76a1 Binary files /dev/null and b/public/videos/right_door.mp4 differ diff --git a/public/videos/stay.mp4 b/public/videos/stay.mp4 new file mode 100644 index 0000000..b306dd8 Binary files /dev/null and b/public/videos/stay.mp4 differ diff --git a/public/videos/trust_ending.mp4 b/public/videos/trust_ending.mp4 new file mode 100644 index 0000000..f3a00f9 Binary files /dev/null and b/public/videos/trust_ending.mp4 differ