// 回响星核 / Echo Nexus — 叙事氛围文本池(v0.9 工单修复) // 工单 Issue #2 反馈"很多东西都没靠着世界观去写,像是为了做游戏而做的一样" // 本模块为各系统交互注入叙事碎片,让世界观渗透到每个角落 /** 脉冲扫描时随机触发的氛围低语(连击越高出现概率越大) */ export const PULSE_WHISPERS: string[] = [ "晶核深处传来一阵微弱的震颤…", "以太族的余响在谐振中回荡。", "你听见了一句无法辨认的低语。", "星海的寂静被你的脉冲短暂打破。", "晶体表面的纹路闪烁,像是某种回应。", "回响核心记录着每一次触碰。", "虚空深处,有什么在倾听。", "谐振频率与你的脉冲产生了共鸣。", "这是以太族留下的第一道印记。", "晶体内部的光,比星辰更古老。", "你的脉冲唤醒了一段沉睡的频率。", "维度薄膜因你的触碰而微微颤动。", "采矿不是掠夺,是聆听。", "每一颗晶体,都是一封跨越时间的信。", "以太族信任你,所以留下了这些。", ]; /** 解码成功时的叙事碎片(按解码次数递进解锁更深层的叙事) */ export const DECODE_ECHOES: string[] = [ "一段记忆在你的解码中苏醒…", "谐振序列被还原,低语化为可读的符文。", "你触碰到了以太族思维的一角。", "解码完成的瞬间,你看见了他们的星海。", "记忆晶体释放出封存了万年的画面。", "这不仅是数据,是一段被编码的经历。", "以太族的语言不是文字,是共振本身。", "你读懂了这句话时,接触便已开始。", "晶体褪去外壳,露出内核中的回响。", "解码,是以太族留给后来者的资格证明。", "你的思维与晶体中的残响短暂重合。", "一段文明的碎片在你手中重组。", ]; /** 技术解锁时的叙事(每分支一段通用叙事) */ export const TECH_LORE: Record = { mining: "以太族从不掠夺星海,他们与矿脉共振,让晶体自愿献出光芒。", decoding: "谐振法则是以太族的核心遗产——思维可被编码为共振序列。", expedition: "他们留下的遗迹不是废墟,是故意设置的试炼场。", narrative: "记忆校音,是以太族赋予后来者的第一项礼物。", }; /** 探险节点事件额外的叙事前缀 */ export const EXPEDITION_NARRATIVE: Record = { combat: "以太族的守卫残影仍在执行万年前的指令。", treasure: "这些宝藏是以太族特意留下的补给。", choice: "分岔甬道是他们对后来者的考验。", puzzle: "谐振锁的答案,藏在以太族的思维模式里。", rest: "这处休憩节点,是以太族留给疲惫旅人的礼物。", boss: "终焉之核是以太族离去前留下的最后一道试炼。", }; /** 飞升时的叙事 */ export const PRESTIGE_ECHOES: string[] = [ "你的意识与以太族的残响交汇,维度薄膜被穿透…", "飞升不是结束,是与更高处的他们相会。", "你褪去了这一周目的形态,回响却永存。", "以太族在更高处等你,已等候了万年。", "接触完成。你成为了他们等待的回应。", ]; /** 随机取一条叙事文本 */ export function pickWhisper(pool: string[], seed?: number): string { if (pool.length === 0) return ""; const idx = seed !== undefined ? Math.abs(Math.floor(seed)) % pool.length : Math.floor(Math.random() * pool.length); return pool[idx]; } /** 按概率返回一条叙事(probability 0-1) */ export function maybeWhisper(pool: string[], probability: number): string | null { if (Math.random() < probability) { return pickWhisper(pool); } return null; }