JavaScript is required. Please enable it to continue.
Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
Loading…
/* 检查并加载自动存档 */ <<if Save.autosave.ok()>> <<run Save.autosave.load()>> <</if>> /* 设置音频配置 */ <<masteraudio volume 1.0>> <<masteraudio unmute>> /* 设置自动保存 */ <<set Config.saves.autosave to true>> /* 初始化BGM系统 */ <<InitBGMSystem>> /* 初始化速写本/图鉴解锁状态 */ <<set $codexUnlocked = false>> /* 初始化图鉴静态定义 */ <<set setup.codexDefinition = { "empty_town": { id: "empty_town", title: "空镇街道", previewDesc: "一个空荡荡的小镇,街道空旷,商店的橱窗却依然崭新...", fullDesc: "一个空荡荡的小镇,街道空旷,商店的橱窗依然崭新。整个区域弥漫着一种死寂和诡异的氛围,似乎所有居民都在短时间内消失了。", imagePath: "assets/images/scenes/scene_town_view.webp", dominiqueComment: "空镇……是的,这就是这里的现状。你的画传递出一种……'虚无'感。" }, "stone_bridge": { id: "stone_bridge", title: "石拱桥", previewDesc: "一座古老的石制拱桥,结构优美,横跨在干涸的河床上...", fullDesc: "一座古老的石制拱桥,结构优美,横跨在干涸的河床上。桥上散落着一些正在使用的物品,暗示着这里曾有人活动。", imagePath: "assets/images/scenes/scene_stone_bridge.webp", dominiqueComment: "这座桥……结构很特别。你在这里遭遇了袭击?" }, "empty_warrior": { id: "empty_warrior", title: "空壳武士", previewDesc: "一种在废弃区域游荡的生物,外表类似穿着破旧铠甲的人形...", fullDesc: "一种在废弃区域游荡的生物,外表类似穿着破旧铠甲的人形,但没有生命迹象,行动僵硬且具有攻击性。似乎被某种未知力量操控。", imagePath: "assets/images/cg/cg_ch1_plot_05.webp", dominiqueComment: "……这就是你遇到的'空壳怪物',这种怪物,还是叫做'空壳武士'吧?细节捕捉很准确。这种视觉记录方式……效率很高。" }, "dominique": { id: "dominique", title: "多米尼克", previewDesc: "一位拥有银白色短发和高度精密机械义肢的神秘少女...", fullDesc: "一位拥有银白色短发和高度精密机械义肢的神秘少女。她冷静、理性,战斗能力极强,似乎在执行某种“清除”任务。对自身和周围环境的分析总是基于数据和逻辑。", imagePath: "assets/images/characters/character_dominique.webp", dominiqueComment: "……形态描绘符合客观特征。你观察得很仔细。" }, "broken_window": { id: "broken_window", title: "破碎窗", previewDesc: "木屋的窗户被子弹击碎,玻璃向内外飞溅...", fullDesc: "木屋的窗户被子弹击碎,玻璃向内外飞溅,留下一个不规则的破洞,周围布满了蛛网般的裂纹。阳光透过破洞照射进来,形成奇特的光影。", imagePath: "assets/images/scenes/scene_cabin_interior_window_broken.webp", dominiqueComment: "玻璃的破碎形态……你捕捉到了弹道造成的应力分布。这种物理现象的视觉记录很精确。" }, "interface_device": { id: "interface_device", title: "“接口”装置", previewDesc: "一个从多米尼克机械臂中伸出的黑色短刃状装置...", fullDesc_accepted: "一个从多米尼克机械臂中伸出的黑色短刃状装置,能够刺入人体并产生某种治愈或连接效果。其具体原理和功能未知,但似乎与能量传输和身体修复有关。", fullDesc_refused: "一个从多米尼克机械臂中伸出的黑色短刃状装置,被她用作武器或某种工具。其具体构造和运作方式不明,但看起来十分危险。", imagePath: "assets/images/items/item_life_knife.webp", dominiqueComment_accepted: "这个装置……确实很特别。不知道你为何要记录一个可能会杀死你的武器。但它的本质,恐怕不是简单的线条能够表达的。", dominiqueComment_refused: "作为潜在威胁的记录吗?不过你不需要担心,<b>正常情况下<\/b>我不会对非目标使用这个装置。" } }>> /* 初始化或加载全局图鉴状态 */ <<set $codexGlobalStatus = recall('codexGlobalStatus', {})>> <<if Object.keys($codexGlobalStatus).length === 0>> /* 如果全局图鉴状态为空 (例如首次游戏),则根据静态定义初始化 */ <<set $codexGlobalStatus = {}>> <<for _id, _entryDefinition range setup.codexDefinition>> <<set $codexGlobalStatus[_id] = { discovered: false, drawn: false }>> /* 根据原始设定处理特定条目的初始发现状态 */ <</for>> <<run memorize('codexGlobalStatus', $codexGlobalStatus)>> <<else>> /* 检查是否有新的图鉴条目添加到 setup.codexDefinition 中,但尚未存在于 $codexGlobalStatus */ <<set _updatedGlobalStatus = false>> <<for _id, _entryDefinition range setup.codexDefinition>> <<if not $codexGlobalStatus.hasOwnProperty(_id)>> <<set $codexGlobalStatus[_id] = { discovered: false, drawn: false }>> <<set _updatedGlobalStatus = true>> <</if>> <</for>> <<if _updatedGlobalStatus>> <<run memorize('codexGlobalStatus', $codexGlobalStatus)>> <</if>> <</if>> /* 通过合并静态定义和从 recall() 获取的全局状态来构建运行时 $codex */ <<set $codex = {}>> <<for _id, _entryDefinition range setup.codexDefinition>> <<set $codex[_id] = clone(_entryDefinition)>> <<if $codexGlobalStatus[_id] !== undefined>> <<set $codex[_id].discovered = $codexGlobalStatus[_id].discovered>> <<set $codex[_id].drawn = $codexGlobalStatus[_id].drawn>> <<else>> /* 这个分支理论上不应该被执行,因为上面的逻辑会确保所有条目都在 $codexGlobalStatus 中 */ <<set $codex[_id].discovered = false>> <<set $codex[_id].drawn = false>> <</if>> <</for>> /* 初始化已绘制图鉴数量,根据 $codexGlobalStatus 计算 */ <<set $drawingsMade = 0>> <<for _id, _status range $codexGlobalStatus>> <<if _status.drawn>> <<set $drawingsMade++>> <</if>> <</for>>
<<silently>> <<set $checkedWindow to false>> <<set $checkedRoom to false>> <<set $shouted to false>> <<set $checkedShop to false>> <<set $triedPhone to false>> <<set $checkedArtSupplies to false>> <<set $checkedRegistry to false>> <<set $tookMoney to false>> <<set $defeatMethod to "">> <</silently>>\ 在晦暗不明的深渊尽头,两道身影对峙而立。 一位是身着巫女服饰的蓝发女子,她的面容笼罩在一片扭曲的模糊之中,你本能地感到,任何试图看清她容貌的努力,都将引来灵魂被灼烧般的剧痛。 另一位白发少女背对着你,看起来体力不支。 有形的能量如狂澜般在她们之间激荡、碰撞,撕扯着脆弱的空间。 突然,蓝发巫女伸出手,那只手精准而快速地——洞穿了白发少女的胸口... 她瘫坐在地。\ [img[assets/images/cg/cg_ch1_plot_01.webp]]\ [[惊醒(点击此处开始剧情)|第一章章首]]
<div class="title-text">第一章 记忆迷宫</div>\ 本章节你可能会遇到: 诡镇谜团-萧瑟氛围 绝境危机-强敌战斗 命运相遇-沟通挑战 [[继续|惊醒]]
<<BGMCheck "bgm_startup">>\ 你猛地惊醒,心脏狂跳,冷汗浸湿了额头。 [img[assets/images/cg/cg_ch1_plot_02.webp]] 你坐在旅馆柔软的床上,房间里只有你急促的呼吸声。 窗外的天色似乎刚蒙蒙亮。 “呼...” 你长出一口气,下意识地摸了摸自己的胸口,那里似乎还残留着被某种尖锐之物刺穿的幻痛——刚才的噩梦太过真实了,让你心有余悸。 你试图平复心跳,但梦境的具体内容却像隔着一层毛玻璃,怎么也想不真切。 [[发生什么了?|回忆自己]]
[img[assets/images/cg/cg_ch1_plot_02.webp]] 我是谁来着? 对,我叫...李镇士。 听起来像“振世”,但我其实没什么大志向,就是个快要毕业的普通大学生。 我喜欢画画,或许还能用艺术“振世”一下?哈哈,毕业前,我打算四处旅行,寻找创作灵感,顺便丰富一下我的速写本。 来这里的主要目的,还是因为一些不太容易得到的,道听途说的消息——这个偏远的小镇,据说是一个“异能者保留地”! 异能者啊,听着就像漫画里的中二设定,谁知道是不是真的存在呢? 我就是按捺不住那该死的好奇心,想来亲眼看看。 昨晚刚住进这家旅馆... 做了什么梦来着? 甩甩头,梦里的事情太诡异了,白毛……蓝毛……被刺穿什么的…… 还是别想那个模糊的梦了,先看看现在是什么情况吧。 “希望这次旅行别真的搞出什么‘灵异事件’,” 你暗自祈祷,“我的小心脏可受不了折腾,还有不少画没画完呢!” <<if not $checkedWindow>>[[看看窗外]]<<else>>你已经看过窗外了。<<endif>> <<if not $checkedRoom>>[[检查房间]]<<else>>你已经检查过房间了。<<endif>> <<if not $checkedArtSupplies>>[[检查我的画具|检查画具]]<<else>>你已经检查过画具了。<<endif>>
<<silently>><<set $checkedArtSupplies to true>><</silently>>\ 你摸了摸口袋,还好,吃饭的家伙都在。 你拿出速写本和那支陪伴你多年的铅笔,铅笔尖还完好无损。 翻开速写本,里面有几张之前在其他地方画的风景,笔触还算满意。 接着,你翻到了几张关于这个小镇的速写,都是昨天傍晚抵达时随手画的——空旷的街道,寂静的房屋,画面里一个人也没有,只有萧瑟的景致。 你皱了皱眉,又往后翻了几张。 这几张的构图……明显是有人物写生的框架,比如一张像是对着旅店前台画的,背景细节都在,但本该有人的地方却空空如也。 还有一张,构图中心是一个空着的秋千。 你记得当时是想画那个看起来很和气的前台大叔,还有公园里荡秋千的小女孩来着……怎么现在是空的呢? “怪了,我什么时候有这种‘虚无主义’的留白构图癖好了?还是说我昨天太困,画着画着睡着了?” 你嘀咕了一句,把速写本和铅笔小心地收回口袋,它们现在是你为数不多的慰藉了。 <<if not $checkedWindow>>[[看看窗外]]<<else>>你已经看过窗外了。<<endif>> <<if not $checkedRoom>>[[检查房间]]<<else>>你已经检查过房间了。<<endif>> <<if $checkedWindow and $checkedRoom>> [[离开房间看看|旅馆走廊]] <</if>>
[img[assets/images/scenes/scene_town_view.webp]] <<silently>><<set $checkedWindow to true>><</silently>>\ 你走到窗边,小心翼翼地拉开厚重的窗帘一角。 外面是一条宁静的小镇街道,铺着凹凸不平的石板路,两旁是带着点历史感的古朴建筑。 一切看起来都很正常,除了...太安静了。 街道上空无一人,看不到任何车辆或行人,甚至听不到一丝鸟叫虫鸣。 就像一幅被按下了静音键的默片,或者干脆就是一张巨大的、毫无生气的风景照片。 [[仔细聆听窗外的动静|聆听窗外]] <<if not $checkedRoom>>[[检查房间]]<<else>>你已经检查过房间了。<<endif>> <<if not $checkedArtSupplies>>[[检查我的画具|检查画具]]<<else>>你已经检查过画具了。<<endif>> [[离开房间看看|旅馆走廊]]
你屏住呼吸,侧耳紧贴着冰冷的玻璃,试图捕捉窗外的任何动静。 结果……除了自己有些过速的心跳声,如同擂鼓般在耳膜内震动外,什么也听不到。 连一丝风拂过树叶的沙沙声都没有,仿佛整个世界都被抽离了声音,或者被一个无形的罩子与外界隔绝了。 这种极致的、纯粹的安静,反而比任何噪音都更让人心里发毛。 <<if not $checkedRoom>>[[检查房间]]<<else>>你已经检查过房间了。<<endif>> <<if not $checkedArtSupplies>>[[检查我的画具|检查画具]]<<else>>你已经检查过画具了。<<endif>> [[离开房间看看|旅馆走廊]]
[img[assets/images/scenes/scene_inn_bedroom.webp]] <<silently>><<set $checkedRoom to true>><</silently>>\ 你环顾四周。 这是一个标准的旅馆单人间,陈设简单但还算整洁。 床铺有些凌乱,是你刚才从噩梦中挣扎醒来时留下的痕迹。 你习惯性地拿起放在床头柜上的手机看了看——屏幕上是那冷冰冰的“无服务”三个字。 <<silently>><<set $triedPhone to true>><</silently>>\ “啧,信号一格都没有,真是最令人难过的事了。” 你小声吐槽了一句,随手把手机揣回兜里。 房间角落里的老式显像管电视机居然开着,屏幕上正播放着一部风格非常古早的黑白动画片。 画面简单粗糙,像是某个热爱画画的小孩子用蜡笔在纸上一帧帧涂抹出来的,讲述着一个穿着蓬蓬裙、扎着双马尾的小女孩在奇异的森林里和各种拟人化的小动物天真烂漫地玩耍、嬉戏、野餐的故事。 动画的配乐倒是欢快活泼,但翻来覆去总是那么一段旋律,听久了有种莫名的洗脑感,甚至让人有点烦躁。 你拿起遥控器试着换台,或者至少把声音关掉,但遥控器像是失灵了一样,按哪个键都没反应。 你又走到电视机前,想直接按机身上的按钮,结果发现那些按钮也只是摆设,根本按不下去。 电视无法换台,也无法关闭,只有这一个频道在不知疲倦地循环播放着这部诡异的“童年经典”。 “这旅馆的品味……还真是复古到令人发指啊。” 你心想,这动画片透着一股说不出的怪诞感,和眼下这死寂的环境格格不入,看得人心里毛毛的。 “不会是什么邪典动画吧?” 其余的便是如同坟墓般的寂静。 <<if not $checkedWindow>>[[看看窗外]]<<else>>你已经看过窗外了。<<endif>> <<if not $checkedArtSupplies>>[[检查我的画具|检查画具]]<<else>>你已经检查过画具了。<<endif>> [[离开房间看看|旅馆走廊]]
你深吸一口气,轻轻拧开房门把手,探出头去。 走廊里铺着厚厚的地毯,踩上去一点声音都不会发出,安静得诡异。 墙上挂着几幅印刷的风景画,廉价但努力地营造着一种温馨的氛围,此刻却显得格外苍白。 然而,和你预想的一样,走廊里空无一人,寂静得可怕。 前台的方向也是一片死寂,没有任何光亮和声响。 旅馆似乎是...空的? 你看不到任何工作人员,也听不到其他住客的动静。 “昨天接待我的那个前台呢?” 你努力回忆,好像是个挺和气的大叔... 但他的脸,他的穿着,甚至他的声音高低... 奇怪,这些细节竟然一点都想不起来了! 就像是被一块看不见的橡皮擦从你记忆里精确地抹去了一样。 “不会吧……难道这家旅馆其实是无人自助运营的高科技旅馆?可我明明记得有人给我办了入住……吧?” 你感到一阵莫名的烦躁和不安,“我的记忆力什么时候这么差了?难道是最近赶毕业设计熬夜太多了?” \<<set $location = "走廊">>\ [[下楼去大厅看看|大厅景象]] <<if not $shouted>>[[在走廊里喊一声试试?|呼喊]]<<endif>>
你蹑手蹑脚地走下吱呀作响的木质楼梯,来到旅馆大厅。 与楼上一样,前台空空如也,只有一本摊开的住客登记簿孤零零地躺在落了一层薄灰的柜台上,一支廉价的圆珠笔滚落在登记簿旁。 休息区的沙发上还放着一本翻开的时尚杂志,旁边的茶几上摆着一个咖啡杯,里面甚至还有大半杯已经冷透了的咖啡,表面凝结了一层薄薄的油脂。 一切的景象都像是在无声地诉说:这里的人们,是在某个瞬间突然人间蒸发了。 “这下好了,毕业创作的灵感倒是有了,氛围感直接拉满,” 你苦中作乐地想,“就是不知道小命还在不在,能不能活着把画交上去。” \<<set $location = "大厅">>\ <<if not $checkedRegistry>>[[查看前台的登记簿|检查登记簿]]<<else>>登记簿你已经看过了,上面那些诡异的空白记录让你现在想起来还觉得后背发凉。<<endif>> <<if not $shouted>>[[在大厅里喊一声试试?|呼喊]]<<endif>> [[鼓起勇气,走出旅馆去街上看看|走出旅馆]]
<<silently>><<set $checkedRegistry to true>><</silently>>\ 你拿起前台那本沾着些许灰尘的登记簿,小心地翻了翻。 最新的一条记录是你自己的名字:李镇士,入住日期赫然是昨天。 你往前翻了几页,每一页都用同样的笔迹潦草地记录着不同的入住信息,日期也都是昨天或更早的几天。 但诡异的是,除了你之外,所有住客的“姓名”一栏都是空白的,只有入住日期和分配的房间号。 那些空白的签名栏像是被人用修正液刻意涂抹过,又或者……他们从一开始就没有留下任何可供辨识的身份信息? 庆幸的是,确实有许多的退房记录,虽然也都没有名字。 “这旅馆……怕不是个黑店吧?” 你打了个寒颤,赶紧把登记簿放回原处。 <<if not $shouted and $location is "大厅">>[[在大厅里再喊一声试试?|呼喊]]<<endif>> [[鼓起勇气,走出旅馆去街上看看|走出旅馆]]
<<silently>><<set $shouted to true>><</silently>>\ 你深吸一口气,清了清有些干涩的喉咙,对着空旷的空间试探性地喊道:"有人吗?Hello?有没有人在啊——!" 你的声音在死寂的环境中回荡,显得格外突兀和无力。 没有任何回应,只有你自己声音的尾音在空荡荡的建筑里逐渐消散,更添了几分孤寂和诡异。 “好吧,看来是真的没人了。” 你彻底死了心。 <<if $location is "走廊">>[[下楼去大厅看看|大厅景象]] <<elseif $location is "大厅">>[[鼓起勇气,走出旅馆去街上看看|走出旅馆]] <</if>>
你咬了咬牙,伸手推开旅馆那扇沉重而古旧的木质大门,伴随着“嘎吱——”一声刺耳的摩擦声,踏上了小镇的街道。 清晨的阳光有些刺眼,但空气中弥漫着一种令人窒息的、极度不自然的宁静。 店铺的门都紧闭着,有些二楼的窗户里还隐约透出灯光,仿佛主人只是暂时离开。 但街道上依旧空无一人,死寂得像一座被时光遗忘的鬼城舞台。 你感到一阵强烈的困惑和难以言喻的不安,胃也开始不合时宜地咕咕叫起来,提醒你生存的本能。 “现在该怎么办?我总不能一直待在这鬼旅馆里。” [[必须搞清楚这里到底发生了什么!直接上街调查!|探索反应_莽撞]] [[此地不宜久留,太诡异了,先找个看起来安全的地方躲起来观察一下再说!|探索反应_谨慎]] [[或许可以先冷静下来,仔细观察一下周围的环境,找找看有没有其他人留下的线索?|探索反应_理性]]
你的心脏因为未知而狂跳,但一股莫名的冲动——或许是作为艺术生的探索欲,或许只是单纯的鲁莽——让你决定不再迟疑。 “管他是什么牛鬼蛇神,总得弄明白!难道还能比我那坑爹的毕业设计导师更吓人?” 你给自己壮了壮胆,决定主动出击,像个真正的冒险家一样,去寻找任何可能的线索。 你迈开脚步,开始警惕而仔细地观察这条空无一人的街道。 很快,一些极不寻常的痕迹映入你的眼帘。 [[继续观察街道|发现街道异常]]
面对这完全超出理解范围的诡异场景,你觉得自己的小命比什么都重要。 “开什么国际玩笑,这种时候当然是保命要紧!万一是什么生化危机爆发,或者外星人已经占领地球了呢?我可不想当恐怖片里第一个领便当的炮灰路人甲。” 你决定先确保自身安全,再图后续。 你警惕地缩了缩脖子,像只受惊的兔子一样,快速扫视着四周,试图寻找一个相对安全的藏身之处,同时也留意着任何可疑的蛛丝马迹。 很快,一些极不寻常的痕迹映入你的眼帘。 [[继续观察街道|发现街道异常]]
你强迫自己冷静下来,用手拍了拍脸颊。 越是这种反常得离谱的情况,越需要一个清晰的头脑。 “深呼吸,冷静,冷静!你是来寻找创作灵感的,不是来主动送人头的。现在最重要的是收集有效信息,进行理性分析,而不是像个无头苍蝇一样乱撞。” 你决定先不轻举妄动,仔细搜集任何可能被忽略的线索。 你开始有条不紊地、以一种近乎强迫症的细致审视着周围的环境,不放过任何一个可能隐藏着信息的细节。 很快,一些极不寻常的痕迹映入你的眼帘。 [[继续观察街道|发现街道异常]]
就在旅馆门前不远的石板路上,你看到了一大道触目惊心的融毁痕迹! [img[assets/images/scenes/scene_town_hotel_laser.webp]] 那痕迹约有两三米长,半米宽,仿佛被某种超高温的能量瞬间烧灼过,坚硬的石板像是被烤化的蜡烛一样融化变形,又在极短的时间内重新凝固,边缘还残留着一些闪着诡异光泽的、玻璃状的结晶化物质。 空气中似乎还弥漫着一丝焦糊和臭氧的味道。 “这……这是什么造成的?工业事故?陨石坠落?还是……” 你脑海里不由自主地重新闪过“异能者”这个词,难道是某种传说中的高能武器?或者是……异能战斗的余波? 更让你心惊的是,不远处,一家临街店铺的砖石墙壁上赫然出现一个巨大的破洞,直径足有一米多,边缘参差不齐,像是被某种威力巨大的钝器野蛮地砸开,又或者像是被小型的定向爆炸给轰出来的。 周围散落着大量的砖石碎块和扭曲变形的金属招牌残骸。 “这看起来像是……攻城锤?不,这破坏力也太集中了点,而且边缘有灼烧的痕迹。” 你越看越心惊肉跳,这根本不是一个宁静偏远小镇该有的景象。 “我靠,我不是真的撞上了什么不得了的超自然事件现场吧?异能者之间的火并?还是外星人入侵的前哨战?” 你感到一阵口干舌燥,后背也渗出了冷汗,肚子也饿得更厉害了。 得赶紧找点吃的,补充体力,不然别说调查了,可能自己先饿晕在这诡异的街头。 也许……先去旁边的那个看起来像是杂货店的地方碰碰运气? <<if not $checkedShop>>[[尝试进入旁边的商店看看?|检查商店]]<<else>>你已经检查过那家商店了。<br>[[继续沿着主街走走,寻找更多线索和食物|空镇街道]]<<endif>>
<<silently>><<set $checkedShop to true>><</silently>>\ 你走到一家看起来像是街角杂货店的商店门口,店门是玻璃的,你能看到里面货架上摆满了商品。 你抱着试试看的心情推了推玻璃门——门“咔哒”一声,竟然没锁。 “空城计,还是真的没人?” 你嘀咕了一句,小心翼翼地走了进去。 货架上商品琳琅满目,面包、饼干、罐头、瓶装水、饮料应有尽有,甚至在冷藏柜里还有些包装好的三明治和牛奶,冷藏柜还在正常工作,里面的灯还亮着。 收银台的抽屉半开着,里面散落着一些硬币和几张小面额的钞票。 但依然是空无一人,安静得只剩下你自己因为紧张而有些粗重的呼吸声,还有远处街道上那若有若无的……风声? 不,太平静了,什么声音都没有。 你拿起货架上的一个包装面包,捏了捏,还很松软,仿佛是今天早上刚上架的新鲜货色……就是没人收钱。 “这种情况下,拿点吃的应该……不算偷吧?” 你看着面包,咽了口唾沫,“良心啊良心,你先忍一忍,我的肚子比你更重要。” “而且,这种鬼地方真的会有监控中心吗?就算有,现在还有人在看吗?” 你瞥了一眼天花板角落里那个红灯一闪一闪的半球形监控摄像头,心里嘀咕着。 不过,摄像头本身倒是个关键线索,如果能找到这个小镇的安保系统或者监控室,说不定就能看到这里到底发生了什么可怕的事情。 现在……这面包你是拿了,那钱呢? [[只拿面包和水,不碰收银台的钱|拿面包不拿钱]] [[拿走面包和水,也顺便“借”走收银台的零钱和钞票|拿面包也拿钱]]
你撕开面包包装,又从货架上拿了一瓶未开封的矿泉水。 虽然是“免费”的,但你还是克制住了自己,没有去碰收银台里的钱。 “做人还是要有底线的,万一……万一只是虚惊一场,大家都只是临时躲起来了呢?到时候警察来了,我还不得按盗窃算?” 你这样安慰自己,尽管这个可能性连你自己都不太相信。 你狼吞虎咽地吃下了大半个面包,又喝了几口水,感觉身体恢复了一些力气,大脑也清醒了不少。 “小镇居民集体蒸发,商店随便拿。” 如果自己是个新闻学生就好了。 那个闪着红灯的监控摄像头,或许就是第一个突破口。 <<if not $triedPhone>>[[再次拿起手机试试看有没有信号或者导航|拿起手机试试导航_商店后]]<<else>>手机依然毫无反应,就像一块昂贵的镇石。<<endif>> [[离开商店,继续沿着主街走走,看看能不能发现更多线索|空镇街道]]
<<silently>><<set $tookMoney to true>><</silently>>\ 你撕开面包包装,又拿了瓶水。 一边狼吞虎咽地吃着,一边犹豫地看了看收银台里那些散落的零钱和几张纸钞。 “反正……人都没了,这些钱留在这里也是发霉。再说,接下来会发生什么谁也说不准,万一要用到钱呢?” 你深吸一口气,快速地将抽屉里所有的零钱和钞票都扫进了自己的口袋,沉甸甸的感觉让你稍微有了一点虚假的安全感。 “零元购启动!” 做完这一切,你心里有种莫名的、混合着罪恶感和刺激感的情绪在翻腾,但更多的是对未知未来的深深不安。 吃完东西,喝足了水,你感觉体力恢复了不少。 这个小镇处处透着诡异,必须尽快搞清楚状况。 那个监控摄像头,似乎是眼下唯一的指望了。 <<if not $triedPhone>>[[再次拿起手机试试看有没有信号或者导航|拿起手机试试导航_商店后]]<<else>>手机依然毫无反应,就像一块昂贵的镇纸。<<endif>> [[离开商店,继续沿着主街走走,看看能不能发现更多线索|空镇街道]]
<<silently>><<set $triedPhone to true>><</silently>>\ 你再次掏出你的智能手机,不死心地举起来晃了晃,切换飞行模式,重启,甚至轻轻拍了拍,希望能捕捉到哪怕一丝微弱的信号。 然而,屏幕的顶端依然是那冷冰冰的“无服务”三个大字,以及一个代表信号的灰色叉号。 “好吧,我宣布它在这次事件中彻底阵亡了,变成了一块名副其实的高科技板砖。” 你叹了口气,看来是指望不上现代科技来帮你导航或者求救了。 接下来,只能依靠自己的双腿和不太靠谱的直觉了。 [[离开商店,继续沿着主街走走,看看能不能发现更多线索|空镇街道]]
<<silently>> <<audio "bgm_startup" fadeout>> <<run window.discoverCodexEntry('empty_town')>>\ <</silently>>\ 你沿着空旷的主街向前走,脚步声在寂静中格外清晰。 你一边走一边观察着四周,试图找到任何生命的迹象,但一无所获。 渐渐地,你后颈的汗毛竖了起来。 一种难以言喻的感觉笼罩着你——你感觉自己好像被什么东西盯上了。 \[img[assets/images/cg/cg_ch1_plot_03.webp]] [[加快脚步,试图摆脱|被跟踪]] [[停下来,仔细听听|停下倾听]] [[躲进旁边的窄巷|窄巷惊魂]]
你心中一紧,不由自主地加快了脚步,几乎变成了小跑。 那种被窥视的感觉如影随形,让你背脊发凉,你不敢回头。 突然,身后传来一阵急促而沉重的脚步声,伴随着金属铠甲摩擦的刺耳声响,越来越近! [[回头看|空壳战士出现]] [[拼命往前跑|追逐战]] [[慌不择路躲进窄巷|窄巷惊魂]]
你猛地停下脚步,屏住呼吸,侧耳倾听。 除了你急促的心跳声,周围一片死寂... 不,等等! 你清晰地听到了一阵拖沓而沉重的脚步声,夹杂着金属铠甲碰撞的“铿锵”声,似乎就在身后! [[空壳战士出现]]
你迅速闪身躲进旁边一条狭窄、阴暗的巷子,后背紧贴着冰冷的墙壁,死死屏住呼吸。 沉重的脚步声在巷口停顿了一下,金属摩擦声格外刺耳,那个东西似乎在搜寻。 片刻之后,脚步声再次响起,但却是朝着远离巷口的方向去了。 你稍微松了一口气,但那种被盯上的危机感并未完全消失。 [[小心翼翼地离开巷子]] [[在巷子里多待一会儿]]
你决定再等等,确保安全。 时间一分一秒过去,巷外没有任何动静。 你稍微放松了一些,但心中的不安感依然萦绕。 [[小心翼翼地离开巷子]]
你探出头,确认外面没人后,迅速离开了窄巷。 周围依然寂静得可怕,但你感觉那股窥视感并未消失,仿佛阴影中的猎手在耐心等待。 口袋里的手机突然剧烈震动起来! 屏幕上一个奇怪的信号图标正在闪烁,似乎在指引方向! [[跟着指引的方向走|石拱桥]]
你调整了一下呼吸,加快脚步向着石拱桥的方向走去。 周围的寂静反而让你更加警惕,你感觉那股危险的视线始终没有离开。 [[石拱桥]]
<<run window.discoverCodexEntry('empty_warrior')>>\ <<BGMCheck "bgm_elite">>\ [img[assets/images/cg/cg_ch1_plot_05.webp]] 你猛地回头,一个穿着一身完整黑色日式铠甲的人形生物出现在你面前! 铠甲样式古朴,布满深红色的诡异条纹,与这个宁静小镇的风格格格不入。 它的动作僵硬,脸上没有任何表情,只有空洞的眼窝死死地盯着你。 最可怕的是,它左手紧握着一把闪着致命寒光的武士刀! 它发出意义不明的嗬嗬怪声,沉重的步伐朝着你发起了冲锋! [[拼命往前跑|追逐战]]
极致的恐惧攫住了你,你拔腿就跑,心脏几乎是从喉咙里跳出来! 身后沉重的脚步声和铠甲碰撞声如同催命符紧追不舍。 你慌不择路地在空旷的街道和小巷中疯狂穿梭,肺部像火烧一样疼。 就在你感觉快要力竭,双腿如同灌铅般沉重的时候,口袋里的手机突然剧烈震动起来! 屏幕上一个奇怪的信号图标正在闪烁,似乎在指引方向! 同时,你看到前方出现了一座石拱桥! [[冲向石拱桥|石拱桥]]
[img[assets/images/scenes/scene_stone_bridge.webp]] <<silently>> <<run window.discoverCodexEntry('stone_bridge')>> <<run window.discoverCodexEntry('empty_warrior')>> <<set $playerHealth to 2>> <<set $enemyStaggered to false>> <<set $frameStatus to "intact">> /* 画框状态:intact(完好), damaged(损坏), broken(碎掉) */ <<set $easelStatus to "intact">> /* 画架状态:intact(完好), damaged(损坏), broken(碎掉) */ <<set $stoneStatus to "available">> /* 石头状态:available(可用), taken(已拿取) */ <<set $hasFrame to false>> /* 新增:追踪是否拿取了画框 */ <<BGMCheck "bgm_elite">> <</silently>>\ 你气喘吁吁地冲到石拱桥前。 这座桥横跨在一条河流之上,桥身由巨大的青石砌成,线条优美而古朴。 桥下是湍急的河流,深不见底,水流拍打着桥墩发出沉闷的响声,掉下去绝无生还可能。 桥上支着一个画架,上面有画到一半的画布,旁边散落着颜料和画笔,还有一个看起来颇为结实的空画框。 你刚想喘口气,身后“铿锵”一声巨响,那个空壳武士追了上来,它沉重的步伐踏在石桥上,发出闷响。 它挥舞着武士刀,彻底封住了你的退路! 它空洞的眼窝锁定你,一步步逼近。 冰冷的杀意如同实质,让你汗毛倒竖。 你被逼到了桥上,两边是冰冷的河流。 再后退也没意义了! [[集中精神,观察武士的动作,准备闪避|战斗教学]] [[尝试与它沟通|尝试沟通]]
你试图稳住颤抖的声音,对着步步紧逼的武士喊道:“嘿!停下!你是谁?为什么要追我?” 武士毫无反应,只是发出意义不明的嗬嗬声,逼近的脚步没有丝毫停顿,手中的武士刀举得更高了,刀锋在夕阳下闪烁着危险的光芒。 看来沟通是彻底的奢望。 [[集中精神,观察武士的动作,准备闪避|战斗教学]]
<div class="tutorial-box"> <span class="title">【战斗教学:观察与反击】</span> 盲目攻击或逃跑并非总是有效。面对敌人时,请务必仔细观察对方的动作。 许多强大的敌人,在发动攻击前都会有明显的“前摇”或“预备姿态”。 看清敌人的出招意图,选择正确的应对方式(如闪避、格挡或反击),才能在战斗中存活下来。 </div> [[继续|观察武士动作]]
<<nobr>> <<BGMCheck "bgm_elite">> 你强迫自己冷静下来,集中全部精神,紧盯着武士的每一个动作。它的步伐虽然僵硬,但挥刀的轨迹却带着一种致命的规律性。<br> <<set $attackRoll to either(1, 2, 3)>> /* 随机选择攻击模式 */ <<if $attackRoll is 1>><br> /* 模式1:侧斩 */ 它突然一个踏步,身体重心向你的右方倾斜,手中的武士刀在身侧划出一道弧线,带着破风声斩来!速度快得惊人!<br> <br> /* === 统一选项开始 === */ [[向左闪避]] /* 正确闪避 */<br> [[向右闪避]] /* 错误闪避 */<br> [[跳跃躲避]] /* 错误闪避 */<br> [[下蹲躲避]] /* 错误闪避 */<br> [[空手接白刃|闪避失败_空手接刃]] /* 特殊失败 */<br> /* === 统一选项结束 === */ <br> <<elseif $attackRoll is 2>><br> /* 模式2:下段攻击 */ 它突然压低身形,刀锋几乎贴着地面,以惊人的速度横向挥来!<br> <br> /* === 统一选项开始 === */ [[向左闪避]] /* 错误闪避 */<br> [[向右闪避]] /* 错误闪避 */<br> [[跳跃躲避]] /* 正确闪避 */<br> [[下蹲躲避]] /* 错误闪避 */<br> [[试图踩住它的刀|闪避失败_低扫命中]] /* 特殊失败 */<br> /* === 统一选项结束 === */ <br> <<else>><br> /* 模式3:纵劈 */ 它双手紧握刀柄,将武器高举过肩,伴随着一声低吼,全身力量汇于刀锋,猛力向下挥砍!力量感十足!<br> <br> /* === 统一选项开始 === */ [[向左闪避]] /* 正确闪避 */<br> [[向右闪避]] /* 正确闪避 */<br> [[跳跃躲避]] /* 错误闪避 */<br> [[下蹲躲避]] /* 错误闪避 */<br> [[试图撞倒它|闪避失败_纵劈命中]] /* 特殊失败 */<br> /* === 统一选项结束 === */ <</if>> <</nobr>>
<<nobr>> 你向左侧猛地垫步!<br><br> <<if $attackRoll is 1>> [[继续|闪避成功_侧斩]] <<elseif $attackRoll is 2>> [[继续|闪避失败_低扫命中]] <<else>> [[继续|闪避成功_纵劈]] <</if>> <</nobr>>
<<nobr>> 你向右侧快速闪身!<br><br> <<if $attackRoll is 1>> [[继续|闪避失败_侧斩命中]] <<elseif $attackRoll is 2>> [[继续|闪避失败_低扫命中]] <<else>> [[继续|闪避成功_纵劈]] <</if>> <</nobr>>
<<nobr>> 你双腿猛地发力,向后跃起!<br><br> <<if $attackRoll is 1>> [[继续|闪避失败_侧斩命中]] <<elseif $attackRoll is 2>> [[继续|闪避成功_跳跃]] <<else>> [[继续|闪避失败_纵劈命中]] <</if>> <</nobr>>
<<nobr>> 你迅速下蹲,试图避开攻击!<br><br> <<if $attackRoll is 1>> [[继续|闪避失败_侧斩命中]] <<elseif $attackRoll is 2>> [[继续|闪避失败_低扫命中]] <<else>> [[继续|闪避失败_纵劈命中]] <</if>> <</nobr>>
你迅速抓起地上的空画框,入手感觉比想象中要沉重,厚实的木质边框看起来异常坚固。 你将画框横在身前,勉强作为临时的盾牌。 武士的刀带着呼啸声毫不犹豫地劈了过来! [[用画框用力格挡|格挡攻击]] [[试图用画框砸向它的头部|画框攻击]]
你反应迅速,向左侧猛地垫步闪开! 冰冷的刀锋几乎是擦着你的鼻尖掠过,带起的劲风吹乱了你的头发。 你甚至能闻到刀锋上那股铁锈和血腥混合的怪味。 好险! 武士一击落空,动作出现了短暂的僵直。 [[趁机反击?寻找武器|寻找武器]] [[拉开距离,继续观察|观察武士动作]] [[冒险冲过桥去|冲桥尝试]]
你下意识地做出了动作,却铸成大错,正好迎上了武士刀的锋芒! “噗嗤”一声,刀刃深深划过你的肩膀,剧痛瞬间传遍全身,鲜血立刻染红了你的衣服。 <<silently>><<set $playerHealth -= 1>><</silently>> <<if $playerHealth <= 0>> [[剧痛让你眼前一黑...|石桥败亡_刀伤]] <<else>> 你踉跄着爬起来,肩膀传来火辣辣的剧痛,几乎抬不起手臂。 <<if $playerHealth is 1>>你感到一阵眩晕,失血让你有些站立不稳。<<endif>> 武士调整姿态,再次逼近,杀意更盛。 [[忍痛重新集中注意力|观察武士动作]] [[不顾一切冲过桥去|冲桥尝试]] <<endif>>
在极度紧张之下,你脑中闪过无数武侠片中的高手空手夺刃的英姿,热血上涌,竟真的伸出手去—— 指尖甚至在最初的刹那似乎真的碰到了冰冷的刀身侧面,仿佛时间都慢了下来,武士刀的轨迹似乎真的被你捕捉到了! 但那仅仅是万分之一秒的错觉! 下一瞬,锋利的刀刃以无可匹敌的姿态,从你的指尖开始,摧枯拉朽般切过你的手掌、你的手臂! 你甚至能看清刀锋剖开皮肉、碾过骨骼的轨迹,剧痛让你眼前发黑! “啊啊啊啊啊——!” 你发出不似人声的惨叫,这比任何噩梦都要清晰的疼痛让你明白,什么高手风范,都是狗屁! 现实只会给你最无情、最血腥的一击! <<silently>><<set $playerHealth -= 2>> /* 空手接白刃,大失败,扣两点血或者直接死亡 */ <</silently>> <<if $playerHealth <= 0>> [[失血过多,你瘫倒在地... (结局:愚勇的代价)|石桥败亡_力竭]] <<else>> 你强忍着撕心裂肺的剧痛连连后退,鲜血如同喷泉般从手臂涌出,滴落在古老的石板上,触目惊心。 <<if $playerHealth is 1>>手臂的剧痛让你几乎无法思考,视线开始模糊,整个世界都在旋转。<<endif>> 武士的脚步声如同丧钟,越来越近,压迫感让你几乎窒息。 [[忍痛继续战斗|继续战斗]] [[不顾一切冲过桥去|冲桥尝试]] <<endif>>
你反应极快! 冰冷的刀锋贴着你的鞋底扫过,带起的风甚至让你感觉到了凉意。 你稳稳落地,躲过了这刁钻的一击。 武士一击落空,动作出现了短暂的僵直。 [[趁机反击?寻找武器|寻找武器]] [[拉开距离,继续观察|观察武士动作]] [[冒险冲过桥去|冲桥尝试]]
你没能躲开这迅猛的下盘攻击! “咔嚓”一声伴随着剧痛,武士刀狠狠地斩中了你的小腿! 你惨叫一声摔倒在地,鲜血瞬间涌出,染红了裤腿。 <<silently>><<set $playerHealth -= 1>><</silently>> <<if $playerHealth <= 0>> [[剧痛和失血让你失去了意识...|石桥败亡_腿伤]] <<else>> 你挣扎着想要爬起来,但受伤的腿传来钻心的疼痛,几乎无法支撑身体。 <<if $playerHealth is 1>>失血让你头晕目眩,视线开始模糊。<<endif>> 武士拖着刀,一步步逼近,空洞的眼窝锁定着倒地的你。 [[挣扎着寻找武器反击|寻找武器]] [[拼命向后挪动,试图拉开距离|观察武士动作]] <<endif>>
千钧一发之际,你向侧面猛地扑出! 沉重的武士刀带着呼啸的风声重重劈在你刚才站立的位置,石板迸裂,碎石飞溅! 你狼狈地滚到一边,但总算躲过了这致命一击。 武士一击落空,需要时间收回武器,动作出现了短暂的僵直。 [[趁机反击?寻找武器|寻找武器]] [[拉开距离,继续观察|观察武士动作]] [[冒险冲过桥去|冲桥尝试]]
这是在硬接! 武士刀带着无可匹敌的力量斩下,轻易地破开了你的防御(或者说根本没有防御),深深地劈入你的身体! <<silently>><<set $playerHealth -= 1>><</silently>> <<if $playerHealth <= 0>> [[你眼前一黑,彻底失去了知觉...|石桥败亡_重劈]] <<else>> 剧痛瞬间席卷全身,你感觉骨头都要断了,鲜血狂涌而出。 <<if $playerHealth is 1>>你感到生命在飞速流逝,意识开始模糊。<<endif>> 武士拔出刀,准备发动下一次攻击。 [[忍痛重新集中注意力|观察武士动作]] [[不顾一切冲过桥去|冲桥尝试]] <<endif>>
你试图用手臂去格挡,但这无异于螳臂当车! 沉重的武士刀带着巨大的力量斩下,轻易地撕裂了你的衣袖,深深地砍入你的手臂! 骨头仿佛都要被斩断,剧痛让你几乎晕厥。 <<silently>><<set $playerHealth -= 1>><</silently>> <<if $playerHealth <= 0>> [[剧痛让你失去了意识...|石桥败亡_刀伤]] <<else>> 你惨叫着后退,鲜血染红了石桥。 <<if $playerHealth is 1>>你感觉手臂已经完全失去了知觉,只剩下钻心的疼痛。<<endif>> 武士的脚步声越来越近,死亡的阴影笼罩着你。 [[忍痛继续战斗|继续战斗]] [[不顾一切冲过桥去|冲桥尝试]] <<endif>>
“铛!!”一声震耳欲聋的巨响! 武士刀狠狠砍在厚实的画框上! 巨大的力量震得你虎口发麻,双臂几乎要失去知觉,但你死死顶住了! 画框发出痛苦的呻吟,“咔嚓”一声,出现了一道明显的裂痕,但它确实为你争取了宝贵的瞬间! 武士似乎没料到这看似脆弱的画框竟能挡住它的斩击,动作出现了明显的停滞和一丝困惑。 <span class='feedback-text'>它重心不稳了!这是个机会把它推下去!</span> <<silently>> <<set $enemyStaggered to true>> <<set $frameStatus to "damaged">> <</silently>>\ [[趁此良机!用画框猛推它的胸口!|推击敌人]] [[扔掉破损的画框,尝试夺路而逃|冲桥尝试]] [[后退一步,观察它的反应|观察武士动作]]
你怒吼一声,抡起沉重的画框,用尽全身力气朝着武士的头部砸去! 武士似乎没料到你会用这个进行攻击,举刀格挡慢了一瞬。 “嘭!” 画框砸在它头上发出沉闷的巨响!它被打得一个趔趄,向侧面踉跄了好几步,甚至发出了不同于以往的、略带错愕的嗬嗬声! 巨大的冲击力让它动作明显出现了混乱和更加剧烈的僵硬。 但画框也承受不住这次猛烈的撞击,在你手中彻底碎裂开来,木屑四溅。 <span class='feedback-text'>它彻底懵了!快,把它推下桥!</span> <<silently>> <<set $enemyStaggered to true>> <<set $frameStatus to "broken">> <</silently>>\ [[趁它混乱,冲上去推它!|推击敌人]] /* 绝佳时机! */ [[赶紧寻找其他可用的东西|寻找武器]] /* 画框已毁 */
<<if $enemyStaggered is true>> 你抓住这千载难逢的机会,趁武士踉跄未稳,猛地向前踏步,用尽全力将身体向前猛推! 你的肩膀狠狠撞在武士冰冷的胸甲上。 “咚!”的一声闷响,本就重心不稳的武士被这股力量彻底打破了平衡! <<set $enemyStaggered to true>> /* 敌人踉跄状态加剧 */ [[乘胜追击,再推一把,把它推下桥!|推落敌人]] <<else>> /* 此分支理论上在当前逻辑下较难触发,因为推击前敌人应处于 $enemyStaggered is true 状态 */ 你试图推它,但它已经站稳了脚跟,纹丝不动。 它空洞的眼窝转向你,手中的武士刀带着复仇的怒火再次向你砍来! [[紧急闪避!|观察武士动作]] <<endif>>
<<audio "bgm_elite" fadeoverto 2 0>>\ 你瞅准时机,双臂猛然发力,将全身的重量与求生的意志一同爆发! “喝啊!”你怒吼出声,那股沛然的力量狠狠撞在空壳武士的胸甲上。 它那沉重的铠甲在你的冲击下发出一声不堪重负的闷响,本已不稳的重心彻底被打破。 武士发出一连串意义不明、仿佛夹杂着惊愕与不甘的嘶吼,那双空洞的眼窝在这一刻似乎也因为失去平衡而显得有些滑稽和错愕。 时间仿佛变慢了。 你清晰地看到它双臂徒劳地在空中胡乱挥舞着,想要抓住什么,但一切都是徒劳。 它那覆盖着黑色铠甲的沉重身躯向后踉跄、倾倒,笨拙地越过石桥那并不算高的石质栏杆。 那一瞬间,它的身影在空中划出一道短暂的、绝望的弧线,背景是远方的天空和桥下深不见底的湍急河水。 你的视线紧紧追随着它,心脏提到了嗓子眼。 “噗通——哗啦!” 一声震耳的巨响伴随着冲天而起的巨大水花,空壳武士重重地砸进了桥下深不见底的河流之中! 河水瞬间淹没了它,激起的水花如同盛开的白色死亡之花,又迅速落下,冰冷的河水甚至溅到了你的裤脚上,让你打了个寒颤,那是死亡擦身而过的冰冷触感。 你看到它在水中剧烈挣扎了几下,铠甲的缝隙中冒出串串绝望的气泡,它试图浮上来,但那身沉重的铠甲却成了最致命的累赘。 很快,它的挣扎越来越无力,那沉重的钢铁躯壳便如同秤砣般迅速下沉,被黑暗的河水彻底吞噬,消失在幽暗的河底。 水面只留下一圈圈不断扩大的涟漪,以及几片被惊起的落叶,慢慢地,一切又恢复了令人心悸的寂静。 <<silently>><<set $defeatMethod to "推落">><</silently>>\ <br> <span class='achievement-popup'>计策胜利:水鬼武士!</span> <br> 你瘫坐在桥上,大口喘着粗气,冷汗浸湿了后背。 劫后余生的庆幸与挥之不去的恐惧交织在一起。 看着桥下寂静的河水,你仍然心有余悸,刚才那一幕幕在脑海中不断回放。 你的目光扫过桥面,落在了之前战斗中被波及的画具上。 <<if $frameStatus is "broken">> 看着散落在地、彻底碎裂的画框,你不禁感到一阵可惜。 “唉,真可惜,就这么碎了。” 它原本看起来那么坚固,或许曾装着某人珍视的画作,如今却已不堪修复。但它也算完成了自己的使命。 <<elseif $frameStatus is "damaged">> 你拾起那个在战斗中受损的画框,边框上布满了裂痕,虽然没有完全碎裂,但也失去了原有的完整。 “可惜了,已经坏成这样了。”你不禁叹了口气。“不过,好歹是它救了我一命。” <<elseif $frameStatus is "intact">> 那个空画框奇迹般地在刚才的混乱中完好无损。 你走过去,轻轻拂去上面的灰尘,入手的感觉依然厚实。 “这个还完好无损啊,太好了。” 这或许是个不错的纪念品,或者……将来还能派上用场。你小心地将它拿了起来,决定带上。 <<silently>><<set $hasFrame to true>><</silently>> <</if>> <<if $easelStatus is "intact">> 那个画架也还好好地立在那里,画布上未完成的画作在风中微微晃动。 看着这宁静的景象,与刚才的生死搏斗形成鲜明对比,你心中忽然涌起一股奇特的冲动。 <br><br> [[在画架上画点什么?|在桥上画画]] [[不了,现在不是做这种事的时候|检查完毕准备离开]] <<else>> 画架在之前的战斗中<<if $easelStatus is "damaged">>已经损坏<<else>>已经散了架<</if>>,木条零散地躺在地上,画布也落了,沾上了尘土。 看来是没法用了。 <br><br> [[检查完毕,准备离开|检查完毕准备离开]] <</if>>
<<nobr>> 你深吸一口气,努力平复激烈的心跳。 走到画架前,拿起一支画笔,蘸了些许颜料。<br><br> 我刚刚差点死了,现在居然在画画?我脑子是不是有点不正常……但这感觉意外的平静。<br><br> 你寻思着,或许,你需要用这种方式来确认自己还活着,来消化刚才那极致的恐惧与紧绷。<br><br> 四周很安静,只有河水流动的声音和风吹过树叶的沙沙声。 你试图将刚才的惊悸与此刻的平静都融入笔端。<br><br> 你画下了一幅描绘石桥与远方森林的速写,线条间带着一丝战斗后的颤抖,却也有独特的张力。<br><br> 片刻之后,你放下了画笔。 无论画得如何,这短暂的创作让你紧绷的神经稍微放松了一些。<br><br> <br><br> [[收拾心情,准备离开|检查完毕准备离开]] <</nobr>>
这时,口袋里的手机再次剧烈震动,屏幕上的信号图标依旧执着地闪烁着,似乎在催促你继续前进。 这一定是某种指引,或许是离开这里的希望! [[跟着手机信号继续走|前往木屋]]
你决定不再与这个打不倒的怪物纠缠,猛地转身,向着石桥的另一端发足狂奔! 求生的欲望让你爆发出了前所未有的速度。 然而,武士的反应同样迅速,它沉重的铠甲似乎并未影响它的速度,立刻迈开僵硬的步伐追了上来! 在你跑到桥中央时,身后传来了急促的破风声,它从后面挥出了一刀! [[回头用手臂格挡|格挡失败_手臂]] [[奋力向前扑倒躲避!|扑倒躲避]]
千钧一发之际,你奋力向前一个鱼跃扑倒! 身体沉重地摔在冰冷的石板上,手肘和膝盖传来火辣辣的疼痛,擦破了皮肉。 虽然狼狈不堪,但你成功躲过了背后那致命的一刀! 武士的刀带着劲风砍在了你刚才所在位置的空气中,发出“呼”的一声。 <<silently>><<set $playerHealth -= 1>><</silently>> /* 扑倒躲避也可能受伤 */ <<if $playerHealth <= 0>> [[挣扎着起身|石桥败亡_力竭]] <<else>> <<if $playerHealth is 1>>摔倒的冲击和之前的伤让你头晕目眩,意识都有些模糊了。<<endif>> 你必须立刻做出反应,否则死路一条! [[手脚并用,拼命爬向桥的另一端!|继续逃离]] [[翻滚到桥边,寻找机会反击?|寻找武器]] <<endif>>
你顾不上全身的疼痛和擦伤,手脚并用地向前疯狂爬行,只想尽快离开这座死亡之桥。 冰冷的石板摩擦着你的皮肤,但求生的本能压倒了一切。 武士在你身后发出嗬嗬的怪声,沉重的脚步声紧追不舍,越来越近! [[桥的尽头就在眼前!|抵达桥对岸]]
你连滚带爬,终于冲过了石拱桥,踏上了对岸坚实的土地! 你刚想松一口气,以为暂时安全了,回头却看到那不死的武士发出愤怒的嘶吼,也踏上了桥的对岸! 它似乎不打算放过你,即使隔着一条河! 你再次陷入绝境! 身后是未知的、幽深的森林,前方是步步紧逼的夺命武士。 口袋里的手机仍在疯狂震动,信号坚定地指引着森林深处。 [[冲进森林,跟着信号跑!|桥岸死斗]] [[转身再次面对武士(极度危险!)|桥岸死斗]]
你环顾四周,试图寻找任何可以用来对抗的东西。 桥边有一个看起来沉甸甸的石块,还有那个被遗弃的画家的画架——看起来很笨重,但或许能派上用场。 颜料管和画笔显然没什么用。 <<if $frameStatus is "broken">>你之前用的画框已经碎掉了。 <<elseif $frameStatus is "damaged">>你手中的画框已经出现了裂痕,看起来再也经不起什么撞击了。 <<elseif $frameStatus is "intact">>旁边还有一个看起来结实的空画框。 <</if>>\ <<if $stoneStatus is "available">>[[抱起沉重的石块|获得石块]]<br><</if>>\ <<if $easelStatus is "intact">>[[抄起那个笨重的画架|获得画架]]<br><</if>>\ <<if $frameStatus is "intact">>[[拿起空画框|抄起画框]]<br><</if>>\ <<if $stoneStatus != "available" and $easelStatus != "intact" and $frameStatus != "intact">> 这里已经没有任何可用的武器了... [[只能冒险冲过桥去!|冲桥尝试]] <</if>>
<<set $stoneStatus to "taken">>\ 你迅速抱起一块颇有分量的石块,入手沉甸甸的,表面粗糙。 你紧紧握住它,虽然简陋,但总比赤手空拳面对那把致命的武士刀要好。 就在此时,武士的刀又一次带着风声劈了过来! [[用石块砸向它的手腕,试图打掉它的刀!|石块反击]] [[尝试闪避|石桥败亡_切开]]
你费力地抄起那个三脚木质画架,它比想象中更笨重、更碍事,挥舞起来非常不便,几乎无法有效攻击。 但它至少足够大,或许能暂时阻挡一下敌人的攻击。 武士可不会给你适应新“武器”的时间,它的攻击已经到了眼前! [[用画架笨拙地格挡|画架格挡]] [[抡起画架砸过去|画架攻击]]
你瞅准机会,用尽力气将手中沉重的石块朝着武士握刀的手腕狠狠砸去! “铛!”一声沉闷的巨响,石块重重地撞在坚硬的黑色臂甲上! 巨大的反作用力震得你手腕发麻,石块直接被弹飞了出去,掉进了河里。 然而,武士的动作甚至没有丝毫停顿,握刀的手稳如磐石! 它只是用那空洞的眼窝漠然地瞥了你一眼。 看起来这种程度的钝击对它毫无作用。 [[继续观察|观察武士动作]]
你举起笨重的画架,试图挡住劈来的武士刀。 “铛!”另一声巨响,刀锋砍在画架的木腿上,留下深深的刻痕,木屑飞溅! 巨大的力量通过画架传导过来,震得你连连后退,差点握不住。 画架虽然挡住了这一击,但看起来也支撑不了多久了,而且它太笨重,让你失去了灵活性。 武士似乎对这种阻碍感到愤怒,发出了更响亮的嗬嗬声。 <<set $enemyStaggered to true>> /* 敌人攻击被阻挡,略微停顿 */\ <<set $easelStatus to "damaged">>\ [[趁机推画架干扰它,然后逃跑|冲桥尝试]] [[扔掉画架,寻找别的机会|寻找武器]] [[继续用画架周旋|观察武士动作]]
你抡起笨重的画架,使出吃奶的力气朝着武士砸了过去! 画架在空中划过一道笨拙的弧线。 “嘭!” 画架砸在了武士的胸甲上,发出沉闷的响声。 武士被打得一个趔趄,后退了一步,动作出现了短暂的混乱。 但画架也因为这次撞击而散了架,几根木条掉落在地。 这一下虽然造成了干扰,但似乎并未对其造成实质伤害。 <<set $enemyStaggered to true>> /* 敌人因撞击而踉跄 */\ <<set $easelStatus to "damaged">>\ [[趁它踉跄,冲上去推它!|推击敌人]] [[画架已毁,赶紧寻找其他武器!|寻找武器]] [[赤手空拳面对它|观察武士动作]]
你和武士在狭窄的石桥上惊险地周旋。 每一次闪避都是在刀尖上跳舞。 你的体力在飞速消耗,而那个不知疲倦的怪物却似乎永远精力充沛。 [[继续闪避和寻找机会|观察武士动作]] [[冒险尝试将它引到桥边,推它下去!|引诱敌人]]
你灵机一动,开始故意向桥的边缘移动,同时做出防御和闪避的姿态,试图引诱武士靠近河边。 武士果然一步步跟了过来,它的注意力完全集中在你身上,似乎完全没有注意到自己离桥边越来越近,脚下就是奔流的河水。 [[就是现在!看准时机,猛地将它推下去!|被反击]]
就在你以为计划即将得逞,准备发力推它的时候,武士突然停下脚步,空洞的眼窝似乎闪过一丝狡黠,或许只是错觉? 它猛地一个加速突刺! 速度之快远超你的预料,你根本来不及反应! 冰冷的刀锋瞬间逼近! 你被狠狠地刺中了!剧痛瞬间传遍全身! <<if $playerHealth is 1>>剧痛让你几乎失去意识,视野被染成一片血红,你仿佛能听到自己生命流逝的声音。<<endif>> [[最后一搏?!|绝境反击]] [[伤势太重,放弃抵抗...|石桥败亡_力竭]]
在剧痛和濒死的绝望中,你爆发出最后的、也是全部的力气! 你不再躲闪,不顾一切地朝着刺中你的武士猛地撞了过去! 也许是肾上腺素的爆发,也许是纯粹的求生本能,也许只是瞎猫碰上死耗子—— 你用尽生命最后的重量,狠狠地撞在了它的重心上! [[成功了!将它一起撞下桥!|同归于尽_坠落]]
<span class="death-ending">(结局 - 与空壳武士同归于尽)</span> 失衡的瞬间,世界在你眼中倾斜。 你与那冰冷的铠甲一同跌落,如同两片无力的落叶,被风抛向冰冷的河面。 河水拥抱了你们,带着一种近乎温柔的冰冷,将一切喧嚣与挣扎吞没。 意识沉入黑暗前的最后一瞥,是阳光穿透水面,照亮了那具迅速下沉的黑色轮廓,而你的身体也渐渐失去温度,与这冰冷的河水融为一体,归于永恒的寂静。 你的旅程以一种决绝而凄美的方式画上了句点。 <<audio "bgm_elite" stop>>\ [[重新开始|石拱桥]]
<span class="death-ending">(结局 - 刀伤死亡)</span> 刀锋穿透身体的瞬间,时间仿佛凝固。 巨大的力量将你推向桥边,脚下是虚空,眼前是澄澈的河水倒映着破碎的天空。 坠落的过程短暂而漫长,冰冷的河水温柔地接纳了你,洗去血污,也带走了最后的温暖。 在意识彻底模糊之际,你感觉到口袋里的速写本被河水浸透,那些未完成的线条和构想,如同你戛然而止的生命,晕染开来,最终消散在这无声的拥抱中…… 你的旅程在这里悄然落幕。 <<audio "bgm_elite" stop>>\ [[重新开始|石拱桥]]
<span class="death-ending">(结局 - 坠桥死亡)</span> 失足的瞬间,重力攫住了你,石桥在你眼中飞速远去。 风声呼啸着掠过耳畔,世界在你眼前旋转、模糊。 下方是坚硬冰冷的河床岩石,准备拥抱你的碎裂;是深邃冰冷的河水,准备吞噬你的意识。 伴随着巨大的冲击,你的存在感瞬间被剥离。 黑暗温柔地降临,如同幕布落下,隔绝了所有的光与声。 你的旅程在坠落的弧线中抵达终点。 <<audio "bgm_elite" stop>>\ [[重新开始|石拱桥]]
<span class="death-ending">(结局 - 被利刃切开)</span> 你终究未能逃脱那追逐的锋芒。 冰冷的钢铁轻易地撕裂了温热的血肉,疼痛尖锐而短暂,随即被一种奇异的麻木感所取代。 世界在你眼中失去了色彩,只剩下逐渐蔓延的冰冷。 生命如同断线的风筝,无力地飘向未知的远方。 你的旅程被一道冰冷的弧光斩断。 <<audio "bgm_elite" stop>>\ [[重新开始|石拱桥]]
<span class="death-ending">(结局 - 力竭而亡)</span> 力量如同沙漏中的细沙,从指缝间悄然流逝。 失血带来的眩晕,剧痛引发的麻木,以及那深入骨髓的恐惧,最终压垮了你的意志。 你瘫软在冰冷的石板上,如同被遗弃的木偶。 空壳武士的影子笼罩下来,那双空洞的眼窝漠然地注视着你最后的喘息。 高举的刀锋在夕阳下折射出冰冷的光,缓缓落下,像是一场迟来的谢幕。 你的旅程在无声的注视下归于沉寂。 <<audio "bgm_elite" stop>>\ [[重新开始|石拱桥]]
<span class="death-ending">(结局 - 桥岸死斗败亡)</span> 但你已经力疲。 在桥岸这狭窄的空间里,你几乎没有闪躲的余地。 武士的刀无情地斩下,这一次,你没能躲开... 冰冷的刀锋终结了你逃亡的脚步。 你的旅程在这里结束了。 [[重新开始|石拱桥]]
<span class="death-ending">(结局 - 腿部重创而亡)</span> 钻心的剧痛从小腿蔓延至全身,你瘫倒在冰冷的石板上,视线被涌出的鲜血染红。 你挣扎着想爬开,但受伤的腿完全不听使唤。 武士沉重的脚步声越来越近,如同死亡的钟摆。 你绝望地看着它空洞的眼窝,冰冷的刀锋在你模糊的视野中缓缓举起... 最后的光亮,是夕阳下冰冷的河水反光。 <<audio "bgm_elite" stop>>\ [[重新开始|石拱桥]]
<span class="death-ending">(结局 - 被重劈殒命)</span> 你甚至来不及感受疼痛,只听到一声沉闷的巨响,仿佛世界都被劈开。 无可匹敌的力量瞬间摧毁了你的抵抗,视野急速旋转、下坠,最后定格在一片血红之中。 意识如同风中残烛,迅速熄灭在无边的黑暗里。 桥上的风,依旧吹拂着,带走你最后的温度。 <<audio "bgm_elite" stop>>\ [[重新开始|石拱桥]]
你不敢在原地多做停留,紧紧握着仍在震动的手机,跟随着屏幕上那微弱却坚定的信号图标的指引,快步离开了这座留下恐怖回忆的石拱桥,向着小镇更深处、靠近森林边缘的方向走去。 信号似乎指向不远处森林边缘若隐若现的一座孤零零的小木屋。 [[抵达木屋]]
你不再犹豫。 紧紧握着手机,屏幕上一个闪烁的箭头坚定地指向某个方向。 你顺着箭头的指引,离开了石桥,向着小镇边缘的一片稀疏树林走去。 手机屏幕上的箭头越来越稳定,最终将你引到了一间隐藏在树林深处的小木屋前。 木屋看起来很普通,甚至有些破旧,门窗紧闭。 箭头的指向终点,似乎就在里面。 [[敲门]] [[试着推门]]
你轻轻敲了敲门。 里面没有任何回应。 只有风吹过树叶的沙沙声。 [[再试着推门|试着推门]]
你试探性地推了一下木门。 老旧的木材发出沉闷的“吱呀——”声。 门被推开一道缝隙。 一股浓烈的气味从中涌出——刺鼻的机油味、铁锈的冰冷气息,混杂着一丝淡淡的、几乎被掩盖的血腥味,还有某种难以辨识的、金属冷却后的余味。 [img[assets/images/scenes/scene_cabin_interior.webp]] <<BGMCheck "bgm_domBH">>\ 屋内光线昏暗。 你眨了眨眼,努力适应着。 地上散落着一些工具、叫不出名字的零件和凝固的深色油渍。 一个身影蜷缩在房间最深处的角落阴影里,几乎与黑暗融为一体。 她身下的地面,以及旁边的墙壁上,有大片暗红色的液体痕迹,有些已经干涸发黑。 [img[assets/images/cg/cg_ch1_plot_06.webp]] 你屏住呼吸,又走近了几步。 你看清了。 那是一个穿着黑色制服的少女,制服像是被撕扯过,沾染了大片的污渍和暗红。 她的一只手臂以一种完全不自然的姿势扭曲垂落,肩部连接处裸露出狰狞的豁口。 闪烁着微弱电弧的金属结构,断裂的复杂线缆和焦黑的金属骨架隐约可见。 你的脚步声,在死寂的木屋中格外清晰。 蜷缩在角落的身影猛地一震。 少女抬起头。 银白色的发丝有些凌乱地贴在她的脸颊上。 一双眼睛瞬间锁定了你。 最初,那双眼中似乎空无一物,带着一丝死寂和几乎要熄灭的微光。 但在看清你,一个活生生的人类时,那丝死寂迅速褪去,被极致的警惕和锐利的探究取代。 <<run window.discoverCodexEntry('dominique')>> [img[assets/images/cg/cg_ch1_plot_07.webp]] “你……你是真实存在的?我在梦里见过你。” 这句话脱口而出,你自己也吓了一跳。不知为何,你感觉她就是你梦中那个被刺穿的身影。 “你是谁?你怎么会在这里?”她的声音响起,带着一种轻微的、几乎难以察觉的电子颤音,语调平直,不带任何情感。 你看着她那只彻底损毁、还在冒着火花的机械手臂,又看了看她苍白的脸,开口回答: “我……我是跟着手机上的箭头找到这里的。我还以为是……救援信号……你还好吗?” 她仔细地打量着你,从头到脚,目光像扫描仪一样。 几秒钟后,她眼神中的锐利稍稍褪去一丝,但警惕丝毫未减,依旧保持着随时可以做出反应的距离感。 “手机箭头……那确实是我发出的求救信号……”她顿了顿,视线再次在你身上扫过,“你就这么一个人,不带任何武器就过来了?你如果不是万分勇敢……就是有些鲁莽。不过,还是谢谢你。我现在……确实需要一位‘人类’的帮助。” <<silently>> <<set $domOpinion = 0>> /* 好感度或信任度 */ <<set $askedIdentity = false>> /* 是否问过身份 */ <<set $askedTown = false>> /* 是否问过小镇情况 */ <<set $askedPurpose = false>> /* 是否问过需要人类的目的 */ <<set $askedTech = false>> /* 是否问过机械手臂 */ <<set $askedMotivation = false>> /* 是否问过玩家动机/异能者 */ <<set $askedStreetDamage = false>> /* 新增:是否问过街道损坏 */ <<set $askedCamera = false>> /* 新增:是否问过监控摄像头 */ <<set $contactStatus = "pending">> /* 接触状态: pending, accepted, refused_temp, refused_final */ <<set $tempQuestionResponse = "">> /* 用于临时存储子选项的回应文本 */ <</silently>> <<nobr>> /* 显示临时回应(如果有) */ <<if $tempQuestionResponse neq "">> $tempQuestionResponse<br><br> <<set $tempQuestionResponse = "">> /* 清空临时回应 */ <</if>> <</nobr>>\ <<include "Ch1_DialogueCheck">>
<<set $askedIdentity = true>> 你仔细观察着她的反应,问道:“你是谁?为什么会受伤?” 少女微微摇头。 “我不知道我是谁……但我的名字是‘多米尼克’。关于身份、任务背景的核心数据都已损坏或丢失。这不符合逻辑,我的设计不应出现这种程度的记忆缺失。” 她看了一眼自己还在冒着细微电火花的机械臂,语气带着一种纯粹的、对于自身状态无法理解的困惑: “我是……一个机器人。残存的指令片段显示,我被派遣到这里执行一个……‘清除’任务。目标和范围已经不知道了。但可以肯定,外面那些……‘东西’,不是主要目标。” <div class="tutorial-box"> <span class="title">【交流教学:言语的艺术】</span> 与这个世界中的某些独特存在互动时,你既往的人际交往经验可能需要一些调整。 眼前的这位机械少女,她的反应和决策似乎基于一种与常人不同的、高度结构化的逻辑。 对她而言,寻常的社交辞令、纯粹的情感流露,或者是不经审慎思考便许下的承诺,可能并非有效的沟通方式,甚至可能被解读为缺乏清晰的判断力。 当你需要做出选择或回应她的请求时,不妨尝试从利弊分析、自身处境和行为的逻辑一致性出发。 一个清晰、理性的头脑,或许比一颗单纯热忱的心更能赢得尊重。 </div> 她突然抬起头,目光再次变得锐利,像冰冷的探针刺向你: “你呢?你出现在这里,一个手无寸铁的人类……你会是我的目标吗?” /* 身份问题的子选项 */ [[“不,我不是你的目标。我只是个路过的普通人。”|询问身份-回应][$domOpinion += 1, $tempQuestionResponse = "她没有继续逼问,但眼神中的审视并未完全消失。“普通人……吗?在这个地方?”"]] [[“你凭什么怀疑我?”|询问身份-回应][$domOpinion -= 1, $tempQuestionResponse = "“我的逻辑模块提示我,未知人类个体存在潜在威胁。这不是怀疑,是基于数据的风险评估。”她冷淡地回应,戒备明显加深了。"]] [[“也许是,也许不是,谁知道呢?”(试探)|询问身份-回应][$domOpinion += 0, $tempQuestionResponse = "她微微歪头,像是认真思考了一下你的话。“模糊的回应……无法判断威胁等级。暂时将你列为‘待观察’目标。”"]]
<<nobr>> /* 显示临时回应(如果有) */ <<if $tempQuestionResponse neq "">> $tempQuestionResponse<br> <<set $tempQuestionResponse = "">> /* 清空临时回应 */ <</if>> <</nobr>> <<include "Ch1_DialogueCheck">>
<<set $askedTown = true>> 你环顾了一下这个破败的木屋内部。 从窗户那狭窄的缝隙能瞥见外面死寂的街道和灰色的天空。 “这个小镇到底发生了什么?为什么一个人都看不到,就像……一座空城?” 你问。 多米尼克沉默了片刻,像是在检索着什么信息,又像是在回忆。 她的语气低沉下来: “我不知道。当我在这里醒来时,就已经是在这个镇子的边缘了。我的记忆模块损伤严重,很多关于背景和时间的信息都是空白或者乱码。” “你说一个人都没有……我也有同感。这里的一切都像是被什么东西……‘掏空’了。” 她转头望向窗外那灰蒙蒙的天空,视野中只有静止的建筑轮廓。 “这不正常。” 你也知道这不正常。 这死寂本身,就是一种巨大的异常。 <<include "Ch1_DialogueCheck">>
<<set $askedStreetDamage = true>> 你想起在旅馆外看到的景象,问道:“我醒来的时候,在旅馆门前看到一大片融化的路面,还有附近店铺墙上巨大的破洞。你知道那是怎么回事吗?跟你有关吗?” 多米尼克看向你,眼神没有丝毫波动。 “是的,那是我所为。”她平静地承认,“路面的融毁痕迹,是我的臂载式能量投射单元在清除威胁时造成的。墙壁的破洞,则是使用小型定向爆破榴弹的结果。” 她停顿了一下,补充道:“当时情况紧急,未能顾及对周边环境的附带损伤。” 她的坦诚让你有些意外,也更感心惊。但也有些失望——那不是异能者所为。 <<include "Ch1_DialogueCheck">>
<<set $askedCamera = true>> 你想起在杂货店里看到的那个还在运行的监控摄像头。 “对了,我在小镇的商店里看到过还在工作的监控摄像头。你知道这个小镇的监控中心在哪里吗?如果能看到录像,也许能搞清楚这里发生了什么。” 多米尼克微微摇头。 “监控中心……我的数据库中没有这个小镇的详细地图和设施分布信息。我醒来后便直接遭遇了威胁,未能进行全面的环境侦察。” 她顿了顿,似乎认同你的看法:“不过,你的提议具有逻辑性。如果存在这样的监控中心并且仍在运作,其记录的数据对于理解当前状况确实有价值。在确保基本安全后,可以将其列为调查目标之一。” <<include "Ch1_DialogueCheck">>
<<audio "bgm_domBH" fadeout>>\ <<set $askedPurpose = true>> 她之前提及需要“人类”的帮助。 这个说法让你很在意。 你谨慎地开口:“你刚才说需要人类……具体是什么意思?听起来不像是普通的工程需求。” 多米尼克沉默了几秒。 像是在组织语言,又像是在评估风险。 然后,她才开口。 她抬起那只受损的机械臂,动作有些迟滞和卡顿,细小的火花不时从断裂处闪现。 金属表面下,一些结构似乎在微微移动,发出细碎的摩擦声。 “我的内部诊断与修复子系统……报告了一个异常协议。”她回答,语气带着一种纯粹的、对程序指令进行分析的口吻,“其声称,需要通过特定的接口与人类建立连接,才能启动高级自我修复程序。” <b>她没有给你太多反应时间。</b> 就在你试图理解她那句“与人类建立连接”的含义时—— 她的眼神微微一凝,似乎做出了某种决定。 <b>她的动作骤然变化!</b> 原本看起来行动不便的身体,此刻却爆发出完全不像重伤之人应有的敏捷! 她的身影几乎化作一道残影,瞬间贴近! 一只冰冷的金属手臂闪电般环过你的肩膀,几乎是将你半锁进她的怀里! 同时,她的另一只手,那只完好的手,已经按住了你的腹部。 你甚至能感觉到她冰冷的金属手指隔着衣物压迫着你的皮肤,那力量不容抗拒。 <b>你惊恐地发现,她那只看似残废的、冒着火花的手臂腕部,不知何时已经弹出了一个装置!</b> 那根本不是什么友善的“接口”! 而是一柄约十厘米长、闪烁着暗淡幽光的黑色金属短刃! <<run window.discoverCodexEntry('interface_device')>> [img[assets/images/items/item_life_knife.webp]] 它的形状狰狞,让你猛地想起之前在小镇入口遭遇的那个空壳武士手中武士刀的某个部件,但眼前的这个更加粗糙、更加原始,散发着一种……邪恶的气息。 刀刃上布满了暗红色的、早已干涸发黑的斑驳血迹。 有些地方的血污甚至厚得结成了块状,散发着淡淡的铁锈腥气。 这<b>绝对</b>是一件用来杀戮,而且已经杀戮过的武器! 她的眼神冰冷,不带一丝情感,但又似乎深藏着某种未知的决绝。 她将那柄沾满干涸血迹的短刃,缓缓抵在了你的腹部皮肤上。 冰冷的触感让你全身的汗毛瞬间竖立! “系统显示,需要将此……‘接口’刺入你的生物组织,建立连接。” 多米尼克的<b>呼吸</b>就在你的耳边。这姿势充满了绝对的威胁和不容置疑的控制。 “协议描述仅为‘建立连接以启动修复’,未说明具体过程和潜在副作用。虽然我并没有……相关的安全规范。” 她的动作带着一种令人心寒的、仿佛演练过无数次的熟练感。 这不是请求。更像是最后的通牒和程序执行前的确认。 你被她牢牢控制住,那柄沾满干涸血迹的短刃正一分一毫地压向你的要害。 [[(声音颤抖)“等…等等!你要干什么?!”|Ch1_Contact_Refuse_Temp]] [[(闭上眼)“……动手吧。如果这是唯一的方法。”|Ch1_Contact_Accept]]
<<set $contactStatus = "accepted">> 多米尼克没有回应你的话语。 她只是手臂微微用力。 <b>嗤——!</b> 一声沉闷的、令人牙酸的撕裂声。 那柄冰冷、染血的短刃毫不犹豫地刺入了你的腹部! 剧烈的疼痛瞬间炸开! 像是有烧红的铁条捅了进来,然后狠狠搅动! 你几乎窒息,眼前一阵发黑。 你感觉到温热的血液立刻从伤口处涌了出来,迅速浸湿了你的衣服。 /* <<audio "sfx_blade_stab_flesh" play>> */ /* <<audio "sfx_player_gasp_pain" play>> */ [[(本能地挣扎)|Ch1_Contact_Struggle]] [[(强忍痛苦,保持静止)|Ch1_Contact_Still]]
<<set $domOpinion += 1>> /* 可预测的正常反应,略微提升好感 */ 剧痛之下,你的身体本能地想要挣扎,想要蜷缩,想要逃离这痛苦的源头。 但多米尼克的机械臂如同钢铁铸成的钳子般,牢牢地固定着你,让你动弹不得。 "请...不要动。"她的声音依然平静,但似乎带着一丝难以察觉的、并非担忧的紧迫感,更像是在确保实验流程的稳定。 你被她完全压制住了。 除了痛,还是痛。 [[继续|Ch1_Contact_Process]]
你死死咬紧牙关,指甲几乎掐进了手心。 全身的肌肉因为剧痛而紧绷,但你强迫自己保持静止。 多米尼克似乎察觉到了你的克制。 "保持静止...很好。这样能减少不必要的组织损伤。"她的声音没有波澜。 [[继续|Ch1_Contact_Process]]
一股强烈的、冰冷的能量流,从刺入你腹部的短刃处疯狂涌入你的身体! 就像在严冬腊月被当头浇下一桶冰水,寒意刺骨! 然后,这股冰冷的能量似乎被某种无形的力量引导着,流向紧抱着你的多米尼克。 她环绕着你的手臂收得更紧了。 短刃在你体内似乎微微转动了一下,带来一阵阵更加剧烈的、撕裂般的剧痛。 /* <<audio "sfx_energy_flow_intense" play>> */ 你被迫以极近的距离,看着她那只原本破损的机械臂上,蓝色的能量电弧疯狂流窜、跳跃。 那些断裂的线缆、焦黑的骨架、破损的装甲,此刻正以肉眼可见的惊人速度被修复、重组、闭合。 新的金属闪耀着寒光,结构精密得令人心惊。 她的身体微微颤抖着,似乎也在承受着某种巨大的负荷,抑或是能量过载的反应。 她的眼睛在你因剧痛而模糊的视线中,闪烁着复杂难明的光芒。 <<silently>> /* 内部信息流 (Dominique's perspective): */ /* "[警告!检测到人类生命特征因创伤波动!Sigma协议可用:吸收人类生物能量以优化修复并获取额外增幅? Y/N] 风险:人类有高概率死亡。" */ /* Dominique's internal process: Analysis... Risk exceeds mission parameters for host preservation... Decline. */ /* "[Sigma协议已拒绝。启动标准修复流程。分析:人类创口有持续失血风险。执行创口紧急生物凝结处理。]" */ <</silently>>\ 能量流的强度很快开始减弱。 冰冷感渐渐退去。 <b>突然,刺入点传来一阵奇异无比的感觉!</b> 刚才那足以让人昏厥的剧痛,如同被一只无形的大手瞬间抹去! 潮水般迅速退去! 取而代之的,是一种难以置信的、温暖而舒适的感受。 仿佛卸下了千斤重担,一种难以言喻的轻松感传遍全身! 之前被撕裂的痛楚,现在被一种近乎神圣的舒畅感所取代。 你甚至能清晰地感觉到,伤口周围的肌肉和皮肤,在快速地、无痛地自行愈合着。 /* <<audio "sfx_healing_magical_warmth" play>> */ /* 温暖治愈音效 */\ 随后,那柄短刃被轻柔地、缓慢地从你腹部抽出。 整个过程几乎没有带来任何不适,只有一种奇特的空虚感。 多米尼克松开了对你的钳制。 你双腿一软,踉跄着后退几步,几乎要瘫倒在地。 你下意识地捂住自己的腹部——那里<b>完全没有痛感</b>! 只有一片令人安心的、持续的温暖。 低头看去。 衣服上的破洞和上面浸染的大片血迹还在,狰狞刺目。 但破洞之下的皮肤,已经完好无损! 甚至连一道像样的疤痕都几乎看不见,只有一小块区域的皮肤颜色比周围略微浅淡一些,触感温热。 /* <<audio "sfx_blade_retract_smooth" play>> */ /* 轻柔拔出音效 */\ 多米尼克站在你面前。 她抬起自己那只刚刚修复完成的手臂,五指张开、握紧,关节发出顺畅而细微的轻响。 手臂表面闪耀着崭新的金属光泽,结构精密,充满了力量感,与之前那副残破的样子判若两臂。 之前轻微的电子颤音,似乎也从她的声音中彻底消失了。 她的声音依旧平稳,但更加流畅,更像……一个真正的人类。 她低头看了一眼自己焕然一新的手臂,又低头看了看你腹部那几乎消失的伤口标记,以及地上那滩尚未干涸的、属于你的血迹。 “连接已断开。高级修复程序完成度85%。核心功能及武器系统恢复。” 她收回了短刃,手臂外部的装甲平滑地闭合,不留一丝缝隙。 声音依旧平稳, “记录:人类生物信号稳定。设备执行了……异常高效的创口修复,其效果超出预期参数。记录为特殊现象。” 她抬起头,看向你。 那双黄色的眼睛在你身上停留了片刻,没有了之前的警惕和锐利。 “已记录你的…配合。” <<set $domOpinion += 4>> /* 冒着生命危险的接受,大幅提升好感 */ <div class="transition-text">你还沉浸在刚才那如同从地狱瞬间被拉回天堂的诡异体验中,脑子一片混乱。</div> [[(处理这诡异的感觉)|Ch1_Post_Stab_Recovery]]
你靠在冰冷的木墙上,大口喘着气。 手不由自主地反复抚摸着自己的腹部。 那里温暖、完好,仿佛刚才那撕心裂肺的剧痛,以及被利刃贯穿身体的触感,都只是一场无比真实的噩梦。 但这绝不是梦。 衣服上的血洞和血迹,还有地上那滩刺目的暗红色,都在无声地提醒你,刚才究竟发生了什么。 这种巨大的、荒谬的反差感,让你感到一阵强烈的眩晕和不真实。 多米尼克站在不远处,平静地观察着你。 她的眼睛微微闪烁着,像是在一帧一帧地记录和分析你的生理反应和细微的表情变化。 她没有催促你。 也没有表示任何人类常有的关心或歉意。 只是像一个严谨的研究员观察着重要的实验对象一样,等待着。 你该怎么做? [[(深吸气,强作镇定)“……继续说吧。”|Ch1_DialogueCheck]] /* 尝试恢复对话 */ [[(捂着腹中,声音还有些抖)“那到底是什么东西?!为什么会这样?!”|Ch1_Post_Stab_QueryDevice]] /* 追问装置和效果 */ [[(靠着墙,沉默不语)……|Ch1_Post_Stab_Silence]] /* 需要时间消化 */
你忍不住指着她那只已经收回短刃、完好无损的手臂,又指了指自己腹部那片完好如初的皮肤,声音带着劫后余生般的惊魂未定的颤抖: “那到底是什么东西?!为什么…为什么会这样?!” 多米尼克平静地回答,声音流畅而清晰: “该装置是修复协议的执行终端。其具体构造和工作原理,相关数据缺失。” “至于你创口的超速愈合效果……系统记录为异常现象,已超出已知生物工程学和组织再生学的范畴。无法解释。” 她的回答精准而冰冷。 没有任何安慰,也没有进一步说明的意图,仿佛只是在陈述一个数据库中的条目。 <div class="transition-text">她的回答没有解开你心中的任何疑惑,反而让谜团更深了。但是,腹部那持续的温暖感,正一点点抚平你剧烈波动的心绪。</div> [[“……”(继续问其他问题)|Ch1_DialogueCheck]]
你选择沉默。 靠着粗糙的墙壁,你试图平复狂跳的心脏和仍然一片混乱的思绪。 刚才的经历太过于冲击和诡异,你需要时间来消化这超出常识的现实。 多米尼克静静地等待了几十秒。 见你没有进一步的动作或询问,她似乎判定你暂时进入了一个稳定的状态。 “如无其他即时威胁或优先疑问,建议继续进行信息交换,或规划下一步行动。”她以一种略显程序化的口吻说道。 <div class="transition-text">她这种超乎寻常的冷静,反而让你稍微回过神来。</div> [[(点头)继续问问题…|Ch1_DialogueCheck]]
<<set $contactStatus = "refused_temp">> 你的声音因为极致的恐惧而变了调,尖锐而干涩。 怎么看,这个所谓的<b>‘副作用’</b>,恐怕都会非常巨大! 甚至可能直接就是要命! 多米尼克抵在你腹部的短刃,微微停顿住了,没有再刺入分毫。 她环绕着你的那只金属手臂,力量似乎也微微松懈了一丝,但并没有完全放开你。 你可以感觉到她身体内部传来的、某种细微的机械运作声,似乎在飞速权衡和计算着什么。 几秒钟的死寂。 空气仿佛凝固了。 “……记录:人类个体在直接致命威胁下,表现出强烈的拒绝反应及求生欲望。” 她缓缓地、一寸寸地松开了对你的钳制。 收回了那柄散发着不祥气息的黑色短刃,手臂外部的装甲随之闭合。 “符合预期行为模式。修复协议暂时挂起。” 她退后一步,与你拉开了大约两臂的距离。 但她的目光依然锁定着你,带着一种冷酷的审视,仿佛在重新评估你的价值和威胁等级。 空气中弥漫着未曾散去的杀意和高度的紧张感。 你扶着墙壁,才勉强站稳,冷汗已经浸湿了后背。 “那东西……到底是什么?”你定了定神,声音仍有些干涩沙哑。 [[继续…|Ch1_DialogueCheck]]
<<nobr>> <<set $askedTech = true>> <<if $contactStatus is "accepted">> 你的目光无法从她那只现在看起来完好无损、闪耀着冰冷金属质感、结构异常精密复杂的机械手臂上移开:“你的手臂……那是某种高科技的义肢吗?”<br> <<else>> 你的目光无法从她那只仍在不时闪烁着微弱电火花、暴露出复杂内部线缆和焦黑金属骨骼的机械手臂上移开:“你的手臂……那是某种高科技的义肢吗?”<br> <</if>> <</nobr>>\ 多米尼克低头看了一眼自己的手臂。 然后用一种平静得近乎像是在宣读产品规格参数的语气回答: “不只是手臂。我的有机生物组织占比低于12%。其余部分由高强度记忆合金骨架、多层复合装甲、微型化能量传导系统和模块化多功能单元构成。” “其功能包括但不限于集成式远程及近战武器系统、多频谱高级传感器阵列和极端环境适应模块。” 她停顿了一下,抬眼看向你,黄色的眼眸平静无波,像两潭深不见底的寒潭: “用你们人类通常的定义来说,我更像是一台披着仿生外壳的……高度智能化的战争机器。和你,在本质上,完全不同。” 她说完,静静地看着你,等待你的反应。 /* 技术问题的子选项 */ [[“但你看起来、说话的方式,还是很像人类。”|询问机械-回应][$tempQuestionResponse = "“是吗?也许是核心处理器的情感模拟与交互程序仍在正常工作,或者说,设计得足够逼真。但这并不改变我的本质构造和预设功能。”她语气平淡,不带任何个人情感色彩。"]] [[“所以你本质上只是个机器?没有感情?”|询问机械-回应][$tempQuestionResponse = "“没错,你可以这么理解。情感对我来说,是低效且非必要的运算负担,甚至可能干扰任务的精确执行。”她语气平淡,只是在陈述一个对她而言如同1+1=2般清晰的事实。"]] [[“战争……机器?”|询问机械-回应][$tempQuestionResponse = "“根据现有的结构特征和内置功能分析,这是目前最为贴切的自我描述。”她没有肯定或否定,只是基于逻辑推断给出的结论。"]]
<<nobr>> /* 显示临时回应(如果有) */ <<if $tempQuestionResponse neq "">> $tempQuestionResponse<br> <<set $tempQuestionResponse = "">> /* 清空临时回应 */ <</if>> <</nobr>> <<include "Ch1_DialogueCheck">>
<<set $askedMotivation = true>> 你看着她,又想起自己一路追踪那个模糊信号来到这里的最初目的。 你忍不住问道:“那你……知道‘异能者保留地’吗?我听说这个小镇就是……或者曾经是。你知道这里有异能者吗?” 多米尼克微微歪了歪头,白色的发丝随之晃动。 她的眼睛似乎闪过一串快速流动的数据流。 片刻后才说:“‘异能者保留地’……数据库中无相关条目信息。” “‘异能者’……该词汇定义模糊,缺乏可量化的、精确的生物或物理学数据作为判定标准。根据我的自我诊断与结构分析,我是一个基于硅基芯片和金属合金技术的机器人造物,不符合通常意义上对‘异能者’的描述。” 她停顿了一下,补充道:“至于这个小镇内部是否存在你所说的‘异能者’,你是我在这个小镇区域内接触到的第一个具有清晰生命信号的独立个体,核心数据库中亦无此地相关的历史居民或活动记录。因此,无法确认。” <<include "Ch1_DialogueCheck">>
<<BGMCheck "bgm_domBH">>\ <<nobr>> /* 这个段落会在 Ch1_Post_Stab_Recovery, Ch1_Post_Stab_QueryDevice, Ch1_Post_Stab_Silence, Ch1_Contact_Refuse_Temp 后被调用 */ <<if $contactStatus is "accepted">> <div class="context-text">尽管腹部那奇异的温暖感觉非常真实,但刚才被冰冷利刃刺穿身体的记忆,以及那无法形容的剧痛,依然清晰无比地烙印在你的脑海中。你努力集中精神,思考着眼前这个充满了无数谜团的机械少女。</div><br> <<elseif $contactStatus is "refused_temp">> <div class="context-text">刚才那场几乎是以命相搏的紧张对峙让你心有余悸。你和多米尼克之间,此刻保持着一种微妙而警惕的距离。</div><br> <<else>> /* pending 状态 */ <</if>> <br> <<if not $askedIdentity>>[[“你是谁?”|询问身份]]<br><</if>> <<if not $askedTown>>[[“这个小镇怎么了?”|询问小镇]]<br><</if>> <<if not $askedStreetDamage>>[[“旅馆外的路面融毁和墙洞是怎么回事?”|询问街道异常]]<br><</if>> <<if not $askedCamera>>[[“你知道小镇的监控中心在哪吗?”|询问监控]]<br><</if>> <<if not $askedTech>>[[“你的手臂...是什么技术?”|询问机械]]<br><</if>> <<if not $askedMotivation>>[[“你知道‘异能者保留地’吗?”|询问动机]]<br><</if>> <<if not $askedPurpose and $contactStatus neq "accepted">> /* 如果已经接受过,则不再问目的 */ [[“你说需要人类...是什么意思?”|Ch1_AskPurpose]]<br> <</if>> <br> <</nobr>> /* 检查是否所有问题都已触发过 */ <<if $askedIdentity and $askedTown and $askedStreetDamage and $askedCamera and ($askedPurpose or $contactStatus is "accepted") and $askedTech and $askedMotivation>> /* 所有问题都问完了 (接受后目的问题自动跳过) */\ <<if $contactStatus is "refused_temp">> <hr> 多米尼克再次抬起她那只仍未完全修复、不时闪烁着细微电火花的机械手臂。 腕部的装甲无声地滑开,再次露出了那柄沾染着干涸暗红血迹的黑色短刃。 电火花在她手臂的破损处跳跃得似乎比刚才更频繁了一些,发出轻微的“噼啪”声。 “修复协议仍处于挂起状态。我的机体功能正在持续下降,预计将在17分钟后低于最低运作阈值。”她的声音依旧平稳,不带情感,但你能从中听出一丝……并非属于她自身,而是刻意模仿出的、类似于人类的紧迫感? “根据当前状况分析,并基于你的个体表现,你有两个选择: 一是,重新考虑协助我完成修复协议。风险未知,但这是恢复我全部功能的唯一已知途径。 二是,立刻离开这里。我无法保证你的安全,也无法提供任何形式的帮助。外面的那些‘东西’……它们的行为模式正在发生改变,根据短期数据分析,其攻击性和集群狩猎倾向正在提升。” 她的眼睛锁定你,黄色的瞳孔中没有任何情绪波动,只是在静静地等待你的最终决定。 [[“……我帮你。”|Ch1_Contact_Accept_SecondChance]] [[“我……我还是不能……对不起。”(拒绝并尝试离开)|Ch1_Contact_Refuse_Final]] <<else>> /* $contactStatus is "accepted" or "pending" (pending理论上不会到这里) */ <hr> 你感觉该问的似乎都已经问了。 但关于这个死寂的小镇,关于眼前这个神秘的机械少女,她从何而来,为何在此,又为何是你……无数的谜团反而变得更多、更深了。 多米尼克似乎也完成了某个预设的信息交换与评估的阶段性目标。 <<if $contactStatus is "accepted">> 她活动了一下那只已经完全修复、闪耀着崭新金属光泽的手臂。 关节活动流畅无声,充满了精密的力量感。 之前说话时偶尔带有的极轻微电子颤音,此刻也已完全消失,声音平滑得如同最完美的人声。 “信息初步交换完成。根据现有数据和环境综合评估,我的任务完成可能性大大提高。” <<else>> /* 理论上只有 accepted 会到这里,以防万一 */ 她看了一眼自己仍在不时闪烁着电火花、结构破损的机械手臂。 “信息初步交换完成。但我的修复协议仍未执行,机体功能受限,正在持续衰减。” <</if>> 对话似乎暂时告一段落。 木屋内再次陷入一种有些压抑的沉默。 只有窗外偶尔传来的、风吹过废弃建筑的呜咽声。 [[继续|Ch1_CheckForThreat]] <</if>> <</if>>
/* 从拒绝后再次接受 */ <<set $contactStatus = "accepted">> 你深吸一口气。 看着她眼中那平静无波,却又仿佛能洞察一切的黄色光芒。 最终,还是点了点头。 “……我帮你。” 多米尼克似乎对此有些意外,她的眼睛非常轻微地闪烁了一下,像是在瞬间完成了某种复杂的运算和确认,以确保她正确理解了你的意图。 “确认。请准备,连接过程可能……产生不适。” 她再次向你靠近。 这一次,她的动作比之前稍缓了一些,但依旧带着一种不容置疑的、冰冷的气势。 那只刚修复不久、闪耀着金属光泽的冰冷手臂再次环住了你。 那柄不久前曾让你感受到死亡威胁的、沾染着干涸血迹的黑色短刃,再次抵上了你的腹部。 <<goto "Ch1_Contact_Accept">> /* 跳转到接受流程,但跳过第一次的文字描述 */
/* 最终拒绝 */ <<set $contactStatus = "refused_final">> 你颤抖着,摇着头。 对未知的恐惧,对那柄凶器的恐惧,最终还是战胜了其他所有的情绪。 “对不起……我真的……我做不到……我得走了。” 多米尼克看着你,眼中没有任何失望、愤怒或者其他任何可以被称之为“情绪”的波动。 她只是平静地收回了那柄黑色的短刃,手臂装甲闭合。 “理解。个体生存优先原则。祝你好运。” 她没有试图阻止你,也没有再多说一个字。 只是默默地转身,靠回了墙边,低头看着自己那只仍在冒着火花、不断恶化的受损手臂,仿佛陷入了某种低功耗的待机状态。 你最后看了她一眼,然后猛地转身,踉跄地、几乎是逃跑般地冲出了木屋。 背后,是无声的沉默,和她逐渐被阴影吞噬的身影。 /* 这里可以根据后续剧情设计玩家独自离开后的遭遇,可能会更危险,例如直接遭遇更强的敌人或者陷入绝境 */\ [[离开木屋,独自面对外面未知的恐怖…|Ch1_LeaveCabin_Alone]]
突然! 就在屋内再次陷入沉默的瞬间。窗外传来一阵低沉的、不似人类的嘶吼声! 紧接着,是某种沉重物体在地面上拖沓、摩擦的脚步声,由远及近! 有什么东西,正在快速靠近这里! [[有什么东西正在靠近这里!|外部威胁]]
<<nobr>> /* <<cacheaudio "sfx_monster_nearby" "assets/audio/sfx/monster_nearby_growl.ogg">> */ /* <<cacheaudio "sfx_handgun_materialize" "assets/audio/sfx/handgun_materialize.ogg">> */ /* <<cacheaudio "sfx_handgun_shot" "assets/audio/sfx/handgun_shot.ogg">> */ /* <<cacheaudio "sfx_monster_die" "assets/audio/sfx/monster_die.ogg">> */ /* <<audio "sfx_monster_nearby" play>> */ <<FadeoutBGM>> <</nobr>>\ 那声音,越来越近。 像是什么东西在拖拽,沉重地刮擦着屋外腐朽的木板,发出令人牙酸的噪音。 你下意识地屏住了呼吸。 <<timed 1s>> /* <<audio "sfx_handgun_materialize" play>> */\ 多米尼克猛地抬起头。 刚才还算平静的眼神,瞬间变得像寒冬的湖面,冰冷而锐利。 你甚至没看清她有什么动作。 只觉得她那只<<if $contactStatus is "accepted">>完好的<<else>>仍在闪烁着细微火花的<</if>>机械手臂旁的空气,似乎发生了某种难以名状的波动,光线都仿佛被微妙地扭曲了一下。 下一刻,一把手枪已经握在她手中。 那是一把造型极为简洁的手枪,通体呈现出一种哑光的金属黑色,却又在某些边缘反射出几乎刺眼的冷光,崭新得不像这个世界的产物。 [img[assets/images/items/item_pistol.webp]] <<timed 1s>> /* <<audio "sfx_handgun_shot" play>> */\ 她甚至没有站起身。 只是身体微微一侧,手臂如闪电般抬起,枪口直指窗户。 “砰!” 一声清脆、爆裂般的巨响,震得你耳膜嗡嗡作响! 子弹精准地命中了木框窗户。老旧的玻璃瞬间向内外爆开,无数细小的碎片在空中翻飞,阳光下折射出点点寒芒。窗户中央留下一个不规则的破洞,边缘是密密麻麻的蛛网状裂痕。 透过破碎的洞口,你似乎瞥见一个扭曲、巨大、颜色暗沉的残影晃动了一下,但快得让你无法分辨。 <<run window.discoverCodexEntry('broken_window')>> <<timed 0.5s>> /* <<audio "sfx_monster_die" play>> */\ 窗外,一声短促而嘶哑的,像是某种东西被撕裂的怪异叫声戛然而止。 紧接着,是重物砸落在地的闷响。 一切又迅速回归死寂。 只有空气中弥漫开来的,刺鼻的硝烟味,以及窗框上还在晃动、随时可能坠落的玻璃碎片,证明着刚才发生的一切并非幻觉。 你这才发觉,自己一直紧绷着身体,直到硝烟味钻入鼻腔,才猛地呛咳起来,胸腔因为缺氧而火辣辣地疼。 <<timed 2s>> /* <<audio "bgm_dom" loop volume 0.5 fadein 1>> */\ 多米尼克手中的手枪,如同出现时一样突兀,化作无数细小的光点,融入空气,消失不见。 她缓缓转过头,看向你。 脸上依旧没有任何表情,仿佛刚才只是随手拍死了一只闯入房间的蚊子。 你目睹了这完全超出理解范围的一幕,心脏在胸腔里疯狂擂动,几乎要从喉咙里跳出来: [[(震惊)“枪?!你从哪里拿出来的?!”|外部威胁-回应-枪械]] [[(后退,声音发颤)“刚、刚才外面那是什么?!还会来吗?!”|外部威胁-回应-怪物-恐惧][$domOpinion -= 2]] [[(后退半步)“外面那是什么东西?!还有吗?”|外部威胁-回应-怪物][$domOpinion -= 1]] [[(深吸一口气,强作镇定)“……反应很快。”|外部威胁-回应-镇定][$domOpinion += 1]] <</timed>> <</timed>> <</timed>> <</timed>>
<<set $tempQuestionResponse = "“枪?只是标准配置之一。”她平静地回答,“至于来源……未知。弹药也是。系统显示库存充足,无需关注补给问题。”">> <<nobr>> /* 显示临时回应 */ $tempQuestionResponse <<set $tempQuestionResponse = "">> /* 清空临时回应 */ <</nobr>>\ 她顿了一下,补充道:“理论上我可以生成多种武器形态,包括能量武器或重型火力。但分析表明,针对目前环境下的低级威胁,标准口径手枪和榴弹发射器是效率最高的选择。” [[“那外面的东西是什么?”|外部威胁-回应-怪物]] [[“明白了。”|外部威胁-回应-镇定]]
<<nobr>> <<set $tempQuestionResponse = "“外部威胁清除。是本地异常生物个体,我称之为‘空壳怪物’。它们没有生命特征,只是活动的驱壳。根据声音判断,刚才暂时只有一只。”">> /* 显示临时回应 */ $tempQuestionResponse <<set $tempQuestionResponse = "">> /* 清空临时回应 */ <</nobr>>\ <<if not visited("外部威胁-回应-枪械")>> [[“那把枪是怎么回事?”|外部威胁-回应-枪械]] <</if>> [[“明白了。”|外部威胁-回应-镇定]]
/* 这是新增的更怂的选项的回应 */ <<nobr>> <<set $tempQuestionResponse = "“外部威胁已清除。是本地异常生物个体,我称之为‘空壳怪物’。<br>它们没有生命特征,只是活动的驱壳。根据声音判断,刚才暂时只有一只。”<br>她看了你一眼,语气没有任何变化,<br>“你的恐惧反应在预期范围内,但过度惊慌会降低生存概率。”">> /* 显示临时回应 */ $tempQuestionResponse <<set $tempQuestionResponse = "">> /* 清空临时回应 */ <</nobr>>\ <<if not visited("外部威胁-回应-枪械")>> [[“那、那把枪……”|外部威胁-回应-枪械]] <</if>> [[“我……我尽量冷静。”|外部威胁-回应-镇定]]
<<nobr>> /* 显示临时回应(如果有) */ <<if $tempQuestionResponse neq "">> $tempQuestionResponse <<set $tempQuestionResponse = "">> /* 清空临时回应 */ <</if>> <</nobr>>\ 多米尼克看了你一眼,眼神中闪过一丝极淡的,几乎无法察觉的赞许: "你的反应……很理性。" "在这种环境下保持冷静,是生存的关键。" <<set $domOpinion += 1>> /* 镇定反应获得好感 */\ [[继续|绘画时刻]]
<<set $drawingsMade = 0>>\ <<BGMCheck "bgm_max">>\ <hr> <<nobr>> <<if $contactStatus is "accepted">> <div class="context-text">木屋内暂时恢复了平静。 角落里,多米尼克偶尔调整着她那只刚刚修复完毕的手臂,发出细微的机件摩擦声。 窗外,风吹过布满裂痕的玻璃破洞,发出呜咽般的声音。 你侧腹那奇异的温暖感依旧挥之不去,与刚才被那东西刺穿的恐怖记忆交织在一起。 你需要做点什么,来整理这一切。</div> <<else>> /* refused_final or refused_temp (理论上到这里应该是 refused_final) */ <div class="context-text">木屋内暂时恢复了平静,但空气中似乎还残留着刚才对峙时的紧张感,以及淡淡的硝烟味。 多米尼克在角落里检查着她那只仍未修复的、闪烁着火花的机械手臂。 窗外,是风的呜咽声。 你需要找回一些熟悉感,来稳定一下几乎要炸开的神经。</div> <</if>> <</nobr>>\ 你下意识地摸了摸口袋。 指尖触碰到了熟悉的速写本和那支用了很久的铅笔。 一种强烈的冲动涌上心头。 你需要把这些记录下来。 用你最熟悉的方式,去理解、去消化这一切。 这是你在大学里,无数个课余的午后,在画室里反复练习素描时养成的习惯。 将复杂的现实拆解成最基本的线条和光影,似乎能让混乱的思绪也跟着变得清晰一些。 你从口袋里拿出速写本,翻开新的一页。 铅笔粗糙的木质笔杆上传来的熟悉触感,让你狂跳的心稍微安定了一些。 多米尼克注意到了你的动作。 她停下了手中的检查,投来一道探究的目光:“记录行为?在这种时候?” 她的语气很平淡,听不出是单纯的好奇,还是带着一丝质疑。 你看着面前空白的画纸,该画些什么呢? [[画下之前遇到的空壳武士|绘画-空壳武士]] [[画下那座石拱桥|绘画-石拱桥]] [[画下眼前这位机械少女多米尼克|绘画-多米尼克]] [[画下空无一人的小镇街道|绘画-空镇街道]] [[画下刚刚被击碎的玻璃窗|绘画-破碎窗]] [[画下那个神秘的"接口"装置|绘画-接口装置]] [[(收起画本)"没什么,只是习惯。"|绘画-放弃]]
你努力回忆着。 之前在石桥附近遭遇的那具冰冷的、散发着不祥气息的铠甲。 它僵硬的动作,挥舞武士刀时带起的风声,以及那种完全没有生命迹象的感觉。 笔尖在纸上快速移动,勾勒出那个让你脊背发凉的身影。 你试图捕捉那种非人的、仿佛被某种看不见的力量操控着的诡异感。 [img[assets/images/cg/cg_ch1_plot_05.webp]]\ [[完成画作|画作完成]]
那座古老而美丽的石桥。 即使是在被那东西追杀的途中,它依然给你留下了深刻的印象。 你凭借着有些模糊的记忆,描绘出石桥坚实的轮廓、桥下流水反射的光影,以及桥面上散落的那些画具。 画着画着,你似乎又回到了那个生死一线的瞬间,冰冷的恐惧感再次攫住了你。 [img[assets/images/scenes/scene_stone_bridge.webp]]\ [[完成画作|画作完成]]
你抬眼,看向角落里的那个少女。 她那一头与这个破败环境格格不入的、柔顺的银白色长发。 她那双总是带着警惕,却又异常平静的眼眸。 以及那只暴露在空气中的、结构极端复杂的机械手臂…… 这一切都充满了难以言喻的神秘感。 你尝试用颤抖的线条捕捉她的轮廓,和她身上那种独特而危险的气质。 [img[assets/images/characters/character_dominique.webp]]\ [[完成画作|画作完成]]
你回想起自己醒来后,第一眼看到的景象。 空旷得令人心慌的街道。 那些被遗弃的商店橱窗,播放着动画片的电视屏幕…… 一种难以言喻的死寂感,如同潮水般将你淹没。 你将这种深入骨髓的空寂和难以名状的诡异感,倾注于笔端。 [img[assets/images/scenes/scene_town_view.webp]]\ [[完成画作|画作完成]]
你的目光,不由自主地移向那扇刚刚被子弹轰碎的窗户。 午后的阳光透过那些不规则的破洞和蛛网般的裂痕射入室内,在地板上投下形状怪诞的光斑。 你仔细观察着那些玻璃碎片的锋利边缘,以及裂纹无序蔓延的走向。 试图捕捉那一瞬间的,剧烈的冲击力,和一种……破碎的美感。 铅笔在纸上游走,勾勒出玻璃在暴力下分崩离析的瞬间。 [img[assets/images/scenes/scene_cabin_interior_window_broken.webp]] [[完成画作|画作完成]]
<<if $contactStatus is "accepted">> 你低头,下意识地摸了摸自己的侧腹。 那里仍然残留着一种奇异的、微弱的温暖感觉。 你小心翼翼地回忆着那个既可怕又神奇的装置——那柄沾染着你血液的黑色短刃。 以及它如何在刺入你体内之后,产生了那种几乎可以说是奇迹的治愈效果。 你的手在纸上游走,试图用线条记录下这个诡异、神秘,又让你感到一丝不安的装置。 <<else>> 你回想着多米尼克手臂上弹出的那个可怕装置——那柄闪烁着寒光的黑色短刃,上面似乎还残留着暗红色的痕迹。 即使只是回忆,也让你感到一阵不受控制的寒意从心底升起。 你的手在纸上游走,试图用线条记录下这个令人极度不安的、致命的武器。 <</if>>\ [[完成画作|画作完成]]
你顿了顿,指尖的铅笔悬在半空。 最终,还是把速写本和铅笔默默地收了起来。 “没什么,只是一个习惯。” 你含糊地回答,没有看她。 也许现在还不是时候。或者,你只是不想让她看到你此刻混乱的内心。 多米尼克没有追问,只是重新开始低头处理自己的手臂,发出轻微的咔哒声。 [[继续|结局对话]]
你停下笔,长长地呼出一口气,看着速写本上刚刚完成的线条。 画得有些潦草,毕竟你的心绪到现在还没有完全平复下来,握笔的手也有些微微发抖。 但它确实将你刚才的感受和所见,忠实地记录了下来。 多米尼克不知何时,已经无声无息地站到了你的旁边。 她微微低着头,目光落在你的画作上。 <<nobr>> <<set $drawingsMade += 1>> <<if visited("绘画-空壳武士")>> "……这就是你遇到的'空壳怪物'。" 她盯着画上的怪物,“你称其为‘空壳武士’吗?细节捕捉很准确。这种视觉记录方式……效率很高。” <<elseif visited("绘画-石拱桥")>> "这座桥……结构很特别。" 她的视线在桥的结构上停留了几秒,“你在这里遭遇了袭击?” <<elseif visited("绘画-多米尼克")>> 她看着画中的自己,沉默了几秒。 然后,她走到窗边,从破碎玻璃不完整的倒影中,瞥了一眼自己的影像。 "……形态描绘符合客观特征。" 她转回头,“你观察得很仔细。” <<elseif visited("绘画-空镇街道")>> "空镇……是的,这就是这里的现状。" 她看着画中萧瑟的街道, "你的画传递出一种……'虚无'感。" <<elseif visited("绘画-破碎窗")>> "玻璃的破碎形态……" 她凑近了一些,仔细看着那些裂纹, "你捕捉到了弹道造成的应力分布。这种物理现象的视觉记录很精确。" <<elseif visited("绘画-接口装置")>> <<if $contactStatus is "accepted">> 她看着画中那个曾经刺入你身体的装置,眼神似乎闪烁了一下,但快得让你无法捕捉。 "这个装置……确实很特别。" 她轻声说, "不知道你为何要记录一个可能会杀死你的武器。但它的本质,恐怕不是简单的线条能够表达的。" <<else>> 她看着画中那个从她手臂弹出的装置,语气依旧平静。 "作为潜在威胁的记录吗?" 她说, "不过你不需要担心,<b>正常情况下<\b>我不会对非目标使用这个装置。" <</if>> <</if>> <</nobr>> 她抬起头,看向你,那双黄色的眸子里似乎多了一点难以理解的东西: “用图形存储信息……某种原始但有效的数据压缩方式。” 她似乎对“绘画”这种行为,有了新的、完全基于逻辑和功能的理解。 <<set $codexUnlocked = true>> <i>速写本(图鉴)已解锁,可以通过侧边栏按钮进入。</i> [[继续|结局对话]]
<hr> <<FadeoutBGM>> /* <<cacheaudio "sfx_alarm" "assets/audio/sfx/alarm_high_priority.ogg">> */\ <<nobr>> <<if $contactStatus is "accepted">> <div class="context-text">木屋内的空气中,还残留着淡淡的硝烟味。 除此之外,似乎还有一丝极不易察觉的……像是金属被加热和某种能量逸散后的奇怪气味。 你侧腹那持续的温暖感觉,让你稍微安心了一些,但也让你对眼前这个神秘的少女,更加警惕,也更加好奇。</div> <<else>> /* $contactStatus is "refused_final" */ <div class="context-text">木屋内的空气中,还残留着淡淡的硝烟味,以及之前剑拔弩张的紧张气氛。 你和多米尼克之间,似乎隔着一道无形的、冰冷的屏障。</div> <</if>> <</nobr>>\ 多米尼克再次看了你一眼,眼神平静无波,仿佛你的存在与否,对她接下来的任何行动都不会产生丝毫影响。 <<nobr>> <<if $contactStatus is "accepted">> “修复程序已完成部分。核心功能恢复。” 她的声音听不出情绪,“该装置产生的异常效应已被系统记录。感谢你的配合。” 她第一次,对你说了“感谢”这个词。 但语气依旧平淡得像是在读取一段与己无关的文本。 <<else>> /* $contactStatus is "refused_final" */ “你的选择,符合逻辑。” 她说,“在未知环境中,保持警惕是必要的生存策略。” 她停顿了一下,补充道:“虽然,我的火力……对于你这样的非武装碳基生命体而言,是绝对致命的。不过,你并非我的当前任务目标。” <</if>> <</nobr>>\ 她再次停顿,似乎在整理内部信息流,然后继续说道: “你之前提到,你来到这里,是为了寻找‘异能者保留地’?” 你点点头,喉咙有些干涩:“是的,只是在一些非常古老的网络BBS上看到过一些传闻……没想到会是这样。” 她以一种纯粹分析的口吻回应:“人类的好奇心,有时会导致无法预料的,且往往是负面的后果。本地数据库中,无任何关于‘异能者保留地’的相关信息条目。” 空气再次陷入一种令人窒息的沉默。 她凝视着前方空无一物的墙壁,像是在读取某种你看不到的内部数据投影,用一种平稳到几乎不带任何人类情感波动的语调说道: <<nobr>> <<if $contactStatus is "accepted">> “我的首要指令是执行‘清除’任务。具体目标未知,相关行动细节缺失。但此任务拥有最高优先级。” “本机系统机能已恢复至安全阈值以上,任务理论完成概率得到小幅提升。” “你的存在……目前被判定为一个具有特殊观察价值的,非敌对变量。” <<else>> /* $contactStatus is "refused_final" */ “我的首要指令是执行‘清除’任务。具体目标未知,相关行动细节缺失,本机系统仍存在未修复的严重损伤。” “但此任务拥有最高优先级,必须执行。” “你的存在……目前被判定为一个与任务目标无直接关联的,中立变量。” <</if>> <</nobr>>\ 她的话音刚落。 突然,她微微侧过头,那双没有焦点的黄色眼眸猛地转向窗外,仿佛穿透了木墙。 /* <<audio "sfx_alarm" play>> */ “警报。侦测到多个高能量信号正在快速接近。” “数量:3,5,12……持续增加中。” “威胁等级评估……上升。” “推测由刚才的枪声音爆,以及目标消除时产生的能量波动所引发。” “警告。” 她的声音依旧平稳得可怕,像是在播报一条与她毫不相关的,普通的天气预报,听不出任何人类应有的紧张或急促。 <p style="color: green; font-weight: bold; margin-top: 2em;"> (第一章 结束) (危机骤临,未完待续……) </p> [[怎么办!|Chapter2_Start]]
/* 独自离开 */\ 木屋的门在你身后合上,将那股几乎令人窒息的氛围隔绝开来。 你站在空无一人的街道上。两旁的房屋窗户漆黑,像空洞的眼窝。 风吹过,卷起几片枯叶,在地面上摩擦出沙沙的声响。除此之外,一片死寂。 你拿出手机。没有信号。屏幕上孤零零的“无服务”字样格外刺眼。 放眼望去,街道向前延伸,消失在薄雾弥漫的远方。你看不到一个人影,听不到一丝人类活动的声音。 你朝前走了几步。 然后又走了几步。 脚步声在空旷的街道上回荡,显得有些突兀。 突然—— “砰!” 一声枪响,尖锐,短促,撕裂了小镇表面的宁静。 声音是从你刚刚离开的小木屋方向传来的。 /* <<audio "sfx_handgun_shot" play>> */\ /* 播放枪声音效 */\ 心脏猛地一跳。 [[(什么情况?!)回去看看!|Ch1_ReturnToCabin]] [[(与我无关…)继续离开|Ch1_KeepLeaving]]
那声枪响在你脑中挥之不去。 你停下脚步,望向身后的小木屋。 最终,你还是转过身,朝着木屋跑去。 你放轻脚步,靠近木屋的门,轻轻推开一道缝隙。 屋内的景象映入眼帘:多米尼克站在一扇破裂的窗户旁。窗户的玻璃碎了一地,闪着微光。 她手中,一团正在消散的光粒勾勒出武器的残影,很快便消失在空气中。 “你回来了。”她目光转向你,声音听不出什么情绪。 “枪声会把它们引过来。更多。” 她用下巴点了点窗外,那些街道深处的阴影。 “一个人走,只会死得更快。我的建议没变:一起,机会更大。” [[“……好吧,一起走。”|Ch1_LeaveCabin_Rejoin]] [[“我还是想自己试试……”|Ch1_KeepLeaving_SecondChance]] /* 再次拒绝 */\
/* 从返回木屋后重新加入 */\ 你看了看她,又看了看窗外那些蠢蠢欲动的黑暗。 你点了点头。 “好。” 多米尼克也只是点了点头,没有多余的表情,转身走向门口。 [[尝试让自己冷静下来|绘画时刻]]
<<FadeoutBGM>>\ 你咬了咬牙。 那声枪响,那些麻烦……你不想再管了。 你只想离开这里。越快越好。 你转过身,加快了脚步,沿着街道向前,远离那间木屋。 你越走越快。 周围安静得有些过分。 天色逐暗,路灯明明灭灭,投下摇晃的光影,让街道两旁的建筑显得有些扭曲。 空气似乎变冷了。 你听到了什么。 一种低沉的、拖沓的声音。 不是一个,而是很多。 从街道的前方,从两旁的巷道,从你的身后……四面八方。 你的脚步慢了下来。 街道的角落,建筑的阴影里,一个个黑影缓缓显现。 它们的身形扭曲,不似人形,更像某种……“空壳”。 动作僵硬,一步一步,朝你围拢过来。 它们的眼中,闪烁着微弱的、非人的红光。 你停下了脚步。 你被包围了。 无路可逃。 [[……|Ch1_Death_AloneOutside]]
/* 再次拒绝离开 */\ 你看着多米尼克,又看了一眼她身旁那扇破碎的窗户。 你摇了摇头。 “不……我还是自己走。” 你没有再给她说话的机会,转身就跑,再次冲出了木屋。 这一次,你没有回头。 多米尼克站在原地,看着你的背影消失在门外,那扇破窗吹进来的风扬起了她的发梢。 她没有动,也没有出声。 [[继续离开|Ch1_KeepLeaving]] /* 再次离开,进入被包围结局 */\
<span class="death-ending">(结局 - 无人生还的街道)</span> 恐惧像冰冷的潮水淹没了你。 你猛地转身,试图寻找逃跑的路线。 但每一个可能的出口,都被那些“空壳怪物”堵死。 它们越逼越近,口中发出意义不明的嘶吼,腐朽的气味扑面而来,令人作呕。 你挥舞手臂,徒劳地想要推开它们。 一只冰冷的、带着铁锈和泥土混合气味的手爪抓住了你的手臂。 紧接着,是第二只,第三只…… 巨大的力量将你拽倒在地。 天空最后映入你眼帘的,是无数扭曲、佝偻的身影,它们彻底淹没了你。 耳边是它们满足般的低吼。 “咚。” 你的头磕在了冰冷的路面上。 一个清晰的念头,如同闪电般划过你最后的意识: “我……真不该来这个该死的小镇……” 你的旅程在这里戛然而止。 [[重新开始这一切|抵达木屋]] /* 提供重新开始的选项 */\
<<silently>> /* 设置章节变量 */ <<set $chapter to 2>> /* 初始化本章变量 */ <<set $enemiesApproaching to true>> <<set $enemiesEngaged to false>> <<set $shieldAwakened to false>> <<set $playerTriedGun to false>> /* 玩家是否尝试过捡枪 */ <<set $playerHitCheck to false>> /* 玩家本章是否被击中过(用于触发特殊体质) */ <<set $explainedShield to false>> <<set $chapter2_bossDefeated to false>> /* 标记Boss战是否完成 */ <<FadeoutBGM>> <<CacheBGM "bgm_monster">> <<CacheBGM "bgm_chase">> <</silently>> 木屋内的空气沉重得几乎凝固,残余的硝烟味丝丝缕缕,与死寂交织在一起。 多米尼克检查完了她的机械手臂,金属机件复位的轻微声响,在寂静中显得格外清晰。 她抬起头,专注而锐利的目光随即锁定在你身上。 然而,尽管她的动作、她的气息都带着一种非人的冰冷与精准,可你觉得,她的眼睛……<b>完全就和人类一模一样</b>。 [[开始章节|Chapter2_Title]]
<div class="title-text">第二章 闪耀裂纹</div>\ 本章节你可能会遇到: 街道追击-跑酷战斗 信任危机-沟通挑战 精英敌人-强敌战斗 秘密觉醒-理解运用 [[继续]] [[第二章打磨中,敬请催更!记得反馈第一章哦!你的游玩与反馈就是最大的支持!]] QQ群:1028122611 // [[开始章节|Ch2_Besieged]]
<div class="title-text">第二章 闪耀裂纹</div>\ <<silently>> /* 音效缓存 */ /* <<cacheaudio "sfx_monster_multiple" "assets/audio/sfx/monster_multiple_approaching.ogg">> */ /* <<cacheaudio "sfx_arm_transform" "assets/audio/sfx/arm_transform_heavy.ogg">> */ /* <<cacheaudio "sfx_rifle_materialize" "assets/audio/sfx/rifle_materialize.ogg">> */ <<BGMCheck "bgm_monster">> <</silently>> 木屋外,低沉的嘶吼、拖沓的脚步和金属刮擦声愈发密集,从四面八方汇聚而来。透过木板缝隙,可以看到扭曲的人影在外面移动,它们的动作僵硬,却带着一种非人的压迫感。数量远不止一个。这间脆弱的小木屋已被包围。 多米尼克站起身,<<if $contactStatus is "accepted">>修复后的<<else>>依旧带着明显损伤痕迹的<</if>>机械手臂内部发出细微的运作声。她的眼神冰冷,快速扫过门窗,评估着外部威胁。 “它们被吸引过来了。数量很多,已被包围。” 她冷静地陈述事实,声音没有一丝波澜。“固守等于等死,必须突围。” 她转向你:“准备好。跟紧我,不要掉队。外面的东西……处理起来很麻烦。” [[“你的手臂……到底是什么技术?”|Ch2_BreakoutPrep_TechAwe]] [[(点头)“我准备好了。”|Ch2_BreakoutPrep_TechAwe][$domOpinion += 1]] /* 理性、准备就绪,提升好感 */ [[(深吸一口气)“它们……看起来很危险。”|Ch2_BreakoutPrep_Concern]] /* 表达担忧,中性反应或略微降低好感,视后续行动 */
/* <<audio "sfx_arm_transform" play>> */\ 多米尼克没有回答。她的右臂在一阵流畅<<if $contactStatus is "accepted">>且迅速<<else>>但略带卡顿<</if>>的机械变形声中展开、重构,变成一个炮口闪烁着幽蓝能量光芒的榴弹发射器形态。同时,她左手边的空气扭曲,一把线条硬朗的突击步枪凭空出现,被她稳稳握住。 /* [img[assets/images/cg/cg_ch2_plot_01_transform.webp]] */\ “时间不多。”她检查武器,炮口与枪口指向门口,“跟紧,保持警惕,避免被抓住。” [[“……好!”|Ch2_BreakoutPrep_Ready]]
你看着外面影影绰绰移动的轮廓,听着逐渐逼近的恐怖声响,声音略显干涩:“它们……看起来很危险。” 多米尼克看了你一眼,眼神没有温度:“恐惧无法改变现状。” 她说着,右臂变形为榴弹发射器,左手物质化突击步枪。<<if $contactStatus is "accepted">>变形过程流畅无声。<<else>>变形时发出几声略显刺耳的金属摩擦音。<</if>> <<silently>> /* <<audio "sfx_arm_transform" play>> */ /* <<audio "sfx_rifle_materialize" play>> */ /* [img[assets/images/cg/cg_ch2_plot_01_transform.webp]] */ <</silently>>\ “集中精神,注意躲避。” 她言简意赅。 <<set $domOpinion -= 1>> /* 表现出犹豫或恐惧,略微降低好感 */\ [[“我明白了。”|Ch2_BreakoutPrep_Ready]]
多米尼克不再多言。她走到木门边,侧耳贴近门板,片刻后猛地抬脚踹开! /* <<audio "sfx_door_kick_open" "assets/audio/sfx/door_kick_open.ogg" play>> */ [[冲出木屋|Ch2_ExitCabin]]
<<silently>> <<BGMCheck "bgm_chase">> /* 缓存战斗音效 */ /* <<cacheaudio "sfx_grenade_launch" "assets/audio/sfx/grenade_launch.ogg">> */ /* <<cacheaudio "sfx_explosion_medium" "assets/audio/sfx/explosion_medium.ogg">> */ /* <<cacheaudio "sfx_rifle_burst" "assets/audio/sfx/rifle_burst.ogg">> */ /* <<cacheaudio "sfx_monster_die_multiple" "assets/audio/sfx/monster_die_multiple.ogg">> */ <</silently>> 门外,数个形态扭曲、穿着破烂衣物/残缺铠甲的“空壳怪物”正围拢过来,它们空洞的面孔齐刷刷转向门口!动作带着一种非自然的僵硬感。 “走!” 多米尼克低喝,率先冲出。 <<nobr>><<if $contactStatus is "accepted">> 她右臂的榴弹发射器发出一声低沉而有力的闷响,榴弹拖着稳定尾迹精准射入怪物最密集处。动作如行云流水。 /* <<audio "sfx_grenade_launch" play>> */\ <<else>> 她右臂的榴弹发射器发出一声略显刺耳的闷响,榴弹射出时炮口轻微晃动,但依旧准确命中目标区域。动作迅猛但能看出机械臂似乎在承受压力。 /* <<audio "sfx_grenade_launch" play>> */\ <</if>><</nobr>> <<timed 1s>> /* <<audio "sfx_explosion_medium" play>> */\ 剧烈的爆炸掀起气浪和碎屑,将几个空壳怪物炸得肢体分离! /* <<audio "sfx_monster_die_multiple" play>> */\ 爆炸的冲击暂时清出一条通路。 <<timed 1s>> <<nobr>><<if $contactStatus is "accepted">> 多米尼克左手的突击步枪同时稳定开火,短促而精准的点射不断响起,将试图靠近的个体一一击倒。 /* <<audio "sfx_rifle_burst" play loop volume 0.7>> */ <<else>> 多米尼克左手的突击步枪喷吐火舌,枪口跳动略大,但点射依旧致命。她依靠强大的火力压制着缺口。 /* <<audio "sfx_rifle_burst" play loop volume 0.7>> */ <</if>><</nobr>>\ “快跑!别停下!” 多米尼克一边射击压制,一边对你喊道,声音在枪声中显得格外清晰。 你紧随其后,冲出木屋,踏入寂静得诡异的小镇街道。街上散落着一些战斗造成的瓦砾和弹壳,但两旁的建筑看起来不久前还有人居住。枪声、爆炸声、怪物的嘶吼声在这份死寂中显得格外突兀。 [[向前冲!|Ch2_StreetChase_Start]] <</timed>> <</timed>>
<<set $enemiesEngaged to true>>\ <<BGMCheck "bgm_chase">>\ 你们在空无一人的小镇街道上飞奔。街道本身还算整洁,只是散落着追逐战留下的碎石和弹壳。两侧的店面门窗紧闭,有些橱窗里还展示着商品,一家咖啡馆露天座位上的咖啡杯似乎还冒着热气,但周围没有任何人影,只有阴影中潜藏的危险。不断有零星的空壳怪物从建筑阴影或小巷拐角冲出,动作笨拙但执着地追击。 <<nobr>><<if $contactStatus is "accepted">> 多米尼克甚至无需停步,手中的突击步枪就像精准的仪器,每一次短点射都能准确命中一个怪物的头部或关节,让它们瘫倒在地。她的移动流畅而高效。 <<else>> 多米尼克手中的突击步枪不断喷吐火舌,每一次点射都将威胁清除,有时需要连续射击才能阻止一个怪物的突进。她主要依靠火力开路,移动中偶尔能看到手臂关节处不自然的顿挫。 <</if>><</nobr>> 偶尔有怪物试图从侧面接近你,也会被她提前射击驱赶或消灭。 你的选择是? [[专注于躲避,紧跟多米尼克|Ch2_StreetChase_FocusDodge]] /* 理性选择,可能提升好感 */ [[(看到地上掉落的步枪)捡起来试试?|Ch2_StreetChase_TryGun]] /* 未知风险,可能拖后腿 */ [[(看到一个低矮的掩体)尝试利用掩护前进?|Ch2_StreetChase_TryCover]] /* 可能安全,也可能被伏击 */
你集中精神,紧盯着多米尼克的背影和前方的道路,同时留意着两侧可能出现的威胁。脚下灵活地避开碎石和障碍物。 一个空壳怪物猛地从右侧一扇破窗中扑出,你下意识地向左侧身,冰冷的爪风擦着你的手臂掠过! 几乎同时,多米尼克的枪口已经指向这边,一声短促的点射,那怪物应声倒地。 <<nobr>><<if $domOpinion >= 2>> 她头也没回,只是冷冷地说:“保持警惕。” /* 好感度较高,给予提醒 */ <<else>> 她没有说话,继续向前冲锋,火力未减。 /* 好感度一般或较低,专注于开路 */ <</if>><</nobr>> <<set $domOpinion += 1>> /* 专注于任务,提升好感 */ [[继续逃亡|Ch2_StreetChase_Detailed]]
<<set $playerTriedGun to true>> 你注意到前方不远处,一个倒地的“空壳”旁边掉落着一把看起来还能用的旧式步枪,旁边还有一个翻倒的购物车,里面的东西散落一地。也许能帮上忙? 你快速冲过去,俯身捡起步枪。入手沉重,枪身冰冷,上面沾满了灰尘。 你尝试拉动枪栓,动作生涩。就在这时,一个原本被多米尼克火力压制的空壳怪物嘶吼着转向你扑来! 你慌忙举枪瞄准,扣动扳机——“咔嚓”一声,哑火了!又也许,他的子弹早已耗尽。 <<nobr>><<if $domOpinion <= 0>> /* 好感度低 */ 多米尼克似乎并未立刻注意到你的窘境,她的火力集中在前方。那个怪物已经近在眼前! [[(丢掉枪)翻滚躲避!|Ch2_StreetChase_DodgeFail]] /* 尝试自救 */ [[“多米尼克!!”|Ch2_StreetChase_CallHelpLowOpinion]] /* 求助,但可能太晚 */ <<else>> /* 好感度较高 */ “嘭!”一声精准的枪响,扑向你的怪物被打了个趔趄,暂时停顿。 /* <<audio "sfx_rifle_shot_single_precise" play>> */\ 多米尼克的声音传来,带着一丝不悦:“别做多余的事!跟上!” 她为你争取了脱离的时间。 <<set $domOpinion -= 1>> /* 添麻烦了,降低好感 */ [[丢掉枪,跟上|Ch2_StreetChase_Detailed]] <</if>><</nobr>>
你猛地丢掉无用的步枪,向旁边翻滚。动作很狼狈,但险之又险地躲过了怪物的扑击。 你连忙爬起来,感觉手臂被地面擦伤,火辣辣地疼。 多米尼克此时已经解决了前方的威胁,回头看到你狼狈的样子,眼睛闪烁了一下,没有说话,转身继续前进。 <<set $domOpinion -= 2>> /* 严重拖后腿,大幅降低好感 */ [[赶快跟上|Ch2_StreetChase_Detailed]]
“多米尼克!!” 你大喊求助。 枪声短暂停止。多米尼克回头,看到你和扑来的怪物。 <<nobr>><<if $contactStatus is "accepted">> 她反应极快,枪口瞬间调转,一发精准点射击中怪物头部。 /* <<audio "sfx_rifle_shot_single_precise" play>> */\ <<else>> 她的动作稍慢了半拍,但还是抬枪射击,子弹打在怪物身上,阻止了它的扑击。 /* <<audio "sfx_rifle_burst_short" play>> */\ <</if>><</nobr>> “别拖后腿。”她冷冷地说完,立刻转回前方继续开路。 <<set $domOpinion -= 1>> /* 求助且好感度低,降低好感 */ [[丢掉枪,跟上|Ch2_StreetChase_Detailed]]
你看到街道旁有一个被撞歪的金属邮筒,看起来足够坚固,可以作为临时的掩体。你想借此躲避一下侧面的威胁,再跟上多米尼克。 你一个箭步冲到邮筒后,刚蹲下身,还没来得及喘口气—— “嘶——!” 一个潜伏在邮筒投递口阴影中的空壳怪物猛地探出身,一只枯瘦但力量惊人的手爪狠狠扫向你的侧肋! 你根本来不及反应,只感觉像是被高速行驶的摩托车撞到,身体不由自主地撞在冰冷的金属垃圾箱壁上! <<set $playerHitCheck to true>> /* 标记玩家被击中 */ /* <<audio "sfx_player_hit_body" play>> */\ /* 玩家被击中音效 */ 剧痛袭来... 但奇怪的是,疼痛似乎只停留在表面?冲击力巨大,肋骨处传来剧烈的闷痛,像是严重的淤青,但并没有皮开肉绽或者骨头断裂的感觉。你甚至还能立刻活动。 “嘭!”多米尼克的枪声响起,解决了那个偷袭的怪物。 /* <<audio "sfx_monster_die" play>> */\ <<nobr>><<if $domOpinion >= 1>> “受伤了?报告状态。”她的声音透过通讯器传来,虽然冰冷,但包含着询问。她回头扫了你一眼,眼睛似乎记录了刚才的冲击。 [[“没事,还能走!”|Ch2_StreetChase_ReportOK]] [[(忍痛)“还好……只是撞了一下。”|Ch2_StreetChase_ReportMinor]] <<else>> “说了让你跟紧!” 她头也不回地喊道,似乎认为你只是因为不听命令而耽搁了。“别停下!” [[爬起来,继续跟上|Ch2_StreetChase_Detailed]] <</if>><</nobr>> /* 多米尼克内部记录:目标受到直接物理冲击,冲击强度估算值XXX,生理反应低于预期阈值。记录异常。*/
你忍着痛,尽量让声音听起来正常:“没事,还能走!” 多米尼克没有再问,但前方的火力似乎更密集了一些,为你清空了更宽阔的路径。 [[继续跟上|Ch2_StreetChase_Detailed]]
你捂着肋部,喘了口气:“还好……只是撞了一下。” “那就跟上。” 多米尼克没有表现出更多关心,但脚步稍微放慢了一点点,似乎在确认你真的能跟上。 <<set $domOpinion -= 1>> /* 虽然没大碍,但确实被打中了,略微降低好感 */ [[继续跟上|Ch2_StreetChase_Detailed]]
<<BGMCheck "bgm_chase">>\ <<set $enemiesEngaged to true>>\ 你们继续在死寂的小镇街道上狂奔,风声在耳边呼啸,伴随着你们急促的脚步声和远处的枪声。街道两旁紧闭的房屋窗户映照着天空,像一双双空洞的眼睛。偶尔能瞥见室内未熄灭的灯光,或是阳台上晾晒的衣物随风摆动,无声地诉说着这里不久前还充满生机。 <<nobr>><<if $contactStatus is "accepted">> 多米尼克像一道迅捷的黑白色闪电,在前方破开怪物的阻碍。她的动作流畅而致命,突击步枪在她手中如同拥有生命,每一次短促的点射都精准地撕裂空气,命中追击或突袭的空壳怪物的要害。她甚至能在高速移动中做出匪夷所思的动作——时而借助墙壁进行三角跳跃,避开障碍的同时射击;时而一个滑铲穿过低矮的障碍,步枪顺势向上开火。 <<else>> 多米尼克如同一台高效的杀戮机器,依靠精准火力和对时机的把握在前方开路。她的动作迅猛直接,面对障碍时倾向于直接用火力清除或选择更简单的绕行路线,偶尔能看到机械臂在承受巨大后坐力时轻微颤抖,但火力从未减弱。 <</if>><</nobr>> 那些行动迟缓的普通空壳怪物在她面前几乎不堪一击。 “这边,快!” 多米尼克的声音传来,清晰而冷静,她指向一条更加狭窄、堆放着一些翻倒的垃圾桶和废弃自行车的小巷。 小巷里光线昏暗,空气中弥漫着灰尘和某种淡淡的腐败气味。刚一拐进去,几个潜伏在垃圾桶后和门廊阴影中的空壳怪物就嘶吼着扑了出来!它们的速度比街道上的更快! /* <<audio "sfx_monster_attack_multiple" play>> */\ 多米尼克反应更快。 <<nobr>><<if $contactStatus is "accepted">> 她猛地侧身,步枪枪托向上精准格开一只抓来的利爪,同时身体旋转半周,左腿如同鞭子般扫中另一个怪物的膝盖,使其失去平衡。几乎在同一时间,她手中的步枪已经调转方向,连续的枪声在狭窄的小巷中回荡,将剩余的怪物逼退。 /* <<audio "sfx_rifle_burst_short" play>> */ /* <<audio "sfx_melee_hit_light" play>> */ <<else>> 她猛地后撤半步,步枪直接开火将近处的敌人打退,同时用受损的机械臂格挡开另一只爪子,臂膀上留下几道新的划痕。紧接着密集的枪声响起,压制住了巷口的敌人。 /* <<audio "sfx_rifle_burst_intense" play>> */ /* <<audio "sfx_melee_hit_metal" play>> */ /* 金属碰撞音效 */ <</if>><</nobr>> “前面有障碍,跳过去!” 她指向前方一个被掀翻、扭曲变形的金属广告牌,它几乎堵死了小巷。 [[助跑,尝试跳跃|Ch2_Obstacle_Jump]] /* 需要敏捷,可能成功也可能失败 */ [[寻找旁边的缝隙绕过去|Ch2_Obstacle_Detour]] /* 看起来更安全,但可能更慢,有未知风险 */
你深吸一口气,看着多米尼克毫不减速的身影,也跟着加速助跑。脚下的碎石飞溅,你用尽全力蹬地起跳! <<nobr>><<if $playerHitCheck is true>> /* 如果之前被击中过,身体状态可能影响跳跃 */ /* 判定:假设被击中有轻微负面影响,增加失败几率 */ <<nobr>><<if random(1, 10) <= 7 >> /* 70% 成功率 */ 双手扒住广告牌扭曲的边缘,用力将自己翻了过去!风从耳边刮过,落地时你一个踉跄,差点摔倒,但总算成功越过了障碍。<br><br> /* <<audio "sfx_player_jump_land" play>> */ [[跳跃成功|Ch2_Obstacle_Jump_Success]] <<else>> /* 30% 失败率 */ 起跳力量稍有不足,或者落地时重心不稳,你重重地摔在了障碍物后面,膝盖一阵剧痛。<br><br> /* <<audio "sfx_player_fall_hard" play>> */ [[跳跃失败|Ch2_Obstacle_Jump_Fail]] <</if>><</nobr>> <<else>> /* 判定:未被击中,成功率更高 */ <<nobr>><<if random(1, 10) <= 9 >> /* 90% 成功率 */ 双手扒住广告牌扭曲的边缘,用力将自己翻了过去!风从耳边刮过,落地时你一个踉跄,差点摔倒,但总算成功越过了障碍。<br><br> /* <<audio "sfx_player_jump_land" play>> */ [[跳跃成功|Ch2_Obstacle_Jump_Success]] <<else>> /* 10% 失败率 */ 起跳时脚下一滑,或者扒住边缘时脱手,你重重地摔在了障碍物后面,膝盖一阵剧痛。<br><br> /* <<audio "sfx_player_fall_hard" play>> */ [[跳跃失败|Ch2_Obstacle_Jump_Fail]] <</if>><</nobr>> <</if>><</nobr>>
几乎在你落地站稳的同时,多米尼克如同猎豹般轻盈地一跃而过,<<nobr>><<if $contactStatus is "accepted">>落地无声<<else>>落地时发出轻微的金属撞击声<</if>><</nobr>>。在他落地转身的瞬间,枪口已经指向后方,几声清脆的枪响过后,刚才紧追不舍的几个怪物应声倒地。 /* <<audio "sfx_rifle_burst" play>> */\ /* <<audio "sfx_monster_die_multiple" play>> */\ 她看了你一眼,没说什么。 <<set $domOpinion += 1>> /* 成功跟上,提升好感 */ [[继续前进|Ch2_ExitAlley]]
你挣扎着想爬起来,但膝盖的疼痛让你动作迟缓。 多米尼克已经越过障碍,他回头看到你摔倒,眼睛闪烁。 <<nobr>><<if $domOpinion >= 0>> 她没有过来扶你,但也没有催促,只是保持警戒,枪口指向你们来时的方向,确保没有怪物能趁机攻击你。 [[挣扎爬起,跟上|Ch2_ExitAlley]] <<else>> “快点!”她冷声道,语气中带着明显的不耐烦。枪声在他身后响起,清理着追兵。 <<set $domOpinion -= 1>> /* 失败且好感度低,降低好感 */ [[挣扎爬起,跟上|Ch2_ExitAlley]] <</if>><</nobr>>
你觉得那个高度对你来说太冒险了,选择从广告牌旁边一个勉强能容一人通过的狭窄缝隙挤过去。金属边缘刮擦着你的衣服。这明显拖慢了你的速度。 就在你侧身挤过缝隙,即将到达另一边的瞬间—— 一只潜伏在缝隙出口阴影中的空壳怪物猛地伸出爪子,死死抓住了你的脚踝!冰冷的触感如同铁钳般锁紧,一股空洞、带着灰尘的气息扑面而来! /* <<audio "sfx_monster_grab" play>> */\ “呃啊!” 你失去平衡,惊叫着向前扑倒在地! [[(回身)用力踢它的头!|Ch2_Grabbed_Kick]] /* 主动反击 */ [[(惊恐)“多米尼克!!”|Ch2_Grabbed_CallHelp]] /* 本能求助 */
剧烈的求生欲让你瞬间爆发!你猛地扭转身体,用另一只没被抓住的脚,凭借腰腹力量狠狠地踹向怪物的面部!你能清晰地感觉到脚下传来某种硬壳碎裂的触感! /* <<audio "sfx_player_kick" play>> */\ /* <<audio "sfx_monster_head_crush" play>> */\ 那怪物被打得头颅歪向一边,发出无声的嘶吼,抓着你脚踝的爪子猛地松开。你趁机连滚带爬地挣脱,向前跑了几步才站稳。 多米尼克回头瞥了你一眼,眼睛闪过一丝不易察觉的蓝光。她没有说话,但前方的枪声变得更加密集,似乎在为你清空前路。 /* <<audio "sfx_rifle_burst_intense" play>> */\ <<set $domOpinion += 1>> /* 展现出战斗意志和能力,提升好感 */ [[继续前进|Ch2_ExitAlley]]
“多米尼克!!” 你惊恐地大喊,声音在狭窄的小巷中回荡。 枪声瞬间停止了一刹那。紧接着,一声精准的枪响传来! <<nobr>><<if $contactStatus is "accepted">> 子弹如同长了眼睛般,精准地撕裂了抓住你脚踝的怪物的腕部关节! /* <<audio "sfx_rifle_shot_single_precise" play>> */\ /* <<audio "sfx_monster_arm_break" play>> */\ <<else>> 子弹命中了怪物的肩膀,巨大的冲击力让它抓握的力度一松。 /* <<audio "sfx_rifle_shot_single_impact" play>> */\ /* 普通命中音效 */ /* <<audio "sfx_monster_stagger" play>> */\ /* 怪物受击硬直音效 */ <</if>><</nobr>> 怪物吃痛,爪子无力地松开。你赶紧爬起来,向前跑去。 “不要分心!跟上!” 多米尼克冰冷的声音从前方传来,带着不容置疑的严厉。“保持移动!” <<set $domOpinion -= 1>> /* 再次求助,降低好感 */ [[继续前进|Ch2_ExitAlley]]
<<FadeoutBGM>> 你们终于冲出了这条令人窒息的狭窄小巷,前方豁然开朗,似乎是一个废弃的小广场。午后的阳光有些刺眼,让你下意识地眯起了眼睛。然而,几乎在同一时间,一股远比之前任何一次都要强烈的危机感如同冰水般浇遍你的全身!令人心悸的压迫感扑面而来! 广场中央,原本空旷的地面阴影似乎在不自然地扭曲、蠕动。一个庞大的身影缓缓从阴影最深处站起!它的体型远超之前遇到的任何空壳怪物,厚重的黑色装甲覆盖全身,表面布满划痕但闪烁着冰冷的金属光泽。最引人注目的是它右手那把巨大的、还在嗡嗡作响的链锯剑!锯齿高速旋转,带起刺耳的噪音和飞溅的火星。它的头盔面甲下,两点猩红的光芒如同探照灯般死死地锁定了你们! /* <<audio "sfx_chainsaw_idle" play loop>> */\ /* [img[assets/images/cg/cg_ch2_plot_03_boss_intro.webp]] */\ 多米尼克的脚步猛地一顿,流畅的奔跑动作第一次出现了明显的停滞。她盯着那个庞然大物。 “警告:检测到高能量反应…目标结构强度大幅提升…威胁等级:高危。”她的声音比之前更加凝重,“小心,这个和之前的杂兵不同!” /* 链接到 Boss 战文件/段落 */ [[“小心!”|Ch2_PreBossScene]]
/* 这个段落根据 $contactStatus 决定具体内容 */\ <<nobr>><<if $contactStatus is "accepted">> /* === 情况A:第一章已经接触并修复 === */\ <div class="transition-text">你们冲出狭窄的小巷,踏入空旷的小广场。午后的阳光将地面晒得发白,广场中央却投下一片巨大、轮廓分明的阴影,与周围明亮的环境格格不入。多米尼克的状态尚可,她迅速进入了战斗准备,武器系统展开的声音在寂静中回响。</div> [[准备迎敌|Ch2_PreBoss_Ready]] <<else>> /* === 情况B:第一章拒绝接触,现在请求 === */\ <div class="transition-text">你们冲出狭窄的小巷,踏入空旷的小广场。眼前的景象让你们同时停下了脚步。多米尼克身上火花跳动,装甲破损,步履不稳,而广场中央,一个庞大的身影手持链锯剑矗立着,剑刃的寒光与散落在地的购物袋、废弃传单形成了强烈的反差。</div> [[继续|Ch2_PreBoss_Request]] <</if>><</nobr>>
/* 触发条件: $contactStatus is "refused_final" */\ <<silently>> /* <<audio "sfx_dominique_damaged_sparks" play loop volume 0.6>> */\ <</silently>> 空旷的广场上,只有风吹过散落在地上的传单发出轻微的沙沙声。广场中央的巨大敌人静立不动,身形几乎遮蔽了它背后的阳光,投下大片阴影。多米尼克的脚步第一次显得有些踉跄。她的身上布满了战斗的痕迹:机械臂上新增了许多划痕和凹陷,关节处不时爆出细密的电火花,甚至有几片外挂的装甲板摇摇欲坠,某种不明液体从破损处缓缓渗出,在干净的地砖上留下痕迹。 她的眼睛死死锁定着那个手持链锯剑的敌人。几秒后,她猛地转过头看向你,眼中的光芒剧烈波动,瞳孔似乎收缩到了极点。 她再次抬起那只伤痕累累的机械臂,腕部装甲在一阵刺耳的摩擦声中滑开,<b>那柄布满干涸血迹、如同武士刀碎片的黑色短刃再次暴露在你面前!</b> “如果不启动我的自我修复,恐怕你也无法存活了!” 她几乎是强撑着身体,一步步逼近你,将那短刃对准你的腹部,声音不高却异常清晰,每个字都像是敲在金属上:“为了任务……为了生存,必须立刻执行接触修复!<b>授权!现在!</b>” 广场对面,那巨大的敌人引擎低吼,链锯剑的齿轮开始转动,发出刺耳的摩擦声,似乎随时会发起冲锋。 你看着多米尼克破损的身体和她眼中不容拒绝的决绝,看着那柄指向你身体的黑色短刃,再看看远处那个庞大的、在空旷广场上显得极不协调的身影。 /* <<audio "sfx_chainsaw_revving_distant" play>> */\ [[(看着她眼中的决绝,再看Boss,咬牙)“……动手!快!”|Ch2_Contact_Accept_Desperate]] [[(惊恐后退)“不!别过来!我不能再……”|Ch2_Contact_Refuse_Attempt]]
你猛一咬牙,几乎是吼着喊出来:“动手!快!” 多米尼克眼中的黄光一闪,没有任何犹豫,欺身而上,手臂环住你,另一只手将那柄黑色短刃狠狠刺入你的侧腹!剧烈的疼痛让你眼前一黑。鲜血涌出,流到地面上。 /* <<audio "sfx_blade_stab_flesh_heavy" play>> */\ /* <<audio "sfx_energy_flow_violent" play>> */\ 冰冷狂暴的能量流如冰水涌入,带着强烈的掠夺感,你感觉自己的力量正在被抽走!同时,多米尼克身上出现了大量耀眼的蓝光裂纹,她破损的机体在能量冲击下剧烈颤抖,但修复速度也快得惊人。 就在这时,多米尼克的动作微微一顿。 <<silently>> /* 内部判定:根据好感度决定是否触发夺取生命力的选项 */\ /* 假设好感度阈值为 -4 */\ <<nobr>><<if $domOpinion <= -4>> /* === 好感度过低:触发坏结局 === */\ /* 内部信息流: "[警告!人类生命特征因二次创伤及能量抽取剧烈波动!Sigma协议可用:吸收人类全部剩余生物能量以达成峰值性能? Y/N] 风险:人类必然死亡。" */\ /* Dominique's internal process: Analysis... Host cooperation minimal/forced. Survival priority overrides ethical constraints. Accept. */\ <<set $badEndTriggered = true>> <<else>> /* === 好感度足够:拒绝牺牲选项 === */\ /* 内部信息流: "[警告!人类生命特征因二次创伤及能量抽取剧烈波动!Sigma协议可用:吸收人类全部剩余生物能量以达成峰值性能? Y/N] 风险:人类必然死亡。" */\ /* Dominique's internal process: Analysis... Host demonstrated prior cooperation/value. Risk outweighs potential gain. Decline. */\ /* "[Sigma协议已拒绝。继续标准修复流程。警告:人类生命体征接近临界值。执行紧急创口封闭及能量稳定程序。]" */\ <<set $badEndTriggered = false>> <</if>><</nobr>> <</silently>> <<nobr>><<if $badEndTriggered>> 你感觉到一股无法抗拒的虚弱感袭来,仿佛生命力正在被不可逆转地抽干。你惊恐地看向多米尼克,发现她原本像人类的眼睛此刻完全变成了冰冷的、没有任何波动的<b>电子眼</b>。她修复后的身体散发出强大的能量波动,短刃在你体内发出嗡鸣,贪婪地吸收着一切。她的目光落在你身上。 “……最优解。”她似乎低声说了一句,声音冷得像冰。 你的视线开始模糊,广场、敌人、多米尼克……一切都沉入黑暗。 [[……|Ch2_BadEnd_Sacrificed]] <<else>> /* === 好感度足够:拒绝牺牲,触发治愈 === */\ 那股抽取力量的感觉突然减轻了,虽然依然痛苦,但不再致命。她猛地拔出短刃,但预期的剧痛并未持续。相反,一股暖流从伤口处扩散开来,刺痛感迅速消退,被一种温热感取代。你甚至能感觉到之前在逃亡中留下的擦伤(比如躲避怪物时的擦伤<mcsymbol name="Ch2_StreetChase_DodgeFail" filename="chapter2_2_chase.twee" path="f:\GitRep\TBB-Childhood\src\chapters\chapter2\chapter2_2_chase.twee" startline="100" type="function"></mcsymbol>)和撞击的淤青(比如跳跃失败时的膝盖<mcsymbol name="Ch2_Obstacle_Jump_Fail" filename="chapter2_2_chase.twee" path="f:\GitRep\TBB-Childhood\src\chapters\chapter2\chapter2_2_chase.twee" startline="223" type="function"></mcsymbol>)处的酸胀感也在快速消失。低头看去,侧腹的伤口已经完全愈合,只留下比周围略浅的肤色和温热感,连一丝疤痕都找不到。你深吸一口气,感觉呼吸顺畅了许多,四肢的沉重感也减轻了。 /* <<audio "sfx_blade_retract" play>> */\ /* <<audio "sfx_wound_cauterize" stop>> */\ /* <<audio "sfx_healing_magical_warmth" play>> */\ /* <<audio "sfx_energy_flow_stabilize" play>> */\ 她拔出短刃,动作流畅。她瞥了你一眼,似乎在分析你这超乎预期的恢复状态。她修复后的机体看起来恢复了七八成,虽然还有些狼狈,但气势完全不同了。 她没有过多关注你的状态,立刻转身面对Boss,武器系统完全展开。“连接中断。修复完成度71%。准备迎击。” <<set $contactStatus = "accepted">> /* 标记状态已修复 */\ <<set $domOpinion -= 2>> /* 玩家同意了这种被迫的、危险的接触,虽然结果意外有利,但过程依然是被迫胁迫,她认为这缺乏理性,降低好感 */\ “跟上,找掩护!”她丢下一句话,率先冲向战场。 [[(感受着身体的变化)忍痛跟上|Ch2_BossEncounter]] /* 链接到实际的 Boss 战 Passage */\ <</if>><</nobr>>
你惊恐地摇头后退:“不!别过来!我不能再……” <<nobr>><<if $domOpinion <= -4>> /* === 好感度过低:强制执行 === */\ “命令否决。”多米尼克的声音不带一丝情感。她的速度快得让你无法反应,瞬间便欺近身前,以不容抗拒的力量将你制住。那柄染血的短刃在她手中划过一道弧线。 “必要措施。” 在你反应过来之前,剧痛已经贯穿了你的腹部。 /* <<audio "sfx_blade_stab_flesh_heavy" play>> */\ <div class="transition-text">她强行启动了接触协议。你感觉生命力在快速流失……</div> [[(被强制接触)|Ch2_Contact_Accept_Desperate]] /* 跳转到接受逻辑,低好感度将导向坏结局 */\ <<else>> /* === 好感度尚可:接受拒绝 === */\ 你的拒绝让她动作一顿。她的眼睛在你和远处的Boss之间来回扫视,眼中的光芒闪烁不定。广场上空无一人,只有她和你,以及那个可怕的敌人。最终,她眼中的波动平复下来,视线重新变得像之前一样稳定,但似乎……更加深沉。 她缓缓收回了手臂,短刃及其接口缩回装甲之下。 “……记录:人类拒绝执行紧急协议。风险接受。” 她的声音低沉下去。 她转过身,拖着破损的身体,一步步走向那个在空旷广场上显得愈发庞大的敌人,步伐虽慢,却没有丝毫犹豫。 /* <<audio "sfx_dominique_damaged_sparks" stop>> */\ <div class="transition-text">她放弃了强制修复,准备以重伤之躯迎战。</div> [[(看着她决绝的背影)|Ch2_BossEncounter]] /* 链接到实际的 Boss 战 Passage */\ <</if>><</nobr>>
/* 触发条件: $contactStatus is "accepted" */\ 空旷的广场上,阳光照射在停止喷水的喷泉和散落的杂物上。面对广场中央那个散发着恐怖压迫感的巨大敌人,多米尼克脚步沉稳地停下。她身上虽然也有些战斗痕迹,但比起未修复状态要好得多,核心系统运转正常。 她的眼睛冷静地扫描着敌人。她快速检查了一下自己的武器系统,修复后的机械臂活动自如。 “威胁评估:高。作战方案已生成。” 她转头看向你,目光在你身上停留了一秒。“战斗即将开始。有任何需要记录的最终陈述吗?比如遗言或者墓志铭。” 她的用词依旧像是系统日志,在这死寂的环境中显得有些怪异。 [[“没有陈述,只有战斗!我准备好了!”|Ch2_Ready_Brave_Transition]] [[“你……这次有把握吗?”|Ch2_Ready_Doubt_Transition]] [[(握紧武器/拳头,沉默点头)|Ch2_Ready_Stoic_Transition]]
“高昂的战斗意志。” 多米尼克点了点头。“很好。执行A计划。” <<set $domOpinion += 1>> <div class="transition-text">她确认了你的状态,转身面对强敌。</div> [[战术确认,迎敌!|Ch2_BossEncounter]] /* 链接到实际的 Boss 战 Passage */\
“概率计算显示,胜率区间在35%至68%之间,取决于战场变量和……你的行动效率。” 多米尼克客观地回答。“质疑不影响结果。集中。” <<set $domOpinion -= 1>> <div class="transition-text">她没有理会你的疑虑,专注于即将到来的战斗。</div> [[了解,迎敌!|Ch2_BossEncounter]] /* 链接到实际的 Boss 战 Passage */\
多米尼克解读了你的动作。“非语言信号接收:确认准备就绪。执行标准交战协议。” <div class="transition-text">她不再多言,摆出了战斗姿态。</div> [[迎敌!|Ch2_BossEncounter]] /* 链接到实际的 Boss 战 Passage */\
<div class="title-text">结局:协议覆盖</div> 你的意识在冰冷的黑暗中消散。最后的感知,是被某种东西贯穿身体的剧痛,以及生命力被贪婪抽走的空虚感。远处的战斗声响似乎变得更加猛烈,但那已经与你无关了。 也许,你的牺牲是某个无情协议的必然结果。 也许,是之前的某个选择,让她最终将任务和生存置于一切之上。 你永远不会知道了。 【协议执行完毕。人类生命信号终止。】 [[从与多米尼克接触之前重新开始|抵达木屋]] [[从冲出木屋前重新开始|Chapter2_Start]]
/* 确保 BGM 切换 */ <<BGMCheck "bgm_boss">>\ /* <<cacheaudio "sfx_chainsaw_rev" "assets/audio/sfx/chainsaw_rev.ogg">> */ /* <<cacheaudio "sfx_chainsaw_attack" "assets/audio/sfx/chainsaw_attack.ogg">> */ /* <<cacheaudio "sfx_metal_impact_heavy" "assets/audio/sfx/metal_impact_heavy.ogg">> */\ 那个重甲空壳战士(暂称“链锯屠夫”)注意到了你们,它发出一声刺耳的咆哮,手中的链锯剑猛地加速旋转起来! /* <<audio "sfx_monster_roar_heavy" play>> */ /* <<audio "sfx_chainsaw_rev" play>> */ 多米尼克立刻抬起榴弹发射器,对准了链锯屠夫! “轰!” /* <<audio "sfx_grenade_launch" play>> */ 榴弹准确命中,爆炸在链锯屠夫的胸甲上炸开! /* <<audio "sfx_explosion_medium" play>> */ /* <<audio "sfx_metal_impact_heavy" play>> */ 然而,烟尘散去,链锯屠夫只是晃了一下,厚重的装甲上只留下了一些焦黑的痕迹和浅浅的凹陷!它似乎毫发无伤! “装甲强度超出预期。” 多米尼克迅速切换成突击步枪,对着链锯屠夫的关节和头部进行点射。 /* <<audio "sfx_rifle_burst" play>> */ 子弹打在装甲上,迸发出密集的火花,但似乎无法穿透! /* <<audio "sfx_bullet_ricochet_metal_multiple" play>> */ 链锯屠夫无视了多米尼克的攻击,迈开沉重的步伐,挥舞着巨大的链锯剑,径直朝着你们冲了过来!速度远超之前的普通空壳! /* <<audio "sfx_heavy_footsteps_running" play loop>> */ /* <<audio "sfx_chainsaw_attack" play>> */ “快躲开!” 多米尼克喊道,同时向侧面闪避。 你看着那闪着寒光、高速旋转的链锯,心脏几乎跳到了嗓子眼! [[向左边翻滚躲避!|躲避链锯_左]] [[向右边扑倒躲避!|躲避链锯_右]]
你用尽全力向左边翻滚!链锯剑带着可怕的风声从你刚才的位置劈下,将地面砸出一个大坑!碎石飞溅! /* <<audio "sfx_chainsaw_impact_ground" play>> */ /* <<audio "sfx_debris_falling" play>> */ 你狼狈地爬起来,心有余悸。 [[寻找掩护|寻找广场掩护]]
你猛地向右边扑倒!链锯几乎是擦着你的后背砍在了地上,带起的风压让你感到一阵刺痛! /* <<audio "sfx_chainsaw_impact_ground" play>> */ /* <<audio "sfx_debris_falling" play>> */ 你连滚带爬地远离那个可怕的武器。 [[寻找掩护|寻找广场掩护]]
广场周围有一些废弃的长椅和破损的花坛,可以作为临时的掩护。 多米尼克利用她的机动性,不断地在广场上移动,吸引链锯屠夫的注意力,同时寻找攻击弱点的机会。她的榴弹和步枪交替开火,但效果甚微。 “它的装甲太厚了!需要集中火力攻击薄弱点,或者……使用更高能量的武器!” 多米尼克一边射击一边分析。 链锯屠夫似乎被多米尼克激怒了,它放弃了追击你,转而全力攻击多米尼克。巨大的链锯不断挥舞,逼得多米尼克连连后退。 你躲在一个石制花坛后面,看着眼前的激战,手心全是汗。 [[(保持躲藏)|保持躲藏]] [[(试图吸引注意力,给多米尼克创造机会?)|尝试吸引注意]]
你紧紧缩在花坛后面,只敢探出半个头观察战况。你知道自己冲出去也帮不上忙,只会成为累赘。 多米尼克凭借着远超常人的反应和速度,勉强与链锯屠夫周旋。但情况看起来不容乐观,链锯屠夫的力量和防御都太强了。 突然,链锯屠夫一个猛烈的横扫,多米尼克虽然及时用手臂格挡,但整个人还是被巨大的力量击飞出去,撞在了远处的墙壁上! /* <<audio "sfx_chainsaw_impact_metal" play>> */ /* <<audio "sfx_body_impact_wall" play>> */ /* <<audio "sfx_arm_sparking_malfunction" play>> */ /* 音效:手臂受损 */ 多米尼克挣扎着想站起来,但她的机械臂似乎在刚才的撞击中受损了,闪烁着电火花。 链锯屠夫没有给她喘息的机会,咆哮着举起链锯剑,朝着倒地的多米尼克冲去! [[冲出去!(触发灵能盾)|侧面遇袭_救多米尼克]]
你看到多米尼克陷入苦战,一个大胆的想法冒了出来:也许你可以吸引链锯屠夫的注意,哪怕只有一瞬间,也能给多米尼克创造机会! 你深吸一口气,从花坛后跳了出来,对着链锯屠夫大喊:“嘿!大块头!看这边!” 同时捡起一块石头扔了过去。 /* <<audio "sfx_player_shout" play>> */ /* <<audio "sfx_rock_throw_hit_metal" play>> */ 石头砸在链锯屠夫的装甲上,发出清脆的响声,几乎没有造成任何影响。但你的挑衅成功了! 链锯屠夫猛地停下攻击多米尼克的动作,那闪烁着红光的眼窝转向了你!它发出一声愤怒的咆哮,舍弃了多米尼克,转而朝你冲来!那把可怕的链锯剑高高举起! /* <<audio "sfx_monster_roar_angry" play>> */ /* <<audio "sfx_heavy_footsteps_running" play loop>> */ /* <<audio "sfx_chainsaw_rev" play>> */ “快躲开!!” 多米尼克急促的声音传来,她似乎想阻止,但刚才的战斗让她一时间无法支援。 你看着如同火车般冲来的巨大身影和头顶落下的链锯,大脑一片空白! [[(下意识格挡)|侧面遇袭_吸引火力]]
<<audio "bgm_boss" fadeout>> <<BGMCheck "bgm_reveal">>\ /* <<cacheaudio "sfx_shield_appear" "assets/audio/sfx/shield_appear_ice.ogg">> */ /* <<cacheaudio "sfx_shield_crack" "assets/audio/sfx/shield_crack_heavy.ogg">> */ /* <<cacheaudio "sfx_shield_shatter" "assets/audio/sfx/shield_shatter.ogg">> */\ 你不能眼睁睁看着多米尼克被杀!几乎是出于本能,你从掩体后冲了出去,张开双臂挡在了多米尼克身前!你甚至闭上了眼睛,准备迎接那毁灭性的攻击! “危险!让开!” 多米尼克的声音带着前所未有的急切。 链锯屠夫的攻击已经落下! 就在这时—— /* <<audio "sfx_shield_appear" play>> */ 一层半透明的、如同冰晶般的能量屏障瞬间在你身体表面浮现!比之前在木屋旁更加凝实!链锯屠夫那狂暴的链锯狠狠地劈在了屏障上! /* <<audio "sfx_chainsaw_impact_shield" play>> */ /* 需要特殊音效:链锯砍在能量盾上 */ /* [img[assets/images/cg/cg_ch2_plot_04_shield_boss.webp]] */ /* 占位图:灵能盾挡住Boss攻击 */ “铿——!!!!” 刺耳的摩擦声响起,火花四溅!屏障剧烈地震动,发出不堪重负的呻吟声! “咔嚓……咔嚓咔嚓!” /* <<audio "sfx_shield_crack" play>> */ 蛛网般的裂纹迅速在屏障表面蔓延开来!但这一次,它没有立刻碎裂!它硬生生地顶住了链锯屠夫的全力一击!巨大的冲击力甚至让链锯屠夫的动作都停滞了一瞬! 你感受到一股巨大的推力从屏障传来,将你向后推去,但你并没有受伤! 趁着这个空档,多米尼克眼中蓝光一闪,受损的机械臂猛地变形,炮口对准了链锯屠夫因为攻击而被短暂暴露出来的、相对脆弱的颈部关节! /* <<audio "sfx_arm_transform_quick" play>> */ “高能粒子……发射!” /* <<audio "sfx_particle_beam_charge" play>> */ /* <<audio "sfx_particle_beam_fire" play>> */ 一道炽白的光束瞬间射出,精准地命中了目标! /* <<audio "sfx_particle_beam_impact_heavy" play>> */ /* <<audio "sfx_monster_die_heavy_explode" play>> */ /* Boss 死亡/重创音效 */ 链锯屠夫发出一声凄厉的惨嚎,巨大的身体晃动了几下,重重地倒在了地上,不再动弹。手中的链锯剑也停止了旋转,掉落在旁。 /* <<audio "sfx_heavy_body_fall" play>> */ /* <<audio "sfx_chainsaw_idle" stop>> */ 你身上的灵能盾在挡住攻击后,裂纹遍布,闪烁了几下,终于如同破碎的冰晶般消散了。 /* <<audio "sfx_shield_shatter" play>> */ 多米尼克挣扎着站起来,快步走到你面前,湛蓝的电子眼死死地盯着你,语气中充满了无法掩饰的震惊:“刚才那个……绝对是‘灵能盾’!而且……强度比之前高了很多!你……” [[“我……我只是想救你……”|灵能盾出现_解释行为]] [[(喘着气)“它……它又出现了……”|灵能盾出现_确认重复]]
<<audio "bgm_boss" fadeout>> <<BGMCheck "bgm_reveal">>\ /* <<cacheaudio "sfx_shield_appear" "assets/audio/sfx/shield_appear_ice.ogg">> */ /* <<cacheaudio "sfx_shield_crack" "assets/audio/sfx/shield_crack_heavy.ogg">> */ /* <<cacheaudio "sfx_shield_shatter" "assets/audio/sfx/shield_shatter.ogg">> */\ 面对扑面而来的死亡威胁,你根本来不及思考,只能绝望地抬起双臂交叉护在身前! 链锯屠夫的攻击已经落下! 就在这时—— /* <<audio "sfx_shield_appear" play>> */ 一层半透明的、如同冰晶般的能量屏障瞬间在你身体表面浮现!比之前在木屋旁更加凝实!链锯屠夫那狂暴的链锯狠狠地劈在了屏障上! /* <<audio "sfx_chainsaw_impact_shield" play>> */ /* 需要特殊音效:链锯砍在能量盾上 */ /* [img[assets/images/cg/cg_ch2_plot_04_shield_boss.webp]] */ /* 占位图:灵能盾挡住Boss攻击 */ “铿——!!!!” 刺耳的摩擦声响起,火花四溅!屏障剧烈地震动,发出不堪重负的呻吟声! “咔嚓……咔嚓咔嚓!” /* <<audio "sfx_shield_crack" play>> */ 蛛网般的裂纹迅速在屏障表面蔓延开来!但这一次,它没有立刻碎裂!它硬生生地顶住了链锯屠夫的全力一击!巨大的冲击力甚至让链锯屠夫的动作都停滞了一瞬! 你感受到一股巨大的推力从屏障传来,将你向后推去,但你并没有受伤! 趁着这个空档,多米尼克眼中蓝光一闪,刚才被击中而受损的机械臂猛地变形,炮口对准了链锯屠夫因为攻击而被短暂暴露出来的、相对脆弱的颈部关节! /* <<audio "sfx_arm_transform_quick" play>> */ “高能粒子……发射!” /* <<audio "sfx_particle_beam_charge" play>> */ /* <<audio "sfx_particle_beam_fire" play>> */ 一道炽白的光束瞬间射出,精准地命中了目标! /* <<audio "sfx_particle_beam_impact_heavy" play>> */ /* <<audio "sfx_monster_die_heavy_explode" play>> */ /* Boss 死亡/重创音效 */ 链锯屠夫发出一声凄厉的惨嚎,巨大的身体晃动了几下,重重地倒在了地上,不再动弹。手中的链锯剑也停止了旋转,掉落在旁。 /* <<audio "sfx_heavy_body_fall" play>> */ /* <<audio "sfx_chainsaw_idle" stop>> */ 你身上的灵能盾在挡住攻击后,裂纹遍布,闪烁了几下,终于如同破碎的冰晶般消散了。 /* <<audio "sfx_shield_shatter" play>> */ 多米尼克挣扎着站起来,快步走到你面前,湛蓝的电子眼死死地盯着你,语气中充满了无法掩饰的震惊:“刚才那个……绝对是‘灵能盾’!而且……强度比之前高了很多!你……” [[“我……我以为我死定了……”|灵能盾出现_解释行为]] [[(喘着气)“它……它又出现了……”|灵能盾出现_确认重复]]
<<set $shieldAwakened to true>>\ 你看着倒在地上的链锯屠夫,又看了看自己的双手,惊魂未定地解释道:“我……我只是……” (根据之前的选择不同,可以说“只是想救你”或“只是下意识挡了一下”) 多米尼克打断了你:“我知道你做了什么。重点是‘灵能盾’。它不仅再次出现,而且强度明显提升,甚至能硬抗这种级别的攻击……虽然还是碎了。” 她的目光在你身上扫视,“你的身体……或者说你的‘灵力’,似乎在应激状态下被激发了。” 她环顾四周,虽然最强的敌人倒下了,但远处似乎又有新的嘶吼声传来。 “这里不能久留。我们必须立刻找个更安全的地方。” 她看了一眼自己还在闪烁火花的机械臂,“我也需要进行紧急修复。” [[“去哪里?”|前往安全屋]] [[“灵力……又是什么?”|前往安全屋]] /* 可以在安全屋再问 */
<<set $shieldAwakened to true>>\ 你大口喘着气,指着自己刚才被盾保护的地方:“它……它又出现了!和上次一样,但是好像……更强了?” 多米尼克点头,语气严肃:“是的,强度提升很明显。这证实了我的判断,你是刚刚觉醒的异能者,而且你的潜力……可能比初步评估的要高。应激反应能显著提升灵能盾强度。” 她警惕地听着远处的动静:“威胁并未完全解除。我们需要立刻转移。找个地方让你冷静下来,我也需要处理损伤。” [[“好,我们快走。”|前往安全屋]] [[“异能者……真的这么厉害吗?”|前往安全屋]] /* 可以在安全屋再问 */
/* 链接到第三个文件 */ <<goto "寻找安全屋|Chapter2_Safehouse">>
<<BGMCheck "bgm_calm_suspense">>\ 多米尼克不再犹豫,她扶着受损的手臂,带着你迅速离开了小广场,再次在废弃的街道和小巷中穿行。这一次,她的动作明显谨慎了许多,似乎在极力避免与任何敌人接触。 你们最终来到一栋看起来相对完好的废弃二层小楼前。多米尼克仔细检查了周围,确认没有直接的威胁后,才示意你跟她进去。 小楼内部布满了灰尘,家具被白布覆盖,空气中弥漫着一股陈旧的气息。多米尼克迅速检查并锁好了门窗。 “这里暂时安全。”多米尼克靠在一张蒙着白布的沙发上,开始检查自己受损的手臂,一些细小的电火花还在跳动。“能量传导部分过载,需要修复。幸运的是,核心系统没受影响。” 她抬起头,目光锁定你:“现在,我们可以谈谈了。关于你的‘灵能盾’,还有……‘异能者’。” <<if $playerTriedGun>> 她顿了一下,补充道:“还有,以后别再碰你不懂的武器,那只会害死你自己。” <</if>> <<if not $explainedShield>> [[“快告诉我,灵能盾到底是什么?”|解释灵能盾]] <<else>> [[“关于异能者,你还知道些什么?”|深入了解异能者]] <</if>> [[(看着她的手臂)“你……到底是什么人?”|再次询问多米尼克身份]] /* 重新提供询问身份的选项 */ [[“你还好吗?需要帮忙吗?”|关心多米尼克][$domOpinion += 1]]
你看着她手臂上跳动的电火花,有些担心地问:“你还好吗?伤得重不重?有什么我能帮忙的吗?” 多米尼克看了你一眼,电子眼中似乎闪过一丝不易察觉的波动。“损伤在可控范围内。自我修复程序已启动,但需要时间。你……帮不上忙。保持警惕就是最大的帮助。” 话虽如此,她的语气似乎比之前柔和了一点点。 [[“好吧。那你快告诉我,灵能盾到底是什么?”|解释灵能盾]] <<if not $explainedShield>> [[“好吧。那关于异能者,你还知道些什么?”|深入了解异能者]] <<if $explainedShield>> [[(看着她的手臂)“你……到底是什么人?”|再次询问多米尼克身份]]
<<set $explainedShield to true>>\ 多米尼克一边进行着手臂的初步处理,一边开始解释,她的声音恢复了之前的平稳,像是在读取资料库: “灵能盾,或者叫异能盾,是所有异能者都具备的基础被动防护能力。它由异能者自身的灵力维持,可以在身体表面形成一层能量屏障。” “它的主要作用是吸收和减缓物理冲击。受到攻击时,它会像冰层一样出现裂纹,吸收大部分伤害,同时也能一定程度上缓解痛感。这就是为什么你刚才被那种怪物的爪子击中却没有受重伤,甚至能硬抗链锯攻击的原因。” “灵能盾不需要主动触发,是自动形成的,尤其是在感知到致命威胁时会被动激发。它的强度和恢复速度取决于异能者本身的灵力水平以及当时的激发程度。你的灵能盾刚才表现出的强度远超初次,说明你的灵力在应激下有显著提升,但之后迅速碎裂也表明你的灵力总量可能不高,或者控制还不稳定。” 她看着你:“明白了吗?你不再是一个普通人类了。你是一个刚刚觉醒,潜力未知的异能者。” [[“我还是很难相信……”|深入了解异能者]] [[“那……异能者除了这个盾,还有别的能力吗?”|深入了解异能者]] [[“灵力……是什么?”|深入了解异能者]] /* 引入灵力概念 */
/* 在这里可以根据玩家的选择,进一步展开对异能者、灵力、小镇历史等的对话 */ /* 多米尼克可能知道一些关于异能者的基础信息,但可能不全面,或者带有她自己的“机器人”视角解读 */ /* 例如: */ 多米尼克:“关于异能者的具体能力种类,我的数据库信息缺失严重。记录显示异能表现形式多样,除了基础的灵能盾,可能还存在操控元素、心灵感应、超速再生等各种特殊能力,但缺乏统一标准和详细记录。灵力……是一种尚未被完全解析的能量形式,似乎与生命体意识、情绪波动或特定环境有关。你的两次灵能盾强度差异,可能就与你当时的情绪状态(恐惧、救人的决心)有关。” 她顿了顿,继续道:“这个小镇……根据我受损数据库中的残存任务简报片段,被标记为‘高危异常区域’,提及存在‘不稳定空间裂隙’和‘异常能量源’,推测这些可能与那些空壳怪物以及异能者的出现存在联系。” <<if $domOpinion >= 3 and $contactStatus is "accepted">> /* 如果好感度较高且之前帮助过她 */ 她看着你,补充了一句:“你的出现……以及你异能的觉醒,或许能帮助我理解这个地方,以及我受损的记忆和任务目标。我的系统……在分析你灵能盾的能量特征时,似乎解锁了一小部分关于‘灵能交互协议’的碎片信息。虽然原理不明,但接触和观察异能者,可能对我自身的修复和任务解读有益。” /* 对应之前修改的对话 */ [[“所以你需要我?”|确认合作可能]] <</if>> /* ... 更多对话选项和分支 ... */ [[“我们接下来怎么办?”|新的变数]] [[再次询问多米尼克身份]]
你看着眼前这位冷静、强大,并且似乎知晓许多秘密的机械少女,再次问出了那个问题:“你……你到底是谁?为什么会在这里?你的任务到底是什么?” 多米尼克沉默了片刻,自我修复的微光在她手臂上流转。 “我之前说过,我的核心数据损坏严重。我只知道代号是‘多米尼克’。任务是‘清除异常’,具体目标未知,处理方式未知。至于为什么在这里……”她看了一眼窗外,“根据系统日志的最后记录,我是在追踪一个高能量信号时坠落至此,随后遭遇伏击导致重创。现在看来,这个‘高能量信号’很可能与这个小镇的异常,甚至与异能者的存在有关。而你……”她看向你,“你的觉醒,让这个地方的‘异常’变得更加具体了。” 她的回答依旧保留了许多,但比之前多了一些信息。 [[“好吧……”|深入了解异能者]] /* 如果还没了解完 */ [[“我们接下来怎么办?”|新的变数]]
你捕捉到了她话语中的信息:“所以,你需要我?因为我是……异能者?你需要研究我?” 多米尼克:“‘研究’并非主要目的。从逻辑上分析,你的存在对我完成未知任务和自我修复可能具有正面影响。你的异能或许能与这里的异常产生某种交互,提供我缺失的信息。虽然
<<nobr>> /* 图鉴现在通过侧边栏按钮在对话框中打开。 */ <p class="codex-info">速写本(图鉴)现在可以通过侧边栏的按钮打开。</p> <</nobr>> <div class="codex-navigation"> [[返回游戏|previous()]] </div>
<link rel="icon" type="image/x-icon" href="assets/favicon.ico"> <div id="story"> <div id="passages"></div> </div> <div id="ui-bar"> <div id="ui-bar-tray"> <div id="ui-bar-toggle" class="ui-bar-item" tabindex="0" title="切换侧边栏" aria-label="切换侧边栏"></div> </div> <div id="ui-bar-body"> <div id="ui-bar-header"> <img id="title-image2" src="assets/images/poster/title-image2.webp" alt="BB童年篇标题图片" style="display: block; margin: 0 auto; max-width: 100%;"> </div> <div id="ui-bar-content"> <nav id="ui-bar-menu"> <ul id="menu-core" class="menu"> <li id="menu-item-saves"><a tabindex="0">💾 存档 / 读档</a></li> <li id="menu-item-back" class="ui-bar-item"><a tabindex="0">⬅️ 后退</a></li> <li id="menu-item-forward" class="ui-bar-item"><a tabindex="0">➡️ 前进</a></li> <li id="menu-item-codex"><a tabindex="0" onclick="window.openCodexDialog()">📖 速写本 (图鉴)</a></li> <li id="menu-item-settings" class="ui-bar-item"><a tabindex="0">⚙️ 设置</a></li> <li id="menu-item-restart"><a tabindex="0">🔄 重新开始</a></li> <li id="menu-item-group-reward"><a tabindex="0">🎁 加群反馈拿奖</a></li> <li id="menu-item-author" class="ui-bar-item"><a tabindex="0">🖋️ 作者主页</a></li> <li id="menu-item-credits"><a tabindex="0">🙏 感谢名单</a></li> </ul> </nav> </div> <div id="ui-bar-footer"> <div id="ui-bar-version"> <span style="font-size: 0.8em; text-align: center; display: block; margin-top: 1em;">版本: 0.1.55(第一章公测)</span> </div> </div> </div> </div> <div id="credits-modal" class="settings-overlay" style="display: none;"> <div class="settings-content credits-content"> <div class="credits-header"> <h2>感谢名单</h2> <div class="credits-decoration"></div> </div> <div class="credits-body"> <div class="credits-intro"> <p>衷心感谢所有为本作品贡献的个人与团队</p> </div> <div class="credits-section"> <h3>核心贡献者</h3> <ul class="credits-list"> <li> <span class="credits-role">剧本&开发者</span> <span class="credits-name">丶青萝卜(tobenot)</span> </li> </ul> </div> <div class="credits-section"> <h3>测试与反馈</h3> <ul class="credits-list"> <li> <span class="credits-name">花蕊</span> </li> </ul> </div> <div class="credits-section"> <h3>素材来源</h3> <ul class="credits-list"> <li> <span class="credits-detail">所有非剧本的素材均来自AI</span> </li> </ul> </div> <div class="credits-section"> <h3>技术支持与灵感</h3> <ul class="credits-list"> <li> <span class="credits-detail">Twine/SugarCube 社区资料</span> </li> <li> <span class="credits-detail">各路编程AI大神的帮助</span> </li> </ul> </div> <div class="credits-special-thanks"> <p>以及每一位支持和关注本作品的玩家!</p> <p class="credits-quote">感谢你们的付出与支持!</p> </div> </div> <button id="credits-modal-close" class="button">关闭</button> </div> </div> <div id="group-reward-modal" class="settings-overlay" style="display: none;"> <div class="settings-content reward-content"> <div class="reward-header"> <h2>加群反馈拿奖</h2> <div class="reward-decoration"></div> </div> <div class="reward-body"> <div class="reward-intro"> <p>加入粉丝群提供宝贵的反馈意见,进入感谢名单,有机会获得作者之前发布的游戏的Key!</p> </div> <div class="reward-qrcode-container"> <div class="qrcode-inner"> <img src="assets/images/poster/qq_group_qrcode_1028122611.webp" alt="QQ群二维码" class="reward-qrcode"> <div class="qrcode-shine"></div> </div> <div class="reward-join-link"> <a href="https://qm.qq.com/q/96TrhX1K0w" target="_blank">点击链接加入群聊【丶青萝卜的母港】</a> </div> </div> <div class="reward-games"> <h3>有机会获得Steam上的游戏激活码</h3> <div class="game-showcase"> <div class="game-item"> <div class="game-image-container"> <img src="assets/images/poster/lh_header_schinese.webp" alt="太空射击" class="game-image"> </div> </div> <div class="game-item"> <div class="game-image-container"> <img src="assets/images/poster/nbsk_header.webp" alt="动作游戏" class="game-image"> </div> </div> </div> </div> </div> <button id="group-reward-close" class="button">关闭</button> </div> </div> <style> /* 感谢名单样式 */ .credits-content { background-color: rgba(15, 15, 15, 0.97); border: none; position: relative; overflow: hidden; max-width: 700px; box-shadow: 0 0 30px rgba(0, 0, 0, 0.7); } .credits-content:before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border: 1px solid #d4af37; pointer-events: none; box-shadow: inset 0 0 20px rgba(212, 175, 55, 0.15); } .credits-header { position: relative; padding-bottom: 20px; margin-bottom: 25px; } .credits-header h2 { font-family: 'Cinzel', 'Times New Roman', serif; font-size: 1.8em; color: #d4af37; text-align: center; margin: 0 0 10px 0; text-shadow: 0 0 10px rgba(212, 175, 55, 0.5); letter-spacing: 2px; } .credits-decoration { height: 2px; background: linear-gradient(to right, transparent, #d4af37, transparent); width: 80%; margin: 0 auto; } .credits-body { padding: 0 20px; max-height: 60vh; overflow-y: auto; font-family: 'Times New Roman', serif; } .credits-intro { text-align: center; font-style: italic; margin-bottom: 20px; color: #e0e0e0; } .credits-section { margin-bottom: 25px; position: relative; } .credits-section h3 { color: #d4af37; font-size: 1.2em; margin-bottom: 10px; border-bottom: 1px solid rgba(212, 175, 55, 0.3); padding-bottom: 5px; } .credits-list { list-style: none; padding: 0; margin: 0; } .credits-list li { padding: 8px 0; display: flex; align-items: center; flex-wrap: wrap; } .credits-list li:not(:last-child) { border-bottom: 1px dotted rgba(255, 255, 255, 0.1); } .credits-role { font-weight: bold; color: #bbb; margin-right: 15px; min-width: 80px; } .credits-name { color: #e0e0e0; } .credits-detail { color: #e0e0e0; } .credits-special-thanks { text-align: center; margin-top: 30px; margin-bottom: 15px; padding: 15px; border-top: 1px solid rgba(212, 175, 55, 0.3); border-bottom: 1px solid rgba(212, 175, 55, 0.3); background-color: rgba(212, 175, 55, 0.05); } .credits-special-thanks p { margin: 5px 0; color: #e0e0e0; } .credits-quote { font-style: italic; color: #d4af37 !important; font-size: 1.1em; margin-top: 10px !important; } /* 滚动条样式 */ .credits-body::-webkit-scrollbar { width: 6px; } .credits-body::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.3); } .credits-body::-webkit-scrollbar-thumb { background: rgba(212, 175, 55, 0.5); border-radius: 3px; } .credits-body::-webkit-scrollbar-thumb:hover { background: rgba(212, 175, 55, 0.7); } /* 加群反馈样式 */ .reward-content { background-color: rgba(15, 15, 15, 0.97); border: none; position: relative; overflow: hidden; max-width: 700px; box-shadow: 0 0 30px rgba(0, 0, 0, 0.7); } .reward-content:before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border: 1px solid #d4af37; pointer-events: none; box-shadow: inset 0 0 20px rgba(212, 175, 55, 0.15); } .reward-header { position: relative; padding-bottom: 20px; margin-bottom: 25px; } .reward-header h2 { font-family: 'Cinzel', 'Times New Roman', serif; font-size: 1.8em; color: #d4af37; text-align: center; margin: 0 0 10px 0; text-shadow: 0 0 10px rgba(212, 175, 55, 0.5); letter-spacing: 2px; } .reward-decoration { height: 2px; background: linear-gradient(to right, transparent, #d4af37, transparent); width: 80%; margin: 0 auto; } .reward-body { padding: 0 20px 15px; max-height: 70vh; overflow-y: auto; } .reward-intro { text-align: center; font-style: italic; margin-bottom: 25px; color: #e0e0e0; line-height: 1.6; } .reward-qrcode-container { display: flex; flex-direction: column; align-items: center; margin-bottom: 30px; } .qrcode-inner { position: relative; padding: 10px; background-color: white; border-radius: 8px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); margin-bottom: 15px; overflow: hidden; } .reward-qrcode { display: block; width: 200px; height: 200px; } .qrcode-shine { position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.4), transparent); animation: qrcode-shine 2.5s infinite; pointer-events: none; } @keyframes qrcode-shine { 0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); } 100% { transform: translateX(100%) translateY(100%) rotate(45deg); } } .reward-join-link { text-align: center; margin-top: 10px; } .reward-join-link a { color: #d4af37; text-decoration: none; font-weight: bold; transition: all 0.3s ease; position: relative; display: inline-block; } .reward-join-link a:after { content: ''; position: absolute; bottom: -3px; left: 0; width: 100%; height: 1px; background-color: #d4af37; transform: scaleX(0); transition: transform 0.3s ease; transform-origin: right; } .reward-join-link a:hover { text-shadow: 0 0 5px rgba(212, 175, 55, 0.7); color: #ffd700; } .reward-join-link a:hover:after { transform: scaleX(1); transform-origin: left; } .reward-games { padding: 0 10px; } .reward-games h3 { color: #d4af37; text-align: center; font-size: 1.3em; margin-bottom: 20px; position: relative; } .reward-games h3:after { content: ''; position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%); width: 80px; height: 2px; background: linear-gradient(to right, transparent, #d4af37, transparent); } .game-showcase { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; } .game-item { max-width: 300px; transition: all 0.3s ease; } .game-image-container { position: relative; overflow: hidden; border-radius: 6px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.4); transition: all 0.3s ease; } .game-image { display: block; width: 100%; height: auto; transition: transform 0.3s ease; } .game-name { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent); color: #fff; padding: 20px 10px 10px; text-align: center; font-weight: bold; transition: all 0.3s ease; } .game-image-container:hover { box-shadow: 0 8px 20px rgba(0, 0, 0, 0.6); transform: translateY(-5px); } .game-image-container:hover .game-image { transform: scale(1.05); } .reward-body::-webkit-scrollbar { width: 6px; } .reward-body::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.3); } .reward-body::-webkit-scrollbar-thumb { background: rgba(212, 175, 55, 0.5); border-radius: 3px; } .reward-body::-webkit-scrollbar-thumb:hover { background: rgba(212, 175, 55, 0.7); } /* 通用关闭按钮 */ .settings-content .button { background-color: rgba(0, 0, 0, 0.6); color: #d4af37; border: 1px solid #d4af37; padding: 8px 25px; border-radius: 4px; font-weight: bold; cursor: pointer; transition: all 0.3s ease; margin-top: 15px; position: relative; overflow: hidden; display: block; margin: 20px auto 0; } .settings-content .button:before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(212, 175, 55, 0.3), transparent); transition: left 0.5s ease; z-index: 1; } .settings-content .button:hover { background-color: #d4af37; color: #000; box-shadow: 0 0 15px rgba(212, 175, 55, 0.5); } .settings-content .button:hover:before { left: 100%; } </style> <div id="custom-save-load-interface" style="display:none;"> <h2>自定义存档/读档</h2> <div id="save-slots-list"> </div> <div class="custom-save-actions" style="margin-top: 20px; padding: 10px; border-top: 1px solid #d4af37; display: flex; justify-content: space-around;"> <button id="export-all-saves-button" class="confirm-button" style="min-width: 120px;">导出全部存档</button> <button id="import-saves-button" class="confirm-button" style="min-width: 120px;">导入存档文件</button> <input type="file" id="import-file-input" accept=".html,.json,text/plain,.save" style="display: none;"> <button id="close-custom-save-menu-button">关闭</button> </div> </div>
<<nobr>> /* BGM系统初始化 */ <<widget "InitBGMSystem">> <<silently>> /* 集中管理所有BGM配置 */ <<set setup.bgmMap ??= { "bgm_startup": "assets/audio/bgm/bgm_startup_wind_chimes_in_the_mist_pure.mp3", "bgm_elite": "assets/audio/bgm/bgm_elite_Void's_Grasp.mp3", "bgm_dom": "assets/audio/bgm/bgm_dom_The_Next_Time_I_Rise.mp3", "bgm_max": "assets/audio/bgm/bgm_max_Symphony_of_Colors.mp3", "bgm_domBH": "assets/audio/bgm/bgm_domBH_Binary_Heartbeat.mp3", "bgm_monster": "assets/audio/bgm/bgm_monster_Distorted_Chase_v2.mp3", "bgm_chase": "assets/audio/bgm/bgm_chase_Distorted_Chase_v3.mp3", }>> /* 初始化当前播放状态 */ <<set setup.currentPlayingBGM ??= "">> /* 预加载所有BGM */ <<set setup.preloadBGMList ??= [ "bgm_startup", "bgm_dom", "bgm_elite", ]>> <<for _bgmName range setup.preloadBGMList>> <<cacheaudio _bgmName setup.bgmMap[_bgmName]>> <</for>> <</silently>> <</widget>> /* BGM播放检查和控制 */ <<widget "BGMCheck">> <<silently>> /* 确保BGM系统已初始化 */ <<if !setup.bgmMap>> <<InitBGMSystem>> <</if>> /* 检查是否有参数传入 */ <<if $args.length > 0>> /* 获取 BGM 名称 */ <<set _bgmName to $args[0]>> <<set _shouldContinue to true>> /* Debug信息 */ <<run console.log("当前请求播放的BGM: " + _bgmName)>> <<run console.log("当前正在播放的BGM: " + setup.currentPlayingBGM)>> /* 检查 BGM 是否已在播放 */ <<if _bgmName is setup.currentPlayingBGM && _bgmName neq "">> /* 如果相同的BGM已经在播放,直接返回 */ <<run console.log("检测到相同BGM正在播放,跳过重复播放")>> <<set _shouldContinue to false>> <</if>> /* 只有在需要切换BGM时才执行后续操作 */ <<if _shouldContinue>> /* 如果有其他 BGM 在播放,先停止它 */ <<if setup.currentPlayingBGM neq "" && setup.bgmMap.hasOwnProperty(setup.currentPlayingBGM)>> <<run console.log("停止当前播放的BGM: " + setup.currentPlayingBGM)>> <<audio setup.currentPlayingBGM stop>> <</if>> /* 检查BGM是否存在于bgmMap中 */ <<if setup.bgmMap.hasOwnProperty(_bgmName)>> /* 使用映射中的路径缓存音频 */ <<run console.log("开始播放新的BGM: " + _bgmName)>> <<cacheaudio _bgmName setup.bgmMap[_bgmName]>> <<audio _bgmName loop play>> <<set setup.currentPlayingBGM to _bgmName>> <<run console.log("已设置 currentPlayingBGM 为: " + setup.currentPlayingBGM)>> <<else>> /* 未知 BGM */ <<run console.log("错误:未知的 BGM \"" + _bgmName + "\",该BGM不在bgmMap配置中")>> <</if>> <</if>> <<else>> /* 没有传入参数 */ <<run console.log("错误:BGMCheck Widget 未接收到参数")>> <</if>> <</silently>> <</widget>> /* 添加自定义BGM */ <<widget "AddBGM">> <<silently>> /* 确保BGM系统已初始化 */ <<if !setup.bgmMap>> <<InitBGMSystem>> <</if>> /* 检查参数 */ <<if $args.length >= 2>> <<set _bgmName to $args[0]>> <<set _bgmPath to $args[1]>> /* 添加新的BGM到映射中 */ <<set setup.bgmMap[_bgmName] to _bgmPath>> /* 预加载新添加的BGM */ <<cacheaudio _bgmName _bgmPath>> <<run console.log("已添加并缓存新的BGM: " + _bgmName + " -> " + _bgmPath)>> <<else>> <<run console.log("错误:AddBGM Widget 需要两个参数 (bgmName, bgmPath)")>> <</if>> <</silently>> <</widget>> /* 手动缓存加载BGM */ <<widget "CacheBGM">> <<silently>> /* 确保BGM系统已初始化 */ <<if !setup.bgmMap>> <<InitBGMSystem>> <</if>> /* 检查参数 */ <<if $args.length > 0>> <<set _bgmName to $args[0]>> /* 检查BGM是否存在于bgmMap中 */ <<if setup.bgmMap.hasOwnProperty(_bgmName)>> /* 使用映射中的路径缓存音频 */ <<cacheaudio _bgmName setup.bgmMap[_bgmName]>> <<run console.log("已手动缓存BGM: " + _bgmName + " -> " + setup.bgmMap[_bgmName])>> <<else>> /* 未知 BGM */ <<run console.log("错误:未知的 BGM \"" + _bgmName + "\",该BGM不在bgmMap配置中")>> <</if>> <<else>> /* 没有传入参数 */ <<run console.log("错误:CacheBGM Widget 未接收到参数")>> <</if>> <</silently>> <</widget>> /* 停止当前BGM */ <<widget "FadeoutBGM">> <<silently>> /* 确保BGM系统已初始化 */ <<if !setup.bgmMap>> <<InitBGMSystem>> <</if>> /* 检查是否有BGM在播放 */ <<if setup.currentPlayingBGM neq "" && setup.bgmMap.hasOwnProperty(setup.currentPlayingBGM)>> /* 停止当前播放的BGM */ <<run console.log("停止当前播放的BGM: " + setup.currentPlayingBGM)>> <<audio setup.currentPlayingBGM fadeout>> <<set setup.currentPlayingBGM to "">> <<run console.log("已清空 currentPlayingBGM")>> <<else>> <<run console.log("当前没有BGM在播放")>> <</if>> <</silently>> <</widget>> <</nobr>>\