@zhin.js/plugin-text-adventure 1.0.0

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.
Files changed (98) hide show
  1. package/README.md +92 -0
  2. package/lib/achievements.d.ts +24 -0
  3. package/lib/achievements.d.ts.map +1 -0
  4. package/lib/achievements.js +62 -0
  5. package/lib/achievements.js.map +1 -0
  6. package/lib/adv-command.d.ts +5 -0
  7. package/lib/adv-command.d.ts.map +1 -0
  8. package/lib/adv-command.js +55 -0
  9. package/lib/adv-command.js.map +1 -0
  10. package/lib/commands.d.ts +6 -0
  11. package/lib/commands.d.ts.map +1 -0
  12. package/lib/commands.js +96 -0
  13. package/lib/commands.js.map +1 -0
  14. package/lib/game-flow.d.ts +9 -0
  15. package/lib/game-flow.d.ts.map +1 -0
  16. package/lib/game-flow.js +134 -0
  17. package/lib/game-flow.js.map +1 -0
  18. package/lib/hub-register.d.ts +5 -0
  19. package/lib/hub-register.d.ts.map +1 -0
  20. package/lib/hub-register.js +25 -0
  21. package/lib/hub-register.js.map +1 -0
  22. package/lib/index.d.ts +2 -0
  23. package/lib/index.d.ts.map +1 -0
  24. package/lib/index.js +37 -0
  25. package/lib/index.js.map +1 -0
  26. package/lib/models.d.ts +45 -0
  27. package/lib/models.d.ts.map +1 -0
  28. package/lib/models.js +37 -0
  29. package/lib/models.js.map +1 -0
  30. package/lib/profile-format.d.ts +6 -0
  31. package/lib/profile-format.d.ts.map +1 -0
  32. package/lib/profile-format.js +64 -0
  33. package/lib/profile-format.js.map +1 -0
  34. package/lib/profile-parse.d.ts +4 -0
  35. package/lib/profile-parse.d.ts.map +1 -0
  36. package/lib/profile-parse.js +21 -0
  37. package/lib/profile-parse.js.map +1 -0
  38. package/lib/profile-service.d.ts +17 -0
  39. package/lib/profile-service.d.ts.map +1 -0
  40. package/lib/profile-service.js +124 -0
  41. package/lib/profile-service.js.map +1 -0
  42. package/lib/scene-view.d.ts +4 -0
  43. package/lib/scene-view.d.ts.map +1 -0
  44. package/lib/scene-view.js +32 -0
  45. package/lib/scene-view.js.map +1 -0
  46. package/lib/session-service.d.ts +22 -0
  47. package/lib/session-service.d.ts.map +1 -0
  48. package/lib/session-service.js +100 -0
  49. package/lib/session-service.js.map +1 -0
  50. package/lib/story-catalog.d.ts +13 -0
  51. package/lib/story-catalog.d.ts.map +1 -0
  52. package/lib/story-catalog.js +104 -0
  53. package/lib/story-catalog.js.map +1 -0
  54. package/lib/story-items.d.ts +5 -0
  55. package/lib/story-items.d.ts.map +1 -0
  56. package/lib/story-items.js +23 -0
  57. package/lib/story-items.js.map +1 -0
  58. package/lib/story-path.d.ts +3 -0
  59. package/lib/story-path.d.ts.map +1 -0
  60. package/lib/story-path.js +66 -0
  61. package/lib/story-path.js.map +1 -0
  62. package/lib/story-scenes.d.ts +9 -0
  63. package/lib/story-scenes.d.ts.map +1 -0
  64. package/lib/story-scenes.js +478 -0
  65. package/lib/story-scenes.js.map +1 -0
  66. package/lib/story-transitions.d.ts +3 -0
  67. package/lib/story-transitions.d.ts.map +1 -0
  68. package/lib/story-transitions.js +193 -0
  69. package/lib/story-transitions.js.map +1 -0
  70. package/lib/story-types.d.ts +30 -0
  71. package/lib/story-types.d.ts.map +1 -0
  72. package/lib/story-types.js +3 -0
  73. package/lib/story-types.js.map +1 -0
  74. package/lib/story.d.ts +21 -0
  75. package/lib/story.d.ts.map +1 -0
  76. package/lib/story.js +91 -0
  77. package/lib/story.js.map +1 -0
  78. package/package.json +54 -0
  79. package/plugin.yml +2 -0
  80. package/src/achievements.ts +90 -0
  81. package/src/adv-command.ts +72 -0
  82. package/src/commands.ts +133 -0
  83. package/src/game-flow.ts +196 -0
  84. package/src/hub-register.ts +32 -0
  85. package/src/index.ts +47 -0
  86. package/src/models.ts +84 -0
  87. package/src/profile-format.ts +76 -0
  88. package/src/profile-parse.ts +19 -0
  89. package/src/profile-service.ts +151 -0
  90. package/src/scene-view.ts +46 -0
  91. package/src/session-service.ts +113 -0
  92. package/src/story-catalog.ts +110 -0
  93. package/src/story-items.ts +24 -0
  94. package/src/story-path.ts +75 -0
  95. package/src/story-scenes.ts +508 -0
  96. package/src/story-transitions.ts +198 -0
  97. package/src/story-types.ts +33 -0
  98. package/src/story.ts +104 -0
@@ -0,0 +1,478 @@
1
+ const T = (lines) => lines.join('\n');
2
+ /** 非终局场景 28 个 + 终局 12 个 */
3
+ export const SCENES = {
4
+ start: {
5
+ id: 'start',
6
+ text: (s) => {
7
+ const lines = [
8
+ '🌫️ **秘境入口**',
9
+ '',
10
+ '浓雾散去,你站在古老石门前。左侧是坍塌廊柱,右侧藤蔓小径,远处石塔刺破雾霭。',
11
+ ];
12
+ if (s.inventory.includes('torch'))
13
+ lines.push('', '🔥 火把照亮门缝间的幽蓝微光。');
14
+ if (s.flags.spirit_met)
15
+ lines.push('', '💧 泉灵低语:「庭院与星塔皆藏路。」');
16
+ if (s.flags.saw_map)
17
+ lines.push('', '🗺️ 你记得塔顶俯瞰的全貌:泉、庭、墓、门。');
18
+ return lines.join('\n');
19
+ },
20
+ choices: [
21
+ { id: 'push_door', label: '🚪 推门而入', style: 'primary' },
22
+ { id: 'search_rubble', label: '🔍 翻找碎石' },
23
+ { id: 'climb_tower', label: '🗼 攀登石塔' },
24
+ { id: 'vine_path', label: '🌿 拨开藤蔓', requires: (s) => s.flags.spirit_met },
25
+ { id: 'leave', label: '🏃 转身离开', style: 'danger' },
26
+ ],
27
+ },
28
+ rubble: {
29
+ id: 'rubble',
30
+ text: T([
31
+ '你在坍塌廊柱间翻找,指尖触到冰冷金属。',
32
+ '一把**火把**躺在尘土里;石缝深处还有生锈短剑。',
33
+ ]),
34
+ choices: [
35
+ { id: 'take_torch', label: '🔥 拾取火把', requires: (s) => !s.inventory.includes('torch') },
36
+ { id: 'take_blade', label: '⚔️ 拾取短剑', requires: (s) => !s.inventory.includes('rusted_blade') },
37
+ { id: 'back_entrance', label: '↩️ 返回入口' },
38
+ ],
39
+ },
40
+ watchtower: {
41
+ id: 'watchtower',
42
+ text: (s) => T([
43
+ '🗼 **瞭望石塔**',
44
+ '',
45
+ s.flags.saw_map
46
+ ? '塔顶风声呼啸,你已记下遗迹布局。'
47
+ : '螺旋阶梯通向塔顶,视野开阔处或能看清秘境结构。',
48
+ '塔身裂缝中卡着一页星图残角。',
49
+ ]),
50
+ choices: [
51
+ { id: 'survey_map', label: '🗺️ 登高测绘', requires: (s) => !s.flags.saw_map },
52
+ { id: 'take_chart_fragment', label: '📄 取星图残页', requires: (s) => !s.inventory.includes('star_chart') },
53
+ { id: 'enter_observatory', label: '🔭 进入星象台', requires: (s) => s.flags.saw_map },
54
+ { id: 'descend_tower', label: '↩️ 下塔' },
55
+ ],
56
+ },
57
+ vine_path: {
58
+ id: 'vine_path',
59
+ text: T(['🌿 **秘径**', '', '青苔石阶向下,药香与湿土气息交织。']),
60
+ choices: [
61
+ { id: 'enter_garden', label: '🏡 进入庭院' },
62
+ { id: 'back_entrance', label: '↩️ 返回入口' },
63
+ ],
64
+ },
65
+ corridor: {
66
+ id: 'corridor',
67
+ text: (s) => {
68
+ const lit = s.inventory.includes('torch');
69
+ const lines = [
70
+ lit ? '🕯️ 火把照亮狭长走廊。' : '🌑 走廊漆黑,你贴墙摸索。',
71
+ '左侧蓝光(泉)、右侧石阶(墓)、前方积水(淹)、壁画需火光细读。',
72
+ ];
73
+ if (s.flags.knows_sequence)
74
+ lines.push('', '📜 壁画铭文:光 → 影 → 门。');
75
+ return lines.join('\n');
76
+ },
77
+ choices: [
78
+ { id: 'go_blue', label: '💧 走向蓝光' },
79
+ { id: 'go_stairs', label: '⬇️ 走下石阶' },
80
+ { id: 'go_flooded', label: '🌊 踏入积水厅' },
81
+ { id: 'study_mural', label: '🖼️ 研读壁画', requires: (s) => s.inventory.includes('torch') },
82
+ { id: 'enter_bell_tower', label: '🔔 进入钟楼', requires: (s) => s.flags.spirit_met },
83
+ { id: 'go_back', label: '↩️ 退回入口' },
84
+ ],
85
+ },
86
+ mural_room: {
87
+ id: 'mural_room',
88
+ text: T([
89
+ '🖼️ **铭文壁画**',
90
+ '',
91
+ '三联画:光、影、门。下角刻序:**光 → 影 → 门**。',
92
+ '壁画后有一条狭窄画廊,低语声如风穿隙。',
93
+ ]),
94
+ choices: [
95
+ { id: 'memorize', label: '📝 记下顺序' },
96
+ { id: 'enter_whisper', label: '👂 进入低语画廊', requires: (s) => s.flags.knows_sequence },
97
+ { id: 'back_corridor', label: '↩️ 返回走廊' },
98
+ ],
99
+ },
100
+ whisper_gallery: {
101
+ id: 'whisper_gallery',
102
+ text: T([
103
+ '👂 **低语画廊**',
104
+ '',
105
+ '亿万精灵名讳在墙间回响。你听见:「星坠之日,门为封印,非为宝藏。」',
106
+ '「守忆者需集月华、星图、泉心三证。」',
107
+ ]),
108
+ choices: [
109
+ { id: 'listen_deep', label: '🧘 静心聆听', requires: (s) => !s.flags.whisper_lore },
110
+ { id: 'back_mural', label: '↩️ 返回壁画室' },
111
+ ],
112
+ },
113
+ spring: {
114
+ id: 'spring',
115
+ text: (s) => T([
116
+ '💧 **精灵泉**',
117
+ '',
118
+ s.flags.spirit_met ? '泉灵光影朝你颔首。' : '水光凝聚为精灵形貌,注视着你。',
119
+ !s.flags.healed ? '泉水可治愈一次。' : '泉水已无先前效力。',
120
+ ]),
121
+ choices: [
122
+ { id: 'drink', label: '🍶 饮用泉水', requires: (s) => !s.flags.healed },
123
+ { id: 'take_gem', label: '💎 取走宝石', requires: (s) => !s.inventory.includes('gem') },
124
+ { id: 'talk_spirit', label: '💬 与泉灵交谈', requires: (s) => !s.flags.spirit_met },
125
+ { id: 'offer_gem', label: '🙏 献宝石换护符', requires: (s) => s.inventory.includes('gem') && !s.inventory.includes('amulet') },
126
+ { id: 'leave_spring', label: '↩️ 离开' },
127
+ ],
128
+ },
129
+ flooded_hall: {
130
+ id: 'flooded_hall',
131
+ text: (s) => T([
132
+ '🌊 **积水前厅**',
133
+ '',
134
+ '及膝冷水没过石板,远处有坍塌市集拱门。',
135
+ s.inventory.includes('elf_feather') ? '银羽护体,寒气难侵。' : '寒意刺骨,久留恐失温。',
136
+ ]),
137
+ choices: [
138
+ { id: 'wade_market', label: '🏚️ 前往废墟市集' },
139
+ { id: 'use_feather_wade', label: '🪶 银羽护体涉水', requires: (s) => s.inventory.includes('elf_feather') },
140
+ { id: 'drink_elixir_warm', label: '🍶 饮灵药暖身', requires: (s) => s.inventory.includes('elixir') },
141
+ { id: 'back_corridor', label: '↩️ 返回走廊' },
142
+ ],
143
+ },
144
+ market_ruins: {
145
+ id: 'market_ruins',
146
+ text: T([
147
+ '🏚️ **废墟市集**',
148
+ '',
149
+ '幽灵摊主陈列面具与古币。「一物换一物,或银币亦可。」',
150
+ ]),
151
+ choices: [
152
+ { id: 'buy_mask_coin', label: '🎭 银币换面具', requires: (s) => s.inventory.includes('silver_coin') && !s.inventory.includes('masquerade_mask') },
153
+ { id: 'trade_gem_coin', label: '💎 宝石换银币', requires: (s) => s.inventory.includes('gem') },
154
+ { id: 'go_bridge', label: '🌉 前往冥河石桥' },
155
+ { id: 'leave_market', label: '↩️ 离开市集' },
156
+ ],
157
+ },
158
+ garden: {
159
+ id: 'garden',
160
+ text: (s) => T([
161
+ '🏡 **遗忘庭院**',
162
+ '',
163
+ '银叶古树、紧锁铁门、侧翼温室玻璃碎裂。',
164
+ s.inventory.includes('herb') ? '花坛已采过药草。' : '花坛闪烁荧光草药。',
165
+ ]),
166
+ choices: [
167
+ { id: 'pick_herb', label: '🌿 采集草药', requires: (s) => !s.inventory.includes('herb') },
168
+ { id: 'rest_tree', label: '🌳 树下休息', requires: (s) => !s.flags.rested },
169
+ { id: 'enter_greenhouse', label: '🪴 进入温室' },
170
+ { id: 'open_iron_door', label: '🔑 打开铁门', requires: (s) => s.inventory.includes('key') },
171
+ { id: 'stay_forever', label: '🏠 定居庭院', requires: (s) => s.flags.rested && s.flags.spirit_met },
172
+ { id: 'back_corridor', label: '↩️ 返回走廊' },
173
+ ],
174
+ },
175
+ greenhouse: {
176
+ id: 'greenhouse',
177
+ text: T([
178
+ '🪴 **破碎温室**',
179
+ '',
180
+ '枯藤缠绕蒸馏器,可萃取草药为灵药。',
181
+ ]),
182
+ choices: [
183
+ { id: 'brew_elixir', label: '⚗️ 萃取灵药', requires: (s) => s.inventory.includes('herb') && !s.inventory.includes('elixir') },
184
+ { id: 'back_garden', label: '↩️ 返回庭院' },
185
+ ],
186
+ },
187
+ library: {
188
+ id: 'library',
189
+ text: (s) => T([
190
+ '📚 **尘封书库**',
191
+ '',
192
+ '残卷、墙钥、暗门后传来锻炉热气。',
193
+ s.flags.read_archive ? '你已读过秘档。' : '古籍区尚有未读档案。',
194
+ ]),
195
+ choices: [
196
+ { id: 'take_scroll', label: '📜 取卷轴', requires: (s) => !s.inventory.includes('scroll') },
197
+ { id: 'take_key', label: '🔑 取钥匙', requires: (s) => !s.inventory.includes('key') },
198
+ { id: 'read_archive', label: '📖 研读秘档', requires: (s) => !s.flags.read_archive },
199
+ { id: 'enter_forge', label: '🔥 进入锻炉间', requires: (s) => s.inventory.includes('scroll') },
200
+ { id: 'back_garden', label: '↩️ 返回庭院' },
201
+ ],
202
+ },
203
+ ember_forge: {
204
+ id: 'ember_forge',
205
+ text: (s) => T([
206
+ '🔥 **余烬锻炉**',
207
+ '',
208
+ '精灵余火仍燃。可淬炼短剑,或升华护符。',
209
+ s.flags.forged_blade ? '短剑已淬炼。' : '短剑可淬炼。',
210
+ ]),
211
+ choices: [
212
+ { id: 'forge_blade', label: '⚔️ 淬炼短剑', requires: (s) => s.inventory.includes('rusted_blade') && !s.flags.forged_blade },
213
+ { id: 'upgrade_amulet', label: '✨ 升华护符', requires: (s) => s.inventory.includes('amulet') && s.inventory.includes('moon_shard') && !s.flags.amulet_upgraded },
214
+ { id: 'back_library', label: '↩️ 返回书库' },
215
+ ],
216
+ },
217
+ bell_tower: {
218
+ id: 'bell_tower',
219
+ text: T([
220
+ '🔔 **回音钟楼**',
221
+ '',
222
+ '悬空铜钟布满符纹。钟舌缺失,旁有铸台。',
223
+ ]),
224
+ choices: [
225
+ { id: 'ring_bell', label: '🔔 敲响铜钟', requires: (s) => !s.inventory.includes('spirit_bell') },
226
+ { id: 'back_corridor', label: '↩️ 返回走廊' },
227
+ ],
228
+ },
229
+ depths: {
230
+ id: 'depths',
231
+ text: T([
232
+ '⬇️ **地下墓穴**',
233
+ '',
234
+ '石棺半开,**守墓幽影**凝形扑来!',
235
+ ]),
236
+ choices: [
237
+ { id: 'fight', label: '⚔️ 正面迎战', style: 'danger' },
238
+ { id: 'fight_blade', label: '🗡️ 挥剑迎击', requires: (s) => s.flags.forged_blade },
239
+ { id: 'use_torch', label: '🔥 火把驱散', requires: (s) => s.inventory.includes('torch') },
240
+ { id: 'use_herb', label: '🌿 草药麻痹', requires: (s) => s.inventory.includes('herb') },
241
+ { id: 'flee', label: '🏃 逃跑' },
242
+ ],
243
+ },
244
+ crypt_entry: {
245
+ id: 'crypt_entry',
246
+ text: T([
247
+ '⚰️ **墓道岔口**',
248
+ '',
249
+ '左:封印密室|右:骸骨甬道|下:蛛巢暗道',
250
+ ]),
251
+ choices: [
252
+ { id: 'go_vault', label: '🔐 封印密室' },
253
+ { id: 'go_catacombs', label: '💀 骸骨甬道' },
254
+ { id: 'go_spider', label: '🕷️ 蛛巢暗道' },
255
+ { id: 'go_sealed', label: '🚪 回音巨门', requires: (s) => s.inventory.includes('spirit_bell') && s.inventory.includes('compass') },
256
+ { id: 'back_corridor', label: '↩️ 返回走廊' },
257
+ ],
258
+ },
259
+ spider_nest: {
260
+ id: 'spider_nest',
261
+ text: T([
262
+ '🕷️ **蛛巢暗道**',
263
+ '',
264
+ '巨网横亘,蛛眼如灯笼。后方似通暗影迷宫。',
265
+ ]),
266
+ choices: [
267
+ { id: 'cut_web_blade', label: '🗡️ 斩网前行', requires: (s) => s.flags.forged_blade },
268
+ { id: 'burn_web', label: '🔥 火烧蛛网', requires: (s) => s.inventory.includes('torch') },
269
+ { id: 'flee_spider', label: '🏃 撤退', style: 'danger' },
270
+ ],
271
+ },
272
+ shadow_maze: {
273
+ id: 'shadow_maze',
274
+ text: T([
275
+ '🌑 **暗影迷宫**',
276
+ '',
277
+ '墙壁流动如墨,路径每秒变幻。',
278
+ ]),
279
+ choices: [
280
+ { id: 'navigate_compass', label: '🧭 罗盘定向', requires: (s) => s.inventory.includes('compass') },
281
+ { id: 'wander_maze', label: '🚶 随意乱走', style: 'danger' },
282
+ { id: 'back_spider', label: '↩️ 返回蛛巢' },
283
+ ],
284
+ },
285
+ catacombs: {
286
+ id: 'catacombs',
287
+ text: T([
288
+ '💀 **骸骨甬道**',
289
+ '',
290
+ '压力机关铭刻:诵卷轴真言。侧室铁链锁着幽魂。',
291
+ '骸骨手中铜钥闪光。',
292
+ ]),
293
+ choices: [
294
+ { id: 'read_scroll', label: '📜 展开卷轴', requires: (s) => s.inventory.includes('scroll') },
295
+ { id: 'dash_trap', label: '🏃 硬闯机关', style: 'danger' },
296
+ { id: 'enter_prison', label: '⛓️ 进入囚室' },
297
+ { id: 'take_key_skeleton', label: '🔑 取铜钥', requires: (s) => !s.inventory.includes('key') },
298
+ { id: 'back_crypt', label: '↩️ 返回岔口' },
299
+ ],
300
+ },
301
+ prison_cell: {
302
+ id: 'prison_cell',
303
+ text: T([
304
+ '⛓️ **幽囚石室**',
305
+ '',
306
+ '幽魂哀求:「银币可买通行,羽毛可渡冥河。」',
307
+ '墙角埋着古银币。',
308
+ ]),
309
+ choices: [
310
+ { id: 'take_coin', label: '🪙 取古银币', requires: (s) => !s.inventory.includes('silver_coin') },
311
+ { id: 'free_ghost', label: '🕊️ 释放幽魂', requires: (s) => s.inventory.includes('elf_feather') },
312
+ { id: 'back_catacombs', label: '↩️ 返回甬道' },
313
+ ],
314
+ },
315
+ ossuary: {
316
+ id: 'ossuary',
317
+ text: T([
318
+ '🪦 **骨灰龛室**',
319
+ '',
320
+ '悬浮护符。幽魂问:「精灵遗迹为何陨落?」',
321
+ ]),
322
+ choices: [
323
+ { id: 'answer_greed', label: '「贪婪与战争」' },
324
+ { id: 'answer_flood', label: '「大洪水」' },
325
+ { id: 'answer_star', label: '「星辰坠落」', style: 'primary' },
326
+ { id: 'back_catacombs', label: '↩️ 返回甬道' },
327
+ ],
328
+ },
329
+ ghost_bridge: {
330
+ id: 'ghost_bridge',
331
+ text: T([
332
+ '🌉 **冥河石桥**',
333
+ '',
334
+ '无栏石桥横跨黑水。守桥者伸手要通行费。',
335
+ ]),
336
+ choices: [
337
+ { id: 'pay_coin', label: '🪙 付银币过桥', requires: (s) => s.inventory.includes('silver_coin') },
338
+ { id: 'cross_feather', label: '🪶 银羽渡桥', requires: (s) => s.inventory.includes('elf_feather') },
339
+ { id: 'back_market', label: '↩️ 返回市集' },
340
+ ],
341
+ },
342
+ crystal_cave: {
343
+ id: 'crystal_cave',
344
+ text: T([
345
+ '💎 **晶洞**',
346
+ '',
347
+ '月华凝于石笋。洞顶飘落银羽。',
348
+ ]),
349
+ choices: [
350
+ { id: 'take_moon_shard', label: '🌙 取月华碎片', requires: (s) => !s.inventory.includes('moon_shard') },
351
+ { id: 'take_feather', label: '🪶 拾银羽', requires: (s) => !s.inventory.includes('elf_feather') },
352
+ { id: 'enter_moon_pool', label: '💧 前往月池' },
353
+ { id: 'back_bridge', label: '↩️ 返回石桥' },
354
+ ],
355
+ },
356
+ moon_pool: {
357
+ id: 'moon_pool',
358
+ text: (s) => T([
359
+ '🌙 **月影池**',
360
+ '',
361
+ '池水映月。星图残页可与之共鸣。',
362
+ s.flags.moon_blessed ? '月华已赐福。' : '池底似有水下沉殿。',
363
+ ]),
364
+ choices: [
365
+ { id: 'align_chart', label: '📄 星图共鸣', requires: (s) => s.inventory.includes('star_chart') && !s.flags.moon_blessed },
366
+ { id: 'dive_shrine', label: '🤿 潜入沉殿', requires: (s) => s.flags.moon_blessed },
367
+ { id: 'back_crystal', label: '↩️ 返回晶洞' },
368
+ ],
369
+ },
370
+ sunken_shrine: {
371
+ id: 'sunken_shrine',
372
+ text: T([
373
+ '🛕 **水下沉殿**',
374
+ '',
375
+ '三证石台:月华、星图、泉心印记。缺一则门不开。',
376
+ ]),
377
+ choices: [
378
+ { id: 'ritual_star_keeper', label: '✨ 完成星守仪式', requires: (s) => s.inventory.includes('moon_shard') && s.inventory.includes('star_chart') && s.flags.spirit_met },
379
+ { id: 'back_moon_pool', label: '↩️ 浮上水面' },
380
+ ],
381
+ },
382
+ observatory: {
383
+ id: 'observatory',
384
+ text: T([
385
+ '🔭 **星象台**',
386
+ '',
387
+ '铜制浑天仪缺损。可校准罗盘。',
388
+ ]),
389
+ choices: [
390
+ { id: 'craft_compass', label: '🧭 校准罗盘', requires: (s) => !s.inventory.includes('compass') },
391
+ { id: 'back_tower', label: '↩️ 下塔' },
392
+ ],
393
+ },
394
+ sealed_gates: {
395
+ id: 'sealed_gates',
396
+ text: T([
397
+ '🚪 **回音巨门**',
398
+ '',
399
+ '铃、罗盘、钥三缺一时铭文闪烁。门后是封印内庭捷径。',
400
+ ]),
401
+ choices: [
402
+ { id: 'open_gates', label: '🔓 开启巨门', requires: (s) => s.inventory.includes('spirit_bell') && s.inventory.includes('compass') && s.inventory.includes('key') },
403
+ { id: 'back_crypt', label: '↩️ 返回岔口' },
404
+ ],
405
+ },
406
+ vault: {
407
+ id: 'vault',
408
+ text: (s) => T([
409
+ '🔐 **封印密室**',
410
+ '',
411
+ '三雕像:光、影、门。',
412
+ s.flags.knows_sequence ? '顺序:光 → 影 → 门。' : '顺序未知。',
413
+ ]),
414
+ choices: [
415
+ { id: 'seq_light_shadow_door', label: '光→影→门', style: 'primary' },
416
+ { id: 'seq_door_light_shadow', label: '门→光→影' },
417
+ { id: 'seq_shadow_door_light', label: '影→门→光' },
418
+ { id: 'back_crypt', label: '↩️ 返回岔口' },
419
+ ],
420
+ },
421
+ vault_open: {
422
+ id: 'vault_open',
423
+ text: (s) => T([
424
+ '✨ **封印已解**',
425
+ '',
426
+ s.flags.amulet_upgraded ? '升华护符引路,王座厅近在咫尺。' : '螺旋阶梯通向王座厅。',
427
+ ]),
428
+ choices: [
429
+ { id: 'descend_throne', label: '⬇️ 王座厅' },
430
+ { id: 'take_treasure_now', label: '💰 取宝离开' },
431
+ { id: 'back_crypt', label: '↩️ 返回岔口' },
432
+ ],
433
+ },
434
+ throne_room: {
435
+ id: 'throne_room',
436
+ text: (s) => {
437
+ const ready = s.flags.whisper_lore && s.flags.amulet_upgraded && s.flags.spirit_met;
438
+ return T([
439
+ '👑 **精灵王座厅**',
440
+ '',
441
+ ready ? '三证齐聚,王座虚影恭迎守忆者。' : '王座冷光闪烁,贸然落座恐遭反噬。',
442
+ ]);
443
+ },
444
+ choices: [
445
+ {
446
+ id: 'ascend',
447
+ label: '✨ 星辉归位',
448
+ style: 'primary',
449
+ requires: (s) => s.flags.whisper_lore && s.flags.amulet_upgraded && s.flags.spirit_met && s.inventory.includes('scroll'),
450
+ },
451
+ { id: 'ascend_mask', label: '🎭 面具加冕', requires: (s) => s.inventory.includes('masquerade_mask') },
452
+ { id: 'claim_crown', label: '👑 坐上王座', style: 'danger' },
453
+ { id: 'retreat_throne', label: '🏃 取宝离开' },
454
+ ],
455
+ },
456
+ // —— 终局 ——
457
+ treasure: { id: 'treasure', terminal: true, text: T(['🏆 **遗迹宝藏**', '', '琥珀星光入袋,你成为传说。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
458
+ ascension: { id: 'ascension', terminal: true, text: T(['🌟 **星辉归位**', '', '你成为守忆者,历史因你而不朽。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
459
+ wisdom: { id: 'wisdom', terminal: true, text: T(['📜 **智者归途**', '', '你携记忆离去,无宝亦足。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
460
+ curse: { id: 'curse', terminal: true, text: T(['☠️ **贪婪代价**', '', '王座吞噬了你。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
461
+ escape: { id: 'escape', terminal: true, text: T(['🌅 **生还**', '', '遗迹坍塌,你活着出来。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
462
+ defeat: { id: 'defeat', terminal: true, text: T(['💀 **陨落**', '', '秘境再添无名骸骨。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
463
+ coward: { id: 'coward', terminal: true, text: T(['🏠 **怯懦归途**', '', '你从未入门。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
464
+ hermit: { id: 'hermit', terminal: true, text: T(['🌳 **庭院隐者**', '', '你在古树下定居,与遗迹共生。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
465
+ redemption: { id: 'redemption', terminal: true, text: T(['🕊️ **幽魂解脱**', '', '你渡魂过桥,获冥府祝福。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
466
+ drowned: { id: 'drowned', terminal: true, text: T(['🌊 **寒水沉眠**', '', '积水厅吞没意识。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
467
+ spider: { id: 'spider', terminal: true, text: T(['🕷️ **茧中亡魂**', '', '巨蛛将你制成茧。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
468
+ labyrinth: { id: 'labyrinth', terminal: true, text: T(['🌑 **迷宫迷失**', '', '暗影吞没方向感。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
469
+ star_keeper: { id: 'star_keeper', terminal: true, text: T(['🌙 **星守誓约**', '', '你镇守月池,成为精灵最后的灯塔。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
470
+ mask_king: { id: 'mask_king', terminal: true, text: T(['🎭 **面具之王**', '', '面具与王座融合,你统治空城。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
471
+ merchant: { id: 'merchant', terminal: true, text: T(['💰 **行商结局**', '', '你满载银币离开,遗迹不过集市。']), choices: [{ id: 'restart', label: '🔄 再玩一次', style: 'primary' }] },
472
+ };
473
+ export function countScenes() {
474
+ const all = Object.values(SCENES);
475
+ const terminals = all.filter((s) => s.terminal).length;
476
+ return { total: all.length, playable: all.length - terminals, terminals };
477
+ }
478
+ //# sourceMappingURL=story-scenes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"story-scenes.js","sourceRoot":"","sources":["../src/story-scenes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ChoiceResult, GameState } from './story-types.js';
2
+ export declare function resolveTransition(state: GameState, choiceId: string): ChoiceResult | null;
3
+ //# sourceMappingURL=story-transitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"story-transitions.d.ts","sourceRoot":"","sources":["../src/story-transitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEhE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAmMzF"}