@oh-story/dsh 0.1.12 → 0.1.13
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/README.md +17 -11
- package/lib/client.js +85 -35
- package/lib/client.js.map +3 -3
- package/lib/drama/manifest.json +41 -36
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +340 -13
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +4 -2
- package/lib/drama/skills/short-drama-edit/SKILL.md +32 -12
- package/lib/drama/skills/short-drama-edit/references/still-cuts.md +90 -0
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1035 -145
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +48 -0
- package/lib/drama/skills/short-drama-produce/SKILL.md +6 -1
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +12 -0
- package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +138 -9
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +6 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +2 -0
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +3 -1
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +7 -0
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +14 -0
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +19 -6
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +1 -0
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +5 -0
- package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +4 -1
- package/lib/index.js +16 -7
- package/lib/index.js.map +2 -2
- package/lib/novel-to-game/README.md +98 -44
- package/lib/novel-to-game/README_ZH.md +100 -46
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +27 -202
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +23 -115
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/chamber.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/court_night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/court_rain.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/garden.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/hall.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/kitchen.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/street.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/street_dawn.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/temple.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/moon.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/angry.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/blush.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/neutral.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/sad.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/smile.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/meng/surprised.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/angry.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/blush.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/neutral.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/sad.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/smile.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pan/surprised.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/angry.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/blush.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/neutral.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/sad.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/smile.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/pinger/surprised.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/angry.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/blush.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/neutral.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/sad.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/smile.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/xuee/surprised.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/angry.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/blush.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/neutral.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/sad.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/smile.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/sprite/yue/surprised.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +326 -2503
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/index.html +71 -4
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/adv.js +221 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/audio.js +113 -257
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +511 -3026
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/menus.js +277 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/petals.js +67 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/stage.js +180 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/store.js +70 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/common.js +198 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/common2.js +204 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/common3.js +198 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/dates.js +186 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/index.js +122 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/meng.js +190 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/pan.js +212 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/pinger.js +198 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/xuee.js +199 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/story/yue.js +214 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -2
- package/lib/novel-to-game/examples/jin-ping-mei/build/art/generated-art.json +182 -45
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +7 -17
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +9 -9
- package/lib/novel-to-game/manifest.json +303 -78
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +7 -2
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +2 -0
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +2 -0
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +9 -0
- package/lib/types/client/drama-production-view.d.ts +11 -0
- package/lib/types/client/drama-production-view.d.ts.map +1 -1
- package/lib/types/client/file-activity.d.ts +1 -1
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/production-prompts.d.ts +7 -1
- package/lib/types/client/production-prompts.d.ts.map +1 -1
- package/lib/types/client/production-runtime.d.ts +7 -2
- package/lib/types/client/production-runtime.d.ts.map +1 -1
- package/lib/types/drama-adapters.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/video-project.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +108 -1
- package/lib/video-recap/README.en.md +18 -14
- package/lib/video-recap/README.md +18 -14
- package/lib/video-recap/manifest.json +297 -321
- package/lib/video-recap/skills/video-assemble/SKILL.md +18 -16
- package/lib/video-recap/skills/video-assemble/references/explicit-audio-mix.md +3 -1
- package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +5 -5
- package/lib/video-recap/skills/video-assemble/references/packaging.md +4 -4
- package/lib/video-recap/skills/video-assemble/references/subtitle-track.md +10 -10
- package/lib/video-recap/skills/video-assemble/scripts/adoption/audio_mix_binding.py +13 -2
- package/lib/video-recap/skills/video-assemble/scripts/adoption/av_clock.py +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_publish.py +4 -1
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +2 -9
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +188 -51
- package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +0 -1
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +32 -75
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +8 -15
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +202 -161
- package/lib/video-recap/skills/video-assemble/scripts/codec_peak.py +112 -0
- package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +10 -101
- package/lib/video-recap/skills/video-assemble/scripts/jianying/builders.py +44 -475
- package/lib/video-recap/skills/video-assemble/scripts/jianying/model.py +1 -22
- package/lib/video-recap/skills/video-assemble/scripts/jianying/templates.py +0 -3
- package/lib/video-recap/skills/video-assemble/scripts/jianying/timeline_contract.py +36 -103
- package/lib/video-recap/skills/video-assemble/scripts/jianying/tracks.py +0 -8
- package/lib/video-recap/skills/video-assemble/scripts/jianying/writer.py +28 -203
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +20 -34
- package/lib/video-recap/skills/video-assemble/scripts/loudness.py +332 -0
- package/lib/video-recap/skills/video-assemble/scripts/media.py +158 -38
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +30 -16
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +49 -8
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +17 -6
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/core.py +24 -2
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track.py +2 -5
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track_binding.py +2 -9
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +12 -34
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +3 -4
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +28 -2
- package/lib/video-recap/skills/video-cut/SKILL.md +37 -11
- package/lib/video-recap/skills/video-cut/references/shot-review.md +1 -1
- package/lib/video-recap/skills/video-cut/scripts/cut.py +2 -34
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +96 -124
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +97 -182
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +177 -166
- package/lib/video-recap/skills/video-cut/scripts/frame_grid.py +249 -0
- package/lib/video-recap/skills/video-cut/scripts/lib.py +0 -3
- package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +173 -7
- package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +234 -151
- package/lib/video-recap/skills/video-cut/scripts/sentence_gate.py +189 -0
- package/lib/video-recap/skills/video-cut/scripts/shot_review.py +2 -6
- package/lib/video-recap/skills/video-recap/SKILL.md +24 -27
- package/lib/video-recap/skills/video-recap/references/audio-routing.md +8 -6
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +8 -11
- package/lib/video-recap/skills/video-recap/references/data-schema.md +131 -74
- package/lib/video-recap/skills/video-recap/references/resource-library.md +17 -1
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +51 -268
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +89 -254
- package/lib/video-recap/skills/video-recap/scripts/lib.py +81 -70
- package/lib/video-recap/skills/video-recap/scripts/library.py +40 -4
- package/lib/video-recap/skills/video-recap/scripts/materials.py +13 -80
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +49 -17
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +1 -3
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +86 -116
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +87 -23
- package/lib/video-recap/skills/video-recap/scripts/recap_source.py +0 -39
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +37 -135
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +118 -127
- package/lib/video-recap/skills/video-recap/scripts/resources/__init__.py +4 -0
- package/lib/video-recap/skills/video-recap/scripts/{resource_lock.py → resources/lock.py} +1 -1
- package/lib/video-recap/skills/video-recap/scripts/{project_binding.py → resources/project_binding.py} +78 -17
- package/lib/video-recap/skills/video-reference/SKILL.md +108 -0
- package/lib/video-recap/skills/video-reference/references/reference-schema.md +139 -0
- package/lib/video-recap/skills/video-reference/scripts/lib.py +85 -0
- package/lib/video-recap/skills/video-reference/scripts/reference.py +96 -0
- package/lib/video-recap/skills/video-reference/scripts/reference_check.py +553 -0
- package/lib/video-recap/skills/video-reference/scripts/reference_frames.py +122 -0
- package/lib/video-recap/skills/video-reference/scripts/reference_measure.py +253 -0
- package/lib/video-recap/skills/video-reference/scripts/reference_profile.py +271 -0
- package/lib/video-recap/skills/video-script/SKILL.md +9 -7
- package/lib/video-recap/skills/video-script/scripts/agent_text.py +18 -267
- package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +12 -30
- package/lib/video-recap/skills/video-script/scripts/entry_suggestion.py +125 -0
- package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +2 -26
- package/lib/video-recap/skills/video-script/scripts/lib.py +5 -15
- package/lib/video-recap/skills/video-script/scripts/lint_summary.py +184 -0
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +120 -100
- package/lib/video-recap/skills/video-script/scripts/review.py +3 -34
- package/lib/video-recap/skills/video-script/scripts/review_grounding.py +20 -46
- package/lib/video-recap/skills/video-script/scripts/review_response.py +120 -258
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +2 -10
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +89 -5
- package/lib/video-recap/skills/video-script/scripts/validate.py +26 -34
- package/lib/video-recap/skills/video-understanding/SKILL.md +29 -4
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +5 -22
- package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +24 -121
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +11 -5
- package/lib/video-recap/skills/video-understanding/scripts/asr_timing_evidence.py +15 -24
- package/lib/video-recap/skills/video-understanding/scripts/briefing/builder.py +59 -25
- package/lib/video-recap/skills/video-understanding/scripts/briefing/context.py +39 -3
- package/lib/video-recap/skills/video-understanding/scripts/briefing/inputs.py +15 -27
- package/lib/video-recap/skills/video-understanding/scripts/briefing/timeline.py +136 -37
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +121 -37
- package/lib/video-recap/skills/video-understanding/scripts/detect.py +118 -16
- package/lib/video-recap/skills/video-understanding/scripts/index_normalize.py +359 -0
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +62 -21
- package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +181 -51
- package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +0 -26
- package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +37 -14
- package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +40 -32
- package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +100 -127
- package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +182 -30
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +30 -27
- package/lib/video-recap/skills/video-voiceover/SKILL.md +19 -12
- package/lib/video-recap/skills/video-voiceover/references/index-tts.md +3 -3
- package/lib/video-recap/skills/video-voiceover/scripts/approved_text_policy.py +3 -1
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +60 -135
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +9 -34
- package/lib/video-recap/skills/video-voiceover/scripts/providers/fish_audio.py +6 -1
- package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +64 -1
- package/lib/video-recap/skills/video-voiceover/scripts/tts_cache.py +99 -0
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +177 -200
- package/package.json +45 -45
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +0 -1494
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/assets.js +0 -147
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +0 -7470
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +0 -13066
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +0 -32
- package/lib/novel-to-game/examples/jin-ping-mei/qa/playable-model.json +0 -99
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +0 -152
- package/lib/video-recap/skills/video-assemble/references/foreground-compose.md +0 -118
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +0 -84
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +0 -98
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_draft.json +0 -204
- package/lib/video-recap/skills/video-assemble/references/pair-media.md +0 -74
- package/lib/video-recap/skills/video-assemble/scripts/compose_foreground.py +0 -293
- package/lib/video-recap/skills/video-assemble/scripts/pair_media.py +0 -216
- package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +0 -23
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +0 -33
- package/lib/video-recap/skills/video-recap/scripts/qc/__init__.py +0 -1
- package/lib/video-recap/skills/video-recap/scripts/qc/mimo_client.py +0 -13
- package/lib/video-recap/skills/video-recap/scripts/qc/mimo_contract.py +0 -9
- package/lib/video-recap/skills/video-recap/scripts/qc/mimo_evidence.py +0 -287
- package/lib/video-recap/skills/video-recap/scripts/qc/mimo_observations.py +0 -175
- package/lib/video-recap/skills/video-recap/scripts/qc/mimo_payload.py +0 -206
- package/lib/video-recap/skills/video-recap/scripts/qc/mimo_report.py +0 -318
- package/lib/video-recap/skills/video-recap/scripts/qc/mimo_runner.py +0 -130
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +0 -320
- package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +0 -108
- package/lib/video-recap/skills/video-understanding/scripts/brief.py +0 -9
- package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +0 -211
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +0 -707
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +0 -143
- /package/lib/video-recap/skills/video-cut/scripts/{narration_mapping.py → cut_qc.py} +0 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
// 潘金莲线 · 琵琶(第八回永夜盼西门庆寄词、第三十八回雪夜弄琵琶为本)
|
|
2
|
+
export default String.raw`
|
|
3
|
+
# pan_route
|
|
4
|
+
@hide all
|
|
5
|
+
@bg garden fade
|
|
6
|
+
@bgm night
|
|
7
|
+
@chapter 潘金莲篇|角门
|
|
8
|
+
花园角门的灯,比别处暗。你推门的时候,门轴“吱呀”一声。
|
|
9
|
+
@show pan 中 惊
|
|
10
|
+
金莲(惊):……谁?
|
|
11
|
+
她正坐在窗下拆头发,一回头,簪子“叮”地掉在地上。
|
|
12
|
+
金莲(笑):哟。今日席上金簪赏出去了,官人这是来赏个安慰?
|
|
13
|
+
西门庆:我来看你。
|
|
14
|
+
金莲(平):看我?看我做什么。我又没有箱子,又不会管账,又不会唱月琴。
|
|
15
|
+
她嘴上不饶人,却弯腰把簪子捡起来,在袖子上擦了擦,又插回头上——是为了你插的。
|
|
16
|
+
金莲(哀):你知道我这角门,夜里几更关吗?
|
|
17
|
+
西门庆:几更?
|
|
18
|
+
金莲(哀):不关。从你娶六妹妹那天起,我就没关过。我怕你哪天夜里想起我来,一推,门是闩着的,你就走了。
|
|
19
|
+
她说完自己先笑了,像是笑自己傻。
|
|
20
|
+
@choice
|
|
21
|
+
- “往后我来,你不用等。我自己会推门。” -> p1_promise {pan+1}
|
|
22
|
+
- “你又不缺人陪,等我做什么。” -> p1_tease
|
|
23
|
+
|
|
24
|
+
# p1_promise
|
|
25
|
+
金莲(惊):……你说的。
|
|
26
|
+
她盯着你看了很久,像要从你脸上找出一句假话来。找不到,她就把脸别过去了。
|
|
27
|
+
金莲(羞):说得好听。我记着呢,一个字一个字都记着。
|
|
28
|
+
@jump p1_end
|
|
29
|
+
|
|
30
|
+
# p1_tease
|
|
31
|
+
金莲(怒):不缺人陪?
|
|
32
|
+
她的脸色一下子冷了。
|
|
33
|
+
金莲(怒):这宅子里,谁陪我?春梅是丫头,月娘看我像看贼,瓶儿看我像看狼。你倒说说,谁陪我?
|
|
34
|
+
她把扇子往桌上一拍,又不说话了。
|
|
35
|
+
@jump p1_end
|
|
36
|
+
|
|
37
|
+
# p1_end
|
|
38
|
+
金莲:……你等着。
|
|
39
|
+
她从枕头底下摸出一叠纸,皱巴巴的,边角都磨毛了。
|
|
40
|
+
@cg pan_mid
|
|
41
|
+
金莲(羞):去年冬天,你有一个月没来。我天天写,写一张,就想托人给你送去。写完了,又不敢送。
|
|
42
|
+
纸上是她的字,歪歪扭扭的小词:“……独自个,守着孤灯,一夜挨一夜。”
|
|
43
|
+
金莲(哀):笑吧。潘金莲也会写这种酸东西。
|
|
44
|
+
你没有笑。那叠纸你一张一张看完了,她就在旁边,一句话也不说。
|
|
45
|
+
@cg off
|
|
46
|
+
@hide all
|
|
47
|
+
@jump pan_date
|
|
48
|
+
|
|
49
|
+
# pan_r2
|
|
50
|
+
@bg garden fade
|
|
51
|
+
@bgm tension
|
|
52
|
+
@chapter 潘金莲篇|风波
|
|
53
|
+
没过几天,宅里就传开了一个消息:瓶儿害喜了。
|
|
54
|
+
月娘高兴得请了大夫,雪娥天天往东院送汤。整座宅子的眼睛,一下子都转了过去。
|
|
55
|
+
只有角门那边,静得出奇。
|
|
56
|
+
@show pan 中 平
|
|
57
|
+
金莲(平):官人来得正好。我有件事,想求你。
|
|
58
|
+
她今天没有笑,扇子也没拿,手指在桌上一下一下地敲。
|
|
59
|
+
金莲:瓶儿那只箱子。你去替我开一回,让我看看里头到底装了什么。
|
|
60
|
+
金莲(怒):她凭什么?凭几箱子银子,凭一个还没生下来的孩子,就叫满宅子的人围着她转?我就想知道,她凭什么。
|
|
61
|
+
金莲(怒):你不帮我,我自己也有法子。宅里的嘴,我一张张都认得。
|
|
62
|
+
她的眼睛亮得吓人。你知道,她说的“法子”,是真的。
|
|
63
|
+
@choice
|
|
64
|
+
- “这事我不帮你。可今夜,我陪你。” -> p2_trust {pan+2 f:pan_trust}
|
|
65
|
+
- “好,我去替你开。” -> p2_scheme {pan+1 pinger-2 f:pan_hurt}
|
|
66
|
+
- 冷下脸:“你闹够了没有?” -> p2_cold {pan-1 f:pan_cold}
|
|
67
|
+
|
|
68
|
+
# p2_trust
|
|
69
|
+
金莲(惊):……你说什么?
|
|
70
|
+
西门庆:箱子我不开。她有她的,你有你的。你要的东西,不在那只箱子里。
|
|
71
|
+
她愣住了。过了很久,她才慢慢坐下来,两只手绞在一起。
|
|
72
|
+
金莲(哀):……那在哪儿?
|
|
73
|
+
西门庆:在这儿。今夜我不走。
|
|
74
|
+
金莲(哀):你这人……你这人真坏。我刚把一肚子狠话都准备好了,你叫我往哪儿说去。
|
|
75
|
+
她把头抵在你胸口,肩膀一抽一抽的,却没发出一点声音。
|
|
76
|
+
@jump pan_r3
|
|
77
|
+
|
|
78
|
+
# p2_scheme
|
|
79
|
+
金莲(笑):我就知道,官人是疼我的。
|
|
80
|
+
她笑得很好看。可那天夜里,你从东院偷出那只箱子的钥匙时,手心里全是汗。
|
|
81
|
+
箱子开了。里头是银子、沉香,还有一件小小的、刚缝好的孩子衣裳。
|
|
82
|
+
金莲(平):……就这些?
|
|
83
|
+
她看了很久,什么也没说,把箱子合上了。
|
|
84
|
+
从那天起,宅里关于瓶儿的闲话,一天比一天多。没有人知道是从哪儿传出来的——除了你。
|
|
85
|
+
@jump pan_r3
|
|
86
|
+
|
|
87
|
+
# p2_cold
|
|
88
|
+
金莲(怒):闹?
|
|
89
|
+
她冷笑了一声,眼圈却红了。
|
|
90
|
+
金莲(怒):好,我闹。我不闹,谁看得见我?……你走吧。东院的汤,该熬好了。
|
|
91
|
+
你走了。走出角门,身后“砰”地一声,门闩落下了。
|
|
92
|
+
那是你娶瓶儿以来,她头一回闩上那扇门。
|
|
93
|
+
@jump pan_r3
|
|
94
|
+
|
|
95
|
+
# pan_r3
|
|
96
|
+
@hide all
|
|
97
|
+
@bg court_night fade
|
|
98
|
+
@bgm night
|
|
99
|
+
@chapter 潘金莲篇|琵琶
|
|
100
|
+
又过了几日,一个起风的夜里,你从东院出来,听见花园那头传来琵琶声。
|
|
101
|
+
弹的是旧曲子,《寄生草》。弹得很慢,一个音一个音地落,像在数更。
|
|
102
|
+
@if f:pan_hurt -> p3_bad
|
|
103
|
+
@if f:pan_cold -> p3_normal
|
|
104
|
+
@bg garden fade
|
|
105
|
+
@show pan 中 哀
|
|
106
|
+
角门开着。金莲抱着琵琶,坐在门槛上,没有梳头。
|
|
107
|
+
金莲(哀):……我就知道你会听见。我弹给你听的,故意弹这么大声。
|
|
108
|
+
金莲:从前你不来,我就弹到半夜。手指头弹破了,第二天照样笑着去给大姐请安。
|
|
109
|
+
她把琵琶横在膝上,抬头看你。
|
|
110
|
+
金莲(哀):官人,我不跟她们比了。比不过,也不想比了。我就问你一句——
|
|
111
|
+
金莲(哀):你看我的时候,看的是潘金莲,还是一个会闹、会凶、会讨你欢心的玩意儿?
|
|
112
|
+
@choice
|
|
113
|
+
- 蹲下来,替她把头发拢好:“看的是你。” -> p3_true
|
|
114
|
+
- “你问这个做什么,进屋吧。” -> p3_soft
|
|
115
|
+
|
|
116
|
+
# p3_true
|
|
117
|
+
@if pan<7 -> p3_soft
|
|
118
|
+
@bgm tender
|
|
119
|
+
金莲(惊):……
|
|
120
|
+
她的手一松,琵琶差点滑下去,你替她扶住了。
|
|
121
|
+
金莲(哀):你别这样看我。我会当真的。
|
|
122
|
+
西门庆:当真吧。
|
|
123
|
+
金莲(哀):……
|
|
124
|
+
她笑起来,眼泪却一颗一颗往下掉,掉在琵琶的弦上。
|
|
125
|
+
@jump pan_good
|
|
126
|
+
|
|
127
|
+
# p3_soft
|
|
128
|
+
金莲(平):……进屋。好,进屋。
|
|
129
|
+
她站起来,抱着琵琶走在前头。你没看见她的脸,只看见她的背挺得很直。
|
|
130
|
+
那一夜你留下了。她待你很好,好得挑不出一点错。
|
|
131
|
+
只是天亮的时候,你醒来,看见她坐在窗前,又在拨那支《寄生草》,拨了一半,停了。
|
|
132
|
+
@jump p3_normal_tail
|
|
133
|
+
|
|
134
|
+
# p3_normal
|
|
135
|
+
@bg garden fade
|
|
136
|
+
@show pan 中 平
|
|
137
|
+
角门半掩着,琵琶声停了。金莲坐在门里,看见你,没有起身。
|
|
138
|
+
金莲(平):官人路过?
|
|
139
|
+
西门庆:……路过。
|
|
140
|
+
金莲(笑):那就路过吧。门我不闩,你想进就进,不想进,我也不留。
|
|
141
|
+
@jump p3_normal_tail
|
|
142
|
+
|
|
143
|
+
# p3_normal_tail
|
|
144
|
+
@hide all
|
|
145
|
+
@bgm sad
|
|
146
|
+
后来,那扇角门再也没有闩过,也再没有为谁整夜开着。
|
|
147
|
+
她照旧会笑,会闹,会在饭桌上挑雪娥的汤。只是她不再问你,看她的时候,看的是谁。
|
|
148
|
+
@ending pan_normal
|
|
149
|
+
@fate pan
|
|
150
|
+
@end
|
|
151
|
+
|
|
152
|
+
# p3_bad
|
|
153
|
+
@bg garden fade
|
|
154
|
+
琵琶声在你推门的那一刻停了。
|
|
155
|
+
@show pan 中 笑
|
|
156
|
+
金莲(笑):官人来了?来得正好,我刚听说,东院那位,夜里又请了大夫。
|
|
157
|
+
金莲(笑):啧,可怜见的。都是那些闲话闹的吧?也不知是谁传的。
|
|
158
|
+
她笑得很甜。你忽然发现,你已经认不出她笑的时候,心里在想什么了。
|
|
159
|
+
金莲(平):官人,你帮过我一回,往后就得一直帮下去。这宅子里,咱们俩,是一样的人。
|
|
160
|
+
她把扇子递给你。你没有接。扇子掉在地上,她也没有捡。
|
|
161
|
+
@bgm sad
|
|
162
|
+
@ending pan_bad
|
|
163
|
+
@fate pan
|
|
164
|
+
@end
|
|
165
|
+
|
|
166
|
+
# pan_good
|
|
167
|
+
@bg chamber fade
|
|
168
|
+
@bgm tender
|
|
169
|
+
@scene pan_night 琵琶不冷
|
|
170
|
+
屋里很暖。她把琵琶挂回墙上,转过身来,扇子不知什么时候又回到了手里。
|
|
171
|
+
@show pan 中 羞
|
|
172
|
+
金莲(羞):……看什么看。头发还没梳呢。
|
|
173
|
+
金莲(笑):官人今夜要是走了,我明日就把你那句“看的是你”,说给全宅的人听。
|
|
174
|
+
她拿扇子挡着半张脸,只露出一双眼睛。那双眼睛里,头一回没有算计。
|
|
175
|
+
@choice
|
|
176
|
+
- 拿开她的扇子 -> pan_h
|
|
177
|
+
- 替她梳头,梳到天亮 -> pan_dawn
|
|
178
|
+
|
|
179
|
+
# pan_h
|
|
180
|
+
@hide all
|
|
181
|
+
@cg pan_h1
|
|
182
|
+
扇子落在枕边。她笑了一声,伸手去够灯芯。
|
|
183
|
+
金莲:……这回,是你自己推的门。
|
|
184
|
+
@cg pan_h2
|
|
185
|
+
后来的事,屋外的春风都听见了,它一路吹过花园,没有告诉任何人。
|
|
186
|
+
她伏在你肩上,很小声地说:往后你不来的夜里,我也不弹那支曲子了。
|
|
187
|
+
@endscene
|
|
188
|
+
@jump pan_end
|
|
189
|
+
|
|
190
|
+
# pan_dawn
|
|
191
|
+
@hide all
|
|
192
|
+
@bg chamber fade
|
|
193
|
+
@show pan 中 笑
|
|
194
|
+
你拿起梳子,一下一下替她梳那头长发。她起先还嫌你手笨,后来就不说话了,只从镜子里看你。
|
|
195
|
+
金莲(笑):……西门庆,你给几个人梳过头?
|
|
196
|
+
西门庆:就你一个。
|
|
197
|
+
金莲(羞):骗人。……可我爱听。
|
|
198
|
+
@endscene
|
|
199
|
+
@jump pan_end
|
|
200
|
+
|
|
201
|
+
# pan_end
|
|
202
|
+
@hide all
|
|
203
|
+
@bg garden fade
|
|
204
|
+
@cg pan_end
|
|
205
|
+
第二天,春风很好。金莲在花园里摆了一张小桌,摊开纸笔,又写了一首小词。
|
|
206
|
+
这回她没有藏。她把词折好,塞进你的袖子里,转身就跑,扇子在身后一摇一摇。
|
|
207
|
+
你后来打开看了。只有两句:
|
|
208
|
+
“角门不闩,琵琶不冷。”
|
|
209
|
+
@ending pan_good
|
|
210
|
+
@fate pan
|
|
211
|
+
@end
|
|
212
|
+
`;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
// 李瓶儿线 · 钥匙(第十四回过墙托付、第十九回入门受冷为本)
|
|
2
|
+
export default String.raw`
|
|
3
|
+
# pinger_route
|
|
4
|
+
@hide all
|
|
5
|
+
@bg court_night fade
|
|
6
|
+
@bgm tender
|
|
7
|
+
@chapter 李瓶儿篇|东院
|
|
8
|
+
东院的灯还亮着。窗纸上映着一个人影,坐得很直,像在等什么,又像怕等到什么。
|
|
9
|
+
@bg chamber fade
|
|
10
|
+
@show pinger 中 惊
|
|
11
|
+
瓶儿(惊):官人……!
|
|
12
|
+
她站起来得太急,碰翻了针线笸箩,线团滚了一地。
|
|
13
|
+
瓶儿(羞):我、我以为今夜……你会去别处。
|
|
14
|
+
西门庆:你在等我?
|
|
15
|
+
瓶儿(羞):没有等。……就是睡不着,缝点东西。
|
|
16
|
+
她蹲下去捡线团,捡着捡着,手停了。
|
|
17
|
+
瓶儿(哀):官人,今日荷亭上,应二爷那句话,我听见了。满座的人都听见了。
|
|
18
|
+
瓶儿:他说得也不算错。我进这个门,是带着箱子进来的。宅里人看我,先看箱子,再看我。
|
|
19
|
+
她起身,从枕边取出一把小小的铜钥匙,双手捧到你面前。
|
|
20
|
+
瓶儿(哀):这箱子里的东西,往后都交给官人。我留着它,人家就一直只看见它。官人收了,我就……就只是个寻常的六娘了。
|
|
21
|
+
@choice
|
|
22
|
+
- 收下钥匙 -> b1_take {f:pinger_took}
|
|
23
|
+
- 把钥匙放回她手心,合上她的手指 -> b1_return {pinger+2}
|
|
24
|
+
|
|
25
|
+
# b1_take
|
|
26
|
+
瓶儿(笑):……嗯。
|
|
27
|
+
她松了一口气,像是放下了一副很重的担子。可你握着那把钥匙,觉得它在手心里一点点凉下去。
|
|
28
|
+
瓶儿(笑):官人收了就好。往后宅里用钱,官人只管开口。
|
|
29
|
+
她笑得很温顺。温顺得像一件被收好的东西。
|
|
30
|
+
@jump b1_end
|
|
31
|
+
|
|
32
|
+
# b1_return
|
|
33
|
+
瓶儿(惊):官人……?
|
|
34
|
+
西门庆:箱子是你的。这把钥匙,你得自己收着。
|
|
35
|
+
西门庆:我要是想要箱子,那年就不必等你过墙。
|
|
36
|
+
瓶儿(哀):……
|
|
37
|
+
她低头看着自己的手,看着那把重新落回掌心的钥匙,很久没动。
|
|
38
|
+
瓶儿(哀):在花家的时候,什么都是别人的。银子是,屋子是,连我自己……也是。
|
|
39
|
+
瓶儿(羞):头一回,有人把东西还给我。
|
|
40
|
+
@jump b1_end
|
|
41
|
+
|
|
42
|
+
# b1_end
|
|
43
|
+
夜深了。她留你喝了一杯茶,茶是热的。
|
|
44
|
+
你走的时候,她送到院门口,手里还攥着那团没缝完的线。
|
|
45
|
+
瓶儿(羞):……官人,明日还来么?
|
|
46
|
+
@hide all
|
|
47
|
+
@jump pinger_date
|
|
48
|
+
|
|
49
|
+
# pinger_r2
|
|
50
|
+
@bg garden fade
|
|
51
|
+
@bgm tension
|
|
52
|
+
@chapter 李瓶儿篇|空匣
|
|
53
|
+
半个月后,宅里起了新的闲话。说东院那位出手阔,见人就送;说她的银子,比正堂的规矩还管用。
|
|
54
|
+
你走进东院时,看见瓶儿坐在窗边,脸色比纸还白。
|
|
55
|
+
@bg chamber fade
|
|
56
|
+
@show pinger 中 哀
|
|
57
|
+
瓶儿(哀):官人……你来了。
|
|
58
|
+
瓶儿:我心里慌。宅里有人在说——说我拿银子买的这个门,如今又想拿银子买这个宅子。
|
|
59
|
+
她站起来,打开床边的箱子。你一看,愣住了:箱子里空了一大半。
|
|
60
|
+
@cg pinger_mid
|
|
61
|
+
瓶儿(哀):这些日子,我给灶上的婆子添了工钱,给门房的小厮做了新衣,给五姐姐房里送了胭脂……能送的,我都送了。
|
|
62
|
+
瓶儿(哀):我想,送得多了,她们就不会那么说我了。就会喜欢我一点了。
|
|
63
|
+
瓶儿:可是没有用。官人,没有用。她们拿了东西,背过身去,说得更多了。
|
|
64
|
+
她手里攥着那把钥匙,攥得指节发白。
|
|
65
|
+
@cg off
|
|
66
|
+
@choice
|
|
67
|
+
- “你不用拿银子换人心。明日正堂上,我当着全家的面说清楚。” -> b2_trust {pinger+2 yue+1 f:pinger_trust}
|
|
68
|
+
- “你的银子,你自己做主,我不管。” -> b2_aside
|
|
69
|
+
- “既然箱子里还有余钱,先借公中一些,堵堵她们的嘴。” -> b2_hurt {pinger-2 f:pinger_hurt}
|
|
70
|
+
|
|
71
|
+
# b2_trust
|
|
72
|
+
瓶儿(惊):……正堂上?
|
|
73
|
+
第二天的早饭,五个人都在。你放下筷子,说了一句话:
|
|
74
|
+
西门庆:六娘的银子,是她自己的。往后谁再拿这个说事,就是拿我说事。
|
|
75
|
+
满座都静了。月娘头一个点了头,玉楼跟着笑着打圆场,连金莲都没吭声。
|
|
76
|
+
那天下午,瓶儿把箱子锁上了。她没再往外送一样东西。
|
|
77
|
+
@jump pinger_r3
|
|
78
|
+
|
|
79
|
+
# b2_aside
|
|
80
|
+
瓶儿(哀):……嗯,我知道了。
|
|
81
|
+
她把箱子合上,点点头,好像早就猜到了这个答案。
|
|
82
|
+
往后,她不再往外送东西了,也不再出东院。宅里的闲话没少,只是她不去听了。
|
|
83
|
+
@jump pinger_r3
|
|
84
|
+
|
|
85
|
+
# b2_hurt
|
|
86
|
+
瓶儿(惊):……借,公中?
|
|
87
|
+
她愣了很久,然后慢慢点了头。
|
|
88
|
+
瓶儿(平):好。官人要多少,我去拿。
|
|
89
|
+
她把剩下的银子一锭一锭摆出来,摆得很整齐,像在点一笔与自己无关的账。
|
|
90
|
+
那一夜之后,东院的灯,比从前熄得早了。
|
|
91
|
+
@jump pinger_r3
|
|
92
|
+
|
|
93
|
+
# pinger_r3
|
|
94
|
+
@hide all
|
|
95
|
+
@bg court_night fade
|
|
96
|
+
@bgm night
|
|
97
|
+
@weather rain
|
|
98
|
+
@chapter 李瓶儿篇|窗下
|
|
99
|
+
入夏前的一个夜里,下了一场小雨。你又往东院去。
|
|
100
|
+
@weather none
|
|
101
|
+
@if f:pinger_hurt -> b3_bad
|
|
102
|
+
@bg chamber fade
|
|
103
|
+
@show pinger 中 平
|
|
104
|
+
瓶儿坐在窗下,在缝一只香囊,青缎面,绣了半枝桃花。
|
|
105
|
+
瓶儿(笑):官人来了。……你看,花瓣绣歪了。本来想绣好了再给你的。
|
|
106
|
+
她把香囊举起来给你看,自己先笑了。那是她进门以来,你第一次看见她笑得不那么小心。
|
|
107
|
+
瓶儿(平):官人,我想问你一件事。问完了,你怎么答,我都认。
|
|
108
|
+
瓶儿(羞):……人,你要不要?
|
|
109
|
+
瓶儿:不是箱子,不是银子。是我。李瓶儿这个人。
|
|
110
|
+
窗外的雨很细,打在芭蕉叶上,沙沙地响。
|
|
111
|
+
@choice
|
|
112
|
+
- “要。从你过墙那天起,就要。” -> b3_yes
|
|
113
|
+
- 笑着摸摸她的头:“说什么傻话。” -> b3_soft
|
|
114
|
+
|
|
115
|
+
# b3_yes
|
|
116
|
+
@if f:pinger_took -> b3_soft
|
|
117
|
+
@if !f:pinger_trust -> b3_soft
|
|
118
|
+
@if pinger<7 -> b3_soft
|
|
119
|
+
@bgm tender
|
|
120
|
+
瓶儿(惊):……
|
|
121
|
+
她手里的香囊掉在膝上。她看着你,看了很久,眼泪才慢慢涌上来。
|
|
122
|
+
瓶儿(哀):我等这句话,等了好久。在花家的时候等,在墙那边的时候等,进了门在新房里等了三夜……
|
|
123
|
+
瓶儿(笑):现在等到了。
|
|
124
|
+
她伸手过来,牵住你的袖子。那只手不再发抖了。
|
|
125
|
+
@jump pinger_good
|
|
126
|
+
|
|
127
|
+
# b3_soft
|
|
128
|
+
瓶儿(笑):……嗯。是傻话。
|
|
129
|
+
她低下头,接着绣那半枝歪了的桃花。
|
|
130
|
+
你陪她坐到雨停。她给你沏了一杯茶,茶很好,人也很温柔。可她再也没有问过那个问题。
|
|
131
|
+
@bgm sad
|
|
132
|
+
后来那只香囊绣好了,她托雪娥送来,绣得很工整,挑不出一点错。她在东院过得很安稳,像一个终于把日子过稳了的人。
|
|
133
|
+
只是那把钥匙,她再也没拿出来给你看过。
|
|
134
|
+
@ending pinger_normal
|
|
135
|
+
@fate pinger
|
|
136
|
+
@end
|
|
137
|
+
|
|
138
|
+
# b3_bad
|
|
139
|
+
@bg chamber fade
|
|
140
|
+
东院的门关着。你敲了两下,里头的灯亮了,门却没开。
|
|
141
|
+
瓶儿:……官人,夜深了,我身子乏,今夜就不留了。
|
|
142
|
+
她的声音隔着门,很客气,客气得像在跟一个来收账的人说话。
|
|
143
|
+
瓶儿:箱子里还剩一些。官人若还要用,明日叫玳安来取就是。
|
|
144
|
+
@bgm sad
|
|
145
|
+
你在门外站了一会儿。门里的灯,过了一阵,熄了。
|
|
146
|
+
@ending pinger_bad
|
|
147
|
+
@fate pinger
|
|
148
|
+
@end
|
|
149
|
+
|
|
150
|
+
# pinger_good
|
|
151
|
+
@weather none
|
|
152
|
+
@bg chamber fade
|
|
153
|
+
@bgm tender
|
|
154
|
+
@scene pinger_night 钥匙在她手里
|
|
155
|
+
她起身去关窗。关好了,又回过头来,把灯芯拨亮了一点。
|
|
156
|
+
@show pinger 中 羞
|
|
157
|
+
瓶儿(羞):……从前我总是先关窗,再哭。今夜先关窗,是不想叫雨声,把官人的话冲走了。
|
|
158
|
+
她把那把铜钥匙从腰间解下来,没有给你,而是放进了妆台的抽屉里。
|
|
159
|
+
瓶儿(笑):今夜,它不用守着我了。
|
|
160
|
+
@choice
|
|
161
|
+
- 走过去,抱住她 -> pinger_h
|
|
162
|
+
- 扶她躺下,握着她的手说话 -> pinger_dawn
|
|
163
|
+
|
|
164
|
+
# pinger_h
|
|
165
|
+
@hide all
|
|
166
|
+
@cg pinger_h1
|
|
167
|
+
她靠进你怀里,轻得像一片叶子。纱帐落下来,把雨声隔在外头。
|
|
168
|
+
瓶儿:……灯,别吹。我想看着你。
|
|
169
|
+
@cg pinger_h2
|
|
170
|
+
后来的事,只有那盏灯知道。它燃到天快亮才熄,像是也舍不得。
|
|
171
|
+
她在你耳边说:官人,我不怕打雷了。
|
|
172
|
+
@endscene
|
|
173
|
+
@jump pinger_end
|
|
174
|
+
|
|
175
|
+
# pinger_dawn
|
|
176
|
+
@hide all
|
|
177
|
+
@bg chamber fade
|
|
178
|
+
@show pinger 中 笑
|
|
179
|
+
你们说了一夜的话。说她小时候在大名府看过的元宵灯,说那架歪歪扭扭的葡萄,哪年才能结果。
|
|
180
|
+
瓶儿(笑):……官人,葡萄熟了,我给你酿酒。你可不许先给别人喝。
|
|
181
|
+
西门庆:好。
|
|
182
|
+
瓶儿(羞):拉钩。
|
|
183
|
+
@endscene
|
|
184
|
+
@jump pinger_end
|
|
185
|
+
|
|
186
|
+
# pinger_end
|
|
187
|
+
@hide all
|
|
188
|
+
@bg garden fade
|
|
189
|
+
@cg pinger_end
|
|
190
|
+
第二天一早,瓶儿当着月娘的面,打开了那只箱子。
|
|
191
|
+
她取出一份,说是还灶上欠的工钱;又取出一份,交到月娘手里,说是添给公中的,不图人记;剩下的,她锁回去,钥匙仍旧系在自己腰间。
|
|
192
|
+
瓶儿(笑):大姐姐,这是我的家当。往后怎么用,我自己会想,也会先跟你商量。
|
|
193
|
+
月娘看了她很久,点了点头:“好。”
|
|
194
|
+
那是瓶儿进门以来,第一次在正堂上,用自己的声音说话。
|
|
195
|
+
@ending pinger_good
|
|
196
|
+
@fate pinger
|
|
197
|
+
@end
|
|
198
|
+
`;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
// 孙雪娥线 · 灶火(第十一回掌灶、受谗挨打为本;本作让玩家改写那一场)
|
|
2
|
+
export default String.raw`
|
|
3
|
+
# xuee_route
|
|
4
|
+
@hide all
|
|
5
|
+
@bg court_night fade
|
|
6
|
+
@bgm night
|
|
7
|
+
@chapter 孙雪娥篇|灶上
|
|
8
|
+
你没有往哪个院子去。你往灶上走。
|
|
9
|
+
已经过了三更,灶膛里还有一点余火。雪娥坐在小板凳上,靠着灶台,围裙都没解,就那么睡着了。
|
|
10
|
+
@bg kitchen fade
|
|
11
|
+
@show xuee 中 惊
|
|
12
|
+
你刚跨进门槛,她就醒了,一下子站起来。
|
|
13
|
+
雪娥(惊):谁!……官人?
|
|
14
|
+
雪娥(羞):这、这儿是灶上,官人走错了吧。
|
|
15
|
+
西门庆:没走错。
|
|
16
|
+
雪娥(平):……那是饿了?我给你下碗面。
|
|
17
|
+
她不等你答,已经去舀水、添柴,动作快得像怕你反悔走了。火一下子旺起来,照得她半边脸通红。
|
|
18
|
+
雪娥:席上的菜,官人吃好了没有。那道蹄子,我炖了一夜。
|
|
19
|
+
西门庆:吃好了。最好的就是那道。
|
|
20
|
+
雪娥(惊):……真的?
|
|
21
|
+
她背过身去揉面,你看不见她的脸,只看见她揉面的手,慢了一下。
|
|
22
|
+
@choice
|
|
23
|
+
- 卷起袖子:“我来烧火。” -> x1_fire {xuee+1}
|
|
24
|
+
- 坐在一旁,看她忙 -> x1_watch
|
|
25
|
+
|
|
26
|
+
# x1_fire
|
|
27
|
+
雪娥(惊):你?你会烧火?
|
|
28
|
+
你不会。头一把柴塞进去,烟呛得两个人都咳。
|
|
29
|
+
雪娥(笑):……哈。笨死了。柴要架空,火才旺。
|
|
30
|
+
她蹲下来,手把手教你架柴。她的手很糙,掌心全是茧,却很暖。
|
|
31
|
+
雪娥(羞):……官人的手,倒是比我的还细。
|
|
32
|
+
@jump x1_end
|
|
33
|
+
|
|
34
|
+
# x1_watch
|
|
35
|
+
你在一旁的小板凳上坐着,看她忙。她忙得很利落,一点多余的动作也没有。
|
|
36
|
+
雪娥(平):官人别这么看着,我手要抖的。
|
|
37
|
+
@jump x1_end
|
|
38
|
+
|
|
39
|
+
# x1_end
|
|
40
|
+
面好了。一碗清汤面,卧了个蛋,撒了葱花。
|
|
41
|
+
你吃的时候,她就站在旁边看,像看一道菜有没有人动筷子。
|
|
42
|
+
雪娥(哀):官人,我是丫头出身,这宅里人人都记得。我也不求别的。
|
|
43
|
+
雪娥:我就想,往后这口灶,烧出来的东西,有人记得是谁烧的。
|
|
44
|
+
@hide all
|
|
45
|
+
@jump xuee_date
|
|
46
|
+
|
|
47
|
+
# xuee_r2
|
|
48
|
+
@bg kitchen fade
|
|
49
|
+
@bgm tension
|
|
50
|
+
@chapter 孙雪娥篇|冷灶
|
|
51
|
+
过了几日,灶上出了事。
|
|
52
|
+
春梅一口咬定,金莲房里要做荷花饼的一包上好白糖,叫雪娥扣下了,拿去做了人情。
|
|
53
|
+
@show pan 左 怒
|
|
54
|
+
@show xuee 右 怒
|
|
55
|
+
金莲(怒):上回的饼,这回的糖。四姐,你这灶上,是专跟我们角门过不去?
|
|
56
|
+
雪娥(怒):糖我没扣!库里领出来几包,用掉几包,账上一笔一笔都有!
|
|
57
|
+
金莲(怒):账?你一个烧火的,账还不是你自己写的?
|
|
58
|
+
金莲(怒):官人,从前你说过,这宅里的规矩不能乱。灶上的人手脚不干净,按老规矩——该打。
|
|
59
|
+
屋里一下子静了。春梅站在金莲身后,眼睛却不敢看雪娥。
|
|
60
|
+
@cg xuee_mid
|
|
61
|
+
雪娥站在仓房的米缸前,一只手伸出来,像要挡住什么。
|
|
62
|
+
雪娥(哀):……官人,你也信?
|
|
63
|
+
@cg off
|
|
64
|
+
@choice
|
|
65
|
+
- “拿账来,当着所有人的面,一笔一笔对。” -> x2_trust {xuee+2 f:xuee_trust}
|
|
66
|
+
- “都少说两句。糖,再领一包就是。” -> x2_mud
|
|
67
|
+
- “金莲说得对。规矩就是规矩。” -> x2_hurt {xuee-3 pan+1 f:xuee_hurt}
|
|
68
|
+
|
|
69
|
+
# x2_trust
|
|
70
|
+
雪娥(惊):……
|
|
71
|
+
她愣了一下,然后转身进了仓房,抱出一本油乎乎的账簿,啪地摊在案上。
|
|
72
|
+
账是对的。几包领,几包用,哪天用在哪道菜上,她记得清清楚楚。少的那一包,是春梅自己领走了,忘了记。
|
|
73
|
+
春梅的脸一下子白了。金莲狠狠剜了她一眼,扇子一合,转身就走。
|
|
74
|
+
@hide pan
|
|
75
|
+
@show xuee 中 哀
|
|
76
|
+
雪娥(哀):……官人。
|
|
77
|
+
她攥着那本账簿,指节都白了。
|
|
78
|
+
雪娥(哀):上回……上回也是这样。没人对账,没人问我。我挨了打,第二天,还得起来给全家做饭。
|
|
79
|
+
雪娥(羞):这回,你问了。
|
|
80
|
+
@jump xuee_r3
|
|
81
|
+
|
|
82
|
+
# x2_mud
|
|
83
|
+
金莲哼了一声,到底没再闹。春梅又去领了一包糖。
|
|
84
|
+
事情就这么过去了。没有人挨打,也没有人说清楚,那包糖到底去了哪儿。
|
|
85
|
+
雪娥那天做的晚饭,一样不少,一样都好。只是汤里,忘了放盐。
|
|
86
|
+
@jump xuee_r3
|
|
87
|
+
|
|
88
|
+
# x2_hurt
|
|
89
|
+
雪娥看着你。那一眼很长,长得你后来很久都忘不掉。
|
|
90
|
+
雪娥(平):……好。规矩就是规矩。
|
|
91
|
+
她没哭,也没求。挨完了,她回到灶上,照常生火、做饭。
|
|
92
|
+
那天晚上,饭菜一样不少,一样都好。只是没有一样,是热的。
|
|
93
|
+
@jump xuee_r3
|
|
94
|
+
|
|
95
|
+
# xuee_r3
|
|
96
|
+
@hide all
|
|
97
|
+
@bg kitchen fade
|
|
98
|
+
@bgm daily
|
|
99
|
+
@chapter 孙雪娥篇|天亮前
|
|
100
|
+
又过了些日子,一个天还没亮的早晨。
|
|
101
|
+
@if f:xuee_hurt -> x3_bad
|
|
102
|
+
你醒得早,鬼使神差地走到了灶上。雪娥已经在了,锅里的粥咕嘟咕嘟地响。
|
|
103
|
+
@show xuee 中 笑
|
|
104
|
+
雪娥(笑):官人今日倒起得早。……粥还没好,你等等。
|
|
105
|
+
她盛了两碗。一碗放在你面前,一碗,她犹豫了一下,放在了自己面前。
|
|
106
|
+
雪娥(羞):……我从来都是站着吃的。灶上的人,等全宅吃完了,才轮到自己。
|
|
107
|
+
雪娥(平):今日,我想坐着吃。就在这儿,跟你一起。你……愿意吗?在灶上,不在正堂。
|
|
108
|
+
灶膛里的火,噼噼啪啪地响。
|
|
109
|
+
@choice
|
|
110
|
+
- 拉过板凳,在她身边坐下 -> x3_sit
|
|
111
|
+
- “端去正堂吃吧,这儿太窄了。” -> x3_hall
|
|
112
|
+
|
|
113
|
+
# x3_sit
|
|
114
|
+
@if !f:xuee_trust -> x3_normal
|
|
115
|
+
@if xuee<7 -> x3_normal
|
|
116
|
+
@bgm tender
|
|
117
|
+
雪娥(惊):……
|
|
118
|
+
她看着你坐下,看着你端起那碗粥,看着你吃了第一口。
|
|
119
|
+
雪娥(哀):烫不烫?
|
|
120
|
+
西门庆:刚好。
|
|
121
|
+
雪娥(笑):……那就好。
|
|
122
|
+
她这才端起自己那碗,小口小口地喝。喝着喝着,眼泪掉进了粥里,她赶紧用袖子擦。
|
|
123
|
+
雪娥(羞):烟熏的。灶上的烟,大。
|
|
124
|
+
@jump xuee_good
|
|
125
|
+
|
|
126
|
+
# x3_hall
|
|
127
|
+
雪娥(平):……也是。灶上窄,官人坐不惯。
|
|
128
|
+
她把你那碗端起来,放上托盘,送去了正堂。她自己那碗,就搁在灶台上,慢慢凉了。
|
|
129
|
+
@jump x3_normal
|
|
130
|
+
|
|
131
|
+
# x3_normal
|
|
132
|
+
@hide all
|
|
133
|
+
@bgm sad
|
|
134
|
+
后来,雪娥还是天天第一个起,最后一个吃。
|
|
135
|
+
只是你偶尔路过灶上,会看见灶台边多了一张板凳。板凳一直空着,擦得很干净。
|
|
136
|
+
@ending xuee_normal
|
|
137
|
+
@fate xuee
|
|
138
|
+
@end
|
|
139
|
+
|
|
140
|
+
# x3_bad
|
|
141
|
+
灶上没有火。
|
|
142
|
+
天还没亮,灶膛是冷的,锅是空的。雪娥坐在小板凳上,围裙叠得整整齐齐,放在膝头。
|
|
143
|
+
@show xuee 中 平
|
|
144
|
+
雪娥(平):官人。……早饭,今日让厨下的婆子做吧。
|
|
145
|
+
雪娥:我想歇一天。就一天。规矩里,总该有这一条吧。
|
|
146
|
+
@bgm sad
|
|
147
|
+
她站起来,从你身边走过去,没有看你。
|
|
148
|
+
那天全宅的早饭,是凉的。没有人说什么。没有人知道,这口灶,是怎么冷下去的。
|
|
149
|
+
@ending xuee_bad
|
|
150
|
+
@fate xuee
|
|
151
|
+
@end
|
|
152
|
+
|
|
153
|
+
# xuee_good
|
|
154
|
+
@bg chamber fade
|
|
155
|
+
@bgm tender
|
|
156
|
+
@scene xuee_night 天亮前的两碗粥
|
|
157
|
+
那天夜里,她来了你的屋子。不是你去找她——是她自己来的。
|
|
158
|
+
@show xuee 中 羞
|
|
159
|
+
雪娥(羞):……我洗过手了。洗了三遍,还是有股烟火气。
|
|
160
|
+
她站在门口,不进也不退,手里攥着解下来的围裙。
|
|
161
|
+
雪娥(哀):官人,我先说清楚。我来,不是为了往后少挨骂,也不是为了换个好差事。
|
|
162
|
+
雪娥(羞):我就是……想来。
|
|
163
|
+
@choice
|
|
164
|
+
- 握住她那双满是茧的手 -> xuee_h
|
|
165
|
+
- 让她坐下,替她揉揉肩 -> xuee_dawn
|
|
166
|
+
|
|
167
|
+
# xuee_h
|
|
168
|
+
@hide all
|
|
169
|
+
@cg xuee_h1
|
|
170
|
+
她的手在你掌心里缩了一下,又慢慢松开了。
|
|
171
|
+
雪娥:……别笑我手糙。
|
|
172
|
+
@cg xuee_h2
|
|
173
|
+
后来的事,灶上的烟火气,混着屋里的香,一直缠到了天明。
|
|
174
|
+
她在你身边,头一回睡过了时辰。醒来时惊得要跳起来,又被你拉回了被子里。
|
|
175
|
+
@endscene
|
|
176
|
+
@jump xuee_end
|
|
177
|
+
|
|
178
|
+
# xuee_dawn
|
|
179
|
+
@hide all
|
|
180
|
+
@bg chamber fade
|
|
181
|
+
@show xuee 中 笑
|
|
182
|
+
你替她揉肩。她的肩很硬,是常年挑水、揉面压出来的。
|
|
183
|
+
雪娥(笑):……官人手劲儿还行。比烧火强。
|
|
184
|
+
她靠在椅背上,没多久就睡着了。你没叫醒她。那是她进这个宅子以来,头一回睡过了时辰。
|
|
185
|
+
@endscene
|
|
186
|
+
@jump xuee_end
|
|
187
|
+
|
|
188
|
+
# xuee_end
|
|
189
|
+
@hide all
|
|
190
|
+
@bg kitchen fade
|
|
191
|
+
@cg xuee_end
|
|
192
|
+
第二天一早,灶上照样冒着热气。
|
|
193
|
+
雪娥盛了两碗粥,一碗放在你面前,一碗放在自己面前。灶台边那张板凳,从此不再空着。
|
|
194
|
+
雪娥(笑):官人,明早还来么?
|
|
195
|
+
雪娥(羞):……来的话,我多放一把枣。
|
|
196
|
+
@ending xuee_good
|
|
197
|
+
@fate xuee
|
|
198
|
+
@end
|
|
199
|
+
`;
|