jianzhihuixiang/alacarte-novel-website/chapters/chapter-97.html
2026-03-29 14:08:36 +08:00

984 lines
44 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<title>光之舞会 - 阿拉德:剑之回响</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
<style>
:root {
--bg-primary: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
--text-primary: #e0e0e0;
--text-secondary: #888;
--accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
--border-color: rgba(255,255,255,0.1);
--btn-bg: rgba(255,255,255,0.1);
--btn-hover: rgba(255,255,255,0.2);
}
[data-theme="light"] {
--bg-primary: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
--text-primary: #333;
--text-secondary: #666;
--border-color: rgba(0,0,0,0.1);
--btn-bg: rgba(0,0,0,0.05);
--btn-hover: rgba(0,0,0,0.1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Noto Serif SC', serif;
background: var(--bg-primary);
color: var(--text-primary);
line-height: 1.8;
min-height: 100vh;
transition: all 0.3s ease;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
padding-bottom: 120px;
}
/* 顶部导航 */
.top-nav {
position: fixed;
top: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.3);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--border-color);
z-index: 1000;
padding: 10px 20px;
}
.top-nav-content {
max-width: 800px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
}
.nav-link {
color: var(--text-primary);
text-decoration: none;
font-family: 'Noto Sans SC', sans-serif;
font-size: 14px;
padding: 8px 16px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
transition: all 0.3s ease;
}
.nav-link:hover {
background: var(--btn-hover);
}
.chapter-header {
text-align: center;
padding: 80px 0 40px;
border-bottom: 1px solid var(--border-color);
margin-bottom: 40px;
}
.chapter-number {
font-size: 14px;
color: var(--text-secondary);
letter-spacing: 4px;
text-transform: uppercase;
margin-bottom: 10px;
}
.chapter-title {
font-size: 32px;
font-weight: 700;
background: var(--accent-gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 20px;
}
.chapter-meta {
font-size: 14px;
color: var(--text-secondary);
}
.chapter-content {
font-size: 18px;
line-height: 2;
text-align: justify;
}
.chapter-content p {
margin-bottom: 1.5em;
text-indent: 2em;
}
.chapter-content p:first-of-type::first-letter {
font-size: 3em;
float: left;
line-height: 1;
margin-right: 8px;
margin-top: -5px;
background: var(--accent-gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
font-weight: 700;
}
/* 固定底部导航 */
.fixed-nav {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.3);
backdrop-filter: blur(10px);
border-top: 1px solid var(--border-color);
z-index: 1000;
padding: 15px 20px;
}
.fixed-nav-content {
max-width: 800px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
}
.nav-btn {
padding: 12px 24px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
color: var(--text-primary);
text-decoration: none;
transition: all 0.3s ease;
font-family: 'Noto Sans SC', sans-serif;
font-size: 14px;
cursor: pointer;
}
.nav-btn:hover {
background: var(--btn-hover);
transform: translateY(-2px);
}
.nav-btn.disabled {
opacity: 0.3;
cursor: not-allowed;
pointer-events: none;
}
/* 右侧滚动按钮 */
.scroll-buttons {
position: fixed;
right: 20px;
bottom: 90px;
display: flex;
flex-direction: column;
gap: 10px;
z-index: 1001;
}
.scroll-btn {
width: 40px;
height: 40px;
border-radius: 8px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
color: var(--text-primary);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
transition: all 0.3s ease;
font-family: 'Noto Sans SC', sans-serif;
}
.scroll-btn:hover {
background: var(--btn-hover);
}
/* TTS控制面板 */
.tts-panel {
position: fixed;
left: 20px;
bottom: 90px;
display: flex;
flex-direction: column;
gap: 10px;
z-index: 1001;
background: rgba(0,0,0,0.5);
backdrop-filter: blur(10px);
border-radius: 12px;
border: 1px solid var(--border-color);
padding: 15px;
min-width: 180px;
}
.tts-title {
font-size: 12px;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 2px;
margin-bottom: 5px;
}
.tts-controls {
display: flex;
gap: 8px;
margin-bottom: 10px;
}
.tts-btn {
width: 36px;
height: 36px;
border-radius: 8px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
color: var(--text-primary);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
transition: all 0.3s ease;
font-family: 'Noto Sans SC', sans-serif;
}
.tts-btn:hover {
background: var(--btn-hover);
}
.tts-btn.active {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-color: #667eea;
}
.tts-progress {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 10px;
}
.tts-progress-bar {
flex: 1;
height: 4px;
background: var(--btn-bg);
border-radius: 2px;
overflow: hidden;
}
.tts-progress-fill {
height: 100%;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
width: 0%;
transition: width 0.1s ease;
}
.tts-time {
font-size: 12px;
color: var(--text-secondary);
font-family: 'Noto Sans SC', sans-serif;
min-width: 80px;
}
.tts-speed {
display: flex;
align-items: center;
gap: 8px;
}
.tts-speed-label {
font-size: 12px;
color: var(--text-secondary);
font-family: 'Noto Sans SC', sans-serif;
}
.tts-speed-select {
padding: 4px 8px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
border-radius: 4px;
color: var(--text-primary);
font-size: 12px;
cursor: pointer;
font-family: 'Noto Sans SC', sans-serif;
}
@media (max-width: 600px) {
.tts-panel {
left: 10px;
right: 10px;
bottom: 75px;
min-width: auto;
padding: 12px;
width: auto;
}
.tts-btn {
width: 32px;
height: 32px;
font-size: 12px;
}
.tts-title {
font-size: 11px;
}
.tts-speed-label {
font-size: 11px;
}
.tts-speed-select {
padding: 3px 6px;
font-size: 11px;
}
.tts-time {
font-size: 11px;
min-width: 60px;
}
}
@media (max-width: 400px) {
.tts-panel {
bottom: 70px;
padding: 10px;
}
.tts-controls {
gap: 6px;
}
.tts-btn {
width: 28px;
height: 28px;
font-size: 11px;
}
}
/* 侧边栏 - 标题固定,内容滚动 */
.sidebar {
position: fixed;
right: 20px;
top: 50%;
transform: translateY(-50%);
background: rgba(0,0,0,0.5);
backdrop-filter: blur(10px);
border-radius: 12px;
border: 1px solid var(--border-color);
width: 200px;
max-height: 70vh;
z-index: 999;
display: flex;
flex-direction: column;
}
.sidebar-title {
font-size: 14px;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 2px;
padding: 15px 20px;
border-bottom: 1px solid var(--border-color);
flex-shrink: 0;
}
.sidebar-content {
overflow-y: auto;
padding: 10px 20px 20px;
flex: 1;
scrollbar-width: thin;
scrollbar-color: transparent transparent;
transition: scrollbar-color 0.3s ease;
}
.sidebar-content:hover {
scrollbar-color: rgba(255,255,255,0.3) transparent;
}
.sidebar-content::-webkit-scrollbar {
width: 6px;
}
.sidebar-content::-webkit-scrollbar-track {
background: transparent;
}
.sidebar-content::-webkit-scrollbar-thumb {
background: transparent;
border-radius: 3px;
transition: background 0.3s ease;
}
.sidebar-content:hover::-webkit-scrollbar-thumb {
background: rgba(255,255,255,0.3);
}
.sidebar-content:hover::-webkit-scrollbar-thumb:hover {
background: rgba(255,255,255,0.5);
}
[data-theme="light"] .sidebar-content:hover {
scrollbar-color: rgba(0,0,0,0.3) transparent;
}
[data-theme="light"] .sidebar-content:hover::-webkit-scrollbar-thumb {
background: rgba(0,0,0,0.3);
}
[data-theme="light"] .sidebar-content:hover::-webkit-scrollbar-thumb:hover {
background: rgba(0,0,0,0.5);
}
.sidebar-chapter {
display: block;
padding: 8px 0;
color: #aaa;
text-decoration: none;
font-size: 13px;
border-bottom: 1px solid rgba(255,255,255,0.05);
transition: all 0.3s ease;
line-height: 1.5;
}
.sidebar-chapter:hover {
color: #667eea;
}
.sidebar-chapter.current {
color: #667eea;
font-weight: 600;
}
@media (max-width: 1200px) {
.sidebar {
display: none;
}
}
@media (max-width: 600px) {
.chapter-title {
font-size: 24px;
}
.chapter-content {
font-size: 16px;
}
.fixed-nav-content {
gap: 10px;
}
.nav-btn {
padding: 10px 15px;
font-size: 12px;
}
.scroll-buttons {
right: 10px;
bottom: 80px;
}
.scroll-btn {
width: 36px;
height: 36px;
}
}
/* 滚动条样式 */
.sidebar::-webkit-scrollbar {
width: 4px;
}
.sidebar::-webkit-scrollbar-track {
background: transparent;
}
.sidebar::-webkit-scrollbar-thumb {
background: rgba(255,255,255,0.2);
border-radius: 2px;
}
</style>
</head>
<body>
<!-- 顶部导航 -->
<nav class="top-nav">
<div class="top-nav-content">
<a href="../index.html" class="nav-link">返回首页</a>
<button class="nav-link" id="themeToggle">切换主题</button>
</div>
</nav>
<div class="container">
<header class="chapter-header">
<div class="chapter-number">Chapter 97</div>
<h1 class="chapter-title">{{CHAPTER_TITLE}}</h1>
</header>
<article class="chapter-content">
<p>寂静城,光之舞会区域。</p>
<p>林克站在巨大的金属平台上,环顾四周。这里与之前的区域完全不同——无数水晶吊灯从穹顶垂下,散发着柔和的金色光芒。地面上铺着光滑的大理石,倒映着灯光,仿佛置身于一个巨大的舞池。</p>
<p>「这里就是...光之舞会?」米娅惊叹道,「好美...不像是在寂静城里...」</p>
<p>「这里是卢克爷爷用来举办宴会的地方。」贝奇挽着林克的手臂,解释道,「在很久以前,海伯伦星的贵族们经常在这里跳舞、交谈。卢克爷爷想重现那个场景,所以建造了这个地方。」</p>
<p>林克点点头,但目光依然警惕。美丽的外表下往往隐藏着危险,这是他在阿拉德大陆学到的经验。</p>
<p>「小心点。」他握紧细雪之舞,「这么重要的地方,不可能没有守卫。」</p>
<p>仿佛印证他的话,四周突然传来一阵机械运转的声音!</p>
<p>「警告!警告!检测到未授权人员!启动防御协议!」</p>
<p>从天花板的暗格中,无数机械装置降下。那是一些造型优雅的机械人偶,它们穿着华丽的礼服,手中握着发光的能量剑,眼中跳动着红色的光芒。</p>
<p>「这些是...舞伴型守卫?」皇女艾丽婕皱眉道。</p>
<p>「是卢克爷爷的杰作!」贝奇惊呼,「它们原本是用于招待客人的,但现在...它们把我们都当成入侵者了!」</p>
<p>「能关闭它们吗?」林克问道。</p>
<p>「不行!它们的控制权限被锁定了!」贝奇焦急地说道,「只有卢克爷爷亲自下令才能停止!」</p>
<p>「那就只能战斗了。」林克将贝奇推到身后,「米娅、皇女,保护贝奇!这些家伙交给我!」</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>机械人偶们优雅地行了一个礼,然后同时发动了攻击!</p>
<p>它们的动作流畅而精准,仿佛真的在跳舞一般。能量剑在空中划出优美的弧线,但每一击都蕴含着致命的威力。</p>
<p>「极·鬼剑术!」</p>
<p>林克挥剑格挡,冰蓝色的剑气与金色的能量剑碰撞,发出刺耳的声响。这些机械人偶的剑技出乎意料地高超,每一剑都恰到好处地封住了他的退路。</p>
<p>「这些家伙...不仅会跳舞,剑术也很强!」林克咬牙,身形闪动,在机械人偶之间穿梭。</p>
<p>「林克!它们的弱点在背后的能源核心!」贝奇喊道,「那是卢克爷爷设计的唯一破绽!」</p>
<p>「明白了!」</p>
<p>林克身形一闪,突进到一台机械人偶身后。细雪之舞带着寒光,精准地刺入它背后的核心!</p>
<p>「咔嚓——!」</p>
<p>机械人偶的身体僵硬了一瞬,然后缓缓倒下,眼中的红光熄灭。</p>
<p>「有效!」</p>
<p>林克如法炮制,在机械人偶群中穿梭,一台接一台地破坏它们的能源核心。但机械人偶的数量太多,而且它们的配合极其默契,仿佛一个整体。</p>
<p>「这些家伙...在组成剑阵!」林克惊讶地发现,机械人偶们的站位形成了一个精密的阵型,每一台人偶的攻击都能为同伴创造机会。</p>
<p>「这是海伯伦星的传统剑舞阵!」贝奇解释道,「卢克爷爷把古代的战斗舞蹈编入了它们的程序!」</p>
<p>「舞蹈...」林克眼中闪过一丝光芒,「那就让我来领舞吧!」</p>
<p>他深吸一口气,身形突然变得飘忽不定。细雪之舞在他手中如同有了生命,划出一道道优美的弧线。</p>
<p>「流心·跃!」</p>
<p>林克跃入空中,剑气如同雪花般洒落,将下方的机械人偶全部笼罩!</p>
<p>「极·鬼剑术——暴风式!」</p>
<p>数十道剑气爆发,配合着流心的连击,形成了一场真正的「剑之舞」。机械人偶们虽然精妙,但在林克的即兴发挥面前,它们的固定程序显得呆板而笨拙。</p>
<p>一台接一台的机械人偶倒下,最终,最后一个舞者也停止了动作。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>战斗结束后,光之舞会恢复了宁静。</p>
<p>林克收剑入鞘,微微喘息。这场战斗虽然激烈,但也让他对海伯伦星的文明有了更深的了解。</p>
<p>「卢克爷爷如果看到刚才的战斗,一定会很惊讶。」贝奇走到林克身边,眼中满是崇拜,「从来没有人能破解那个剑舞阵。」</p>
<p>「只是运气好。」林克微笑道,「你的提醒很关键。」</p>
<p>他环顾四周,发现光之舞会的尽头有一扇巨大的门,门上刻着复杂的符文。</p>
<p>「那扇门后面是什么?」</p>
<p>「是...光之储藏室。」贝奇说道,「卢克爷爷收集的光能都储存在那里。」</p>
<p>林克眼睛一亮:「也许那里会有关于光之根源的线索!」</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>众人来到门前,贝奇将手放在门上的感应器上。门缓缓打开,露出里面的景象。</p>
<p>那是一个巨大的圆形空间,中央悬浮着一个巨大的水晶球。水晶球中,金色的光芒如同液体般流动,散发着温暖而强大的能量。</p>
<p>「这就是...卢克爷爷收集的光能...」贝奇轻声说道,「来自天界的阳光。」</p>
<p>林克走近水晶球,感受着其中蕴含的能量。这股能量纯净而温暖,与卢克身上那种虚弱、痛苦的气息形成了鲜明的对比。</p>
<p>「贝奇,你说光之根源是海伯伦星的特产?」</p>
<p>「是的。」贝奇点头,「那是一种能自我再生的能量结晶,比任何光能都更加纯净。卢克爷爷曾经用这种结晶为海伯伦星提供能量。」</p>
<p>「那海伯伦星毁灭后,那些结晶去了哪里?」</p>
<p>贝奇沉默了片刻,然后说道:「大部分都随着星球毁灭了...但卢克爷爷在逃离的时候,带出了一小部分。」</p>
<p>她指向水晶球的底部,那里有一个小小的凹槽,里面放着一块指甲盖大小的金色结晶。</p>
<p>「那就是...光之根源的碎片?」林克问道。</p>
<p>「是的。」贝奇点头,「但这么小的碎片,根本不足以激活古老的能量核心...」</p>
<p>林克仔细观察着那块碎片,突然想起了什么。</p>
<p>「贝奇,你知道『光之舞会』这个名字的由来吗?」</p>
<p>「知道。」贝奇说道,「因为在这里,光能会呈现出舞蹈般的流动形态。卢克爷爷说,这是海伯伦星最美的景象。」</p>
<p>「舞蹈般的流动...」林克喃喃自语,然后眼睛一亮,「贝奇,如果我没猜错,这里应该有通往其他区域的密道!」</p>
<p>「密道?」</p>
<p>「海伯伦星的建筑都有一个特点——它们会利用光的折射来隐藏通道。」林克解释道,「在这个充满光能的地方,一定有什么被隐藏起来了!」</p>
<p>他走到水晶球旁边,仔细观察着光线的流动。果然,在特定的角度,他发现墙壁上有一些几乎不可见的纹路。</p>
<p>「那里!」</p>
<p>林克将细雪之舞插入地面的一个缝隙中,轻轻一转。</p>
<p>「轰隆隆——」</p>
<p>墙壁缓缓移动,露出一条隐藏的通道!</p>
<p>「真的找到了!」贝奇惊喜地叫道。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>通道的尽头是一个小型的储藏室。</p>
<p>这里摆放着各种海伯伦星的遗物——古老的书籍、精致的艺术品、还有一些林克看不懂的机械装置。</p>
<p>而在储藏室的中央,有一个透明的容器,里面漂浮着一块拳头大小的金色结晶。</p>
<p>「那是...!」贝奇瞪大了眼睛,「光之根源!卢克爷爷居然还保留着这么大一块!」</p>
<p>林克走近容器,感受着其中蕴含的庞大能量。这块结晶中蕴含的能量,比卢克收集的所有光能加起来还要纯净、还要强大。</p>
<p>「有了这块结晶,就能激活古老的能量核心了!」林克兴奋地说道。</p>
<p>「但是...」贝奇的表情变得复杂,「这块结晶是卢克爷爷的最后储备。如果用来激活能量核心,卢克爷爷就失去了最后的保障...」</p>
<p>林克沉默了。</p>
<p>他明白贝奇的担忧。卢克现在全靠吸收天界的光能维持生命,如果失去了这块最后的结晶,他的处境会更加危险。</p>
<p>「我们...需要和父亲商量。」林克最终说道,「这是他的东西,应该由他自己决定。」</p>
<p>贝奇点点头,眼中闪过一丝感激。</p>
<p>「谢谢您,林克。谢谢您尊重卢克爷爷的意愿。」</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>就在众人准备离开时,储藏室的入口突然传来一阵脚步声!</p>
<p>「谁在那里?!」一个冷峻的声音响起。</p>
<p>林克转身,看到一个身穿黑色铠甲的男子站在门口。他的面容英俊但冷漠,眼中带着审视的目光。</p>
<p>「巴恩?!」林克认出了这个人。</p>
<p>巴恩·巴休特,帝国骑士团的团长,也是四剑圣之一。在原作中,他是一个为了力量不择手段的人...</p>
<p>「哦?居然有人认识我?」巴恩挑了挑眉,「你是什么人?为什么会在这里?」</p>
<p>「我是林克。」林克握紧细雪之舞,警惕地说道,「我来这里是为了帮助卢克。」</p>
<p>「帮助卢克?」巴恩冷笑一声,「别开玩笑了。卢克是使徒,是人类的敌人。我来这里,是为了消灭他。」</p>
<p>「你错了。」林克说道,「卢克不是敌人,他只是想要活下去。」</p>
<p>「活下去?」巴恩的眼中闪过一丝嘲讽,「为了活下去就可以吞噬天界的光能?为了活下去就可以让无数人死亡?」</p>
<p>他拔出腰间的短剑,指向林克:「让开,否则我连你一起杀。」</p>
<p>林克没有退让,而是挡在了贝奇和光之根源前面。</p>
<p>「我不会让你过去的。」</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>空气瞬间凝固。</p>
<p>巴恩看着林克,眼中闪过一丝意外,然后变成了兴趣。</p>
<p>「有意思...居然有人敢挡我的路。」他嘴角微微上扬,「也好,让我看看你有什么本事!」</p>
<p>话音未落,巴恩的身影已经消失在原地!</p>
<p>「好快!」林克大惊,连忙举剑格挡。</p>
<p>「铛——!」</p>
<p>两把剑碰撞,发出震耳欲聋的声响。巴恩的力量比想象中还要强大,林克被震得连退数步。</p>
<p>「反应不错。」巴恩微笑道,「但还不够!」</p>
<p>他的剑技凌厉而精准,每一剑都直指要害。林克勉强招架,但渐渐感到吃力。</p>
<p>「这家伙...比暴戾搜捕团的人强太多了!」林克咬牙。</p>
<p>「怎么?就这点本事?」巴恩嘲讽道,「我还以为敢挡我路的人有多厉害呢。」</p>
<p>林克深吸一口气,眼中闪过一丝决然。</p>
<p>「既然这样...那就让你见识一下真正的剑技!」</p>
<p>「极·鬼剑术——万剑归宗!」</p>
<p>无数剑气从林克身上爆发,形成了一道剑气风暴,向巴恩席卷而去!</p>
<p>巴恩的脸色终于变了,他连忙后退,同时挥剑格挡。但剑气风暴的范围太大,他还是被几道剑气击中,铠甲上出现了几道裂痕。</p>
<p>「这是...剑神的技能?!」巴恩震惊地看着林克,「你居然已经领悟了极·神剑术?!」</p>
<p>「现在离开,我可以不杀你。」林克冷冷地说道。</p>
<p>巴恩沉默了片刻,然后收剑入鞘。</p>
<p>「有意思...」他深深地看了林克一眼,「我记住你了,林克。下次见面,我会拿出真正的实力。」</p>
<p>说完,他转身离去,身影很快消失在通道中。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>战斗结束后,林克松了一口气。</p>
<p>巴恩的出现让他意识到,卢克的处境比想象中更加危险。不仅是暴戾搜捕团,连帝国骑士团也盯上了卢克。</p>
<p>「林克...谢谢您...」贝奇从身后抱住他,声音有些颤抖,「如果不是您,光之根源就被抢走了...」</p>
<p>林克转过身,轻轻抚摸她的头发。</p>
<p>「不用担心,有我在,没有人能伤害你和卢克。」</p>
<p>贝奇抬起头,紫色的眼睛中满是依恋。</p>
<p>「林克...我...」</p>
<p>她踮起脚尖,在林克的唇上轻轻一吻。</p>
<p>「我会一直陪着您的...无论发生什么...」</p>
<p>林克抱紧她,心中暗暗发誓。</p>
<p>是的,他会保护她。</p>
<p>保护这个刚刚学会爱的少女,保护她所在乎的一切。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>带着光之根源,众人返回了卢克所在的核心区域。</p>
<p>当卢克得知林克找到了他隐藏的光之根源时,老人浑浊的眼睛中闪过一丝复杂的神色。</p>
<p>「年轻人...你真的很特别...」卢克缓缓说道,「这块结晶,是我最后的希望。你真的...愿意用它来激活古老的能量核心吗?」</p>
<p>「不是我用。」林克说道,「这是您的决定。我只是提供了一个选择。」</p>
<p>卢克沉默了许久,然后露出了微笑。</p>
<p>「好...我答应你...用这块结晶,激活古老的能量核心。」</p>
<p>「卢克爷爷!」贝奇惊呼,「那您怎么办?」</p>
<p>「没关系。」卢克温柔地看着女儿,「我相信这个年轻人。他会找到新的办法的。」</p>
<p>林克点点头,心中涌起一股责任感。</p>
<p>是的,他会找到办法。</p>
<p>为了卢克,为了贝奇,为了所有相信他的人们。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0; margin-top: 2em;">(第九十五章完)</p>
</article>
</div>
<!-- 固定底部导航 -->
<nav class="fixed-nav">
<div class="fixed-nav-content">
<a href="chapter-96.html" class="nav-btn ">上一章</a>
<a href="../chapters.html" class="nav-btn">目录</a>
<a href="chapter-98.html" class="nav-btn ">下一章</a>
</div>
</nav>
<!-- 右侧滚动按钮 -->
<div class="scroll-buttons">
<button class="scroll-btn" id="scrollTop" title="回到顶部"></button>
<button class="scroll-btn" id="scrollBottom" title="回到底部"></button>
</div>
<!-- TTS语音朗读面板 -->
<div class="tts-panel" id="ttsPanel">
<div class="tts-title">语音朗读</div>
<div class="tts-controls">
<button class="tts-btn" id="ttsPlay" title="播放"></button>
<button class="tts-btn" id="ttsPause" title="暂停"></button>
<button class="tts-btn" id="ttsStop" title="停止"></button>
</div>
<div class="tts-progress">
<div class="tts-progress-bar">
<div class="tts-progress-fill" id="ttsProgressFill"></div>
</div>
<div class="tts-time" id="ttsTime">0 / 0</div>
</div>
<div class="tts-speed">
<span class="tts-speed-label">速度:</span>
<select class="tts-speed-select" id="ttsSpeed">
<option value="0.5">慢速</option>
<option value="0.75">较慢</option>
<option value="1" selected>正常</option>
<option value="1.25">较快</option>
<option value="1.5">快速</option>
<option value="2">极速</option>
</select>
</div>
</div>
<!-- 侧边栏章节导航 -->
<aside class="sidebar">
<div class="sidebar-title">章节导航</div>
<div class="sidebar-content" id="sidebarContent">
<a href="chapter-67.html" class="sidebar-chapter ">第67章热血八番街·火箭侠的阴谋</a>
<a href="chapter-68.html" class="sidebar-chapter ">第68章绿都格罗兹尼·魔雷者莫纳亨</a>
<a href="chapter-69.html" class="sidebar-chapter ">第69章魔雷者的苏醒·莫纳亨的抉择</a>
<a href="chapter-70.html" class="sidebar-chapter ">第70章天界之门·根特外围的战火</a>
<a href="chapter-71.html" class="sidebar-chapter ">第71章根特北门·泽丁的誓言</a>
<a href="chapter-72.html" class="sidebar-chapter ">第72章根特南门·马琳的效忠</a>
<a href="chapter-73.html" class="sidebar-chapter ">第73章根特防御战·钢铁与血肉的碰撞</a>
<a href="chapter-74.html" class="sidebar-chapter ">第74章夜间袭击战·银勺杂技团的覆灭</a>
<a href="chapter-75.html" class="sidebar-chapter ">第75章补给线阻断战·UM-0终结者</a>
<a href="chapter-76.html" class="sidebar-chapter ">第76章追击歼灭战·机械吉赛尔的末路</a>
<a href="chapter-77.html" class="sidebar-chapter ">第77章海上列车·鲁夫特悬空海港</a>
<a href="chapter-78.html" class="sidebar-chapter ">第78章列车上的海贼·铁鳞团的覆灭</a>
<a href="chapter-79.html" class="sidebar-chapter ">第79章夺回西部线·卡勒特的余孽</a>
<a href="chapter-80.html" class="sidebar-chapter ">第80章雾都赫伊斯·无法地带的阴影</a>
<a href="chapter-81.html" class="sidebar-chapter ">第81章阿登高地·GT-9600</a>
<a href="chapter-82.html" class="sidebar-chapter ">第82章卡勒特指挥部·兰蒂卢斯</a>
<a href="chapter-83.html" class="sidebar-chapter ">第83章皇女的告白·天界的新篇章</a>
<a href="chapter-84.html" class="sidebar-chapter ">第84章幽灵列车·亡者的低语</a>
<a href="chapter-85.html" class="sidebar-chapter ">第85章伊顿工业区·克雷发电站</a>
<a href="chapter-86.html" class="sidebar-chapter ">第86章普鲁兹发电站·闪电之帕特里斯</a>
<a href="chapter-87.html" class="sidebar-chapter ">第87章特伦斯发电站·熔岩之萨姆</a>
<a href="chapter-88.html" class="sidebar-chapter ">第88章格兰迪发电站·虚空之弗曼</a>
<a href="chapter-89.html" class="sidebar-chapter ">第89章安图恩攻坚战·黑雾之源</a>
<a href="chapter-90.html" class="sidebar-chapter ">第90章安图恩攻坚战·震颤的大地</a>
<a href="chapter-91.html" class="sidebar-chapter ">第91章安图恩攻坚战·擎天之柱</a>
<a href="chapter-92.html" class="sidebar-chapter ">第92章安图恩攻坚战·黑色火山</a>
<a href="chapter-93.html" class="sidebar-chapter ">第93章安图恩攻坚战·使徒陨落</a>
<a href="chapter-94.html" class="sidebar-chapter ">第94章克洛诺斯岛·寂静城的召唤</a>
<a href="chapter-95.html" class="sidebar-chapter ">第95章寂静城的秘密</a>
<a href="chapter-96.html" class="sidebar-chapter ">第96章番外·贝奇的献身</a>
<a href="chapter-97.html" class="sidebar-chapter current">第97章光之舞会</a>
<a href="chapter-98.html" class="sidebar-chapter ">第98章钢铁之臂</a>
<a href="chapter-99.html" class="sidebar-chapter ">第99章能源熔炉</a>
<a href="chapter-100.html" class="sidebar-chapter ">第100章王之书库</a>
<a href="chapter-101.html" class="sidebar-chapter ">第101章不灭回廊</a>
<a href="chapter-102.html" class="sidebar-chapter ">第102章机械王座</a>
<a href="chapter-103.html" class="sidebar-chapter ">第103章番外·寂静城的早晨</a>
<a href="chapter-104.html" class="sidebar-chapter ">第104章番外·贝奇与艾泽拉</a>
<a href="chapter-105.html" class="sidebar-chapter ">第105章番外·卢克的嘱托</a>
<a href="chapter-106.html" class="sidebar-chapter ">第106章时空之门的召唤</a>
<a href="chapter-107.html" class="sidebar-chapter ">第107章格兰之火</a>
<a href="chapter-108.html" class="sidebar-chapter ">第108章瘟疫之源</a>
<a href="chapter-109.html" class="sidebar-chapter ">第109章卡勒特之初</a>
<a href="chapter-110.html" class="sidebar-chapter ">第110章无法地带</a>
<a href="chapter-111.html" class="sidebar-chapter ">第111章暗黑圣战</a>
<a href="chapter-112.html" class="sidebar-chapter ">第112章昔日悲鸣</a>
<a href="chapter-113.html" class="sidebar-chapter ">第113章凛冬</a>
<a href="chapter-114.html" class="sidebar-chapter ">第114章迷之觉悟</a>
<a href="chapter-115.html" class="sidebar-chapter ">第115章番外·艾丽丝的抉择</a>
<a href="chapter-116.html" class="sidebar-chapter ">第116章番外·后宫的日常</a>
<a href="chapter-117.html" class="sidebar-chapter ">第117章番外·与赛丽亚的约会</a>
<a href="chapter-118.html" class="sidebar-chapter ">第118章番外·与奥菲利亚的重逢</a>
<a href="chapter-119.html" class="sidebar-chapter ">第119章番外·与敏泰的雪山之行</a>
<a href="chapter-120.html" class="sidebar-chapter ">第120章番外·与莎兰的魔法时光</a>
<a href="chapter-121.html" class="sidebar-chapter ">第121章番外·与帕丽丝的格斗训练</a>
<a href="chapter-122.html" class="sidebar-chapter ">第122章番外·与莫纳亨的念动力</a>
<a href="chapter-123.html" class="sidebar-chapter ">第123章番外·与泽丁的天界巡逻</a>
<a href="chapter-124.html" class="sidebar-chapter ">第124章番外·与马琳的骑士之道</a>
<a href="chapter-125.html" class="sidebar-chapter ">第125章番外·与皇女的皇家约会</a>
<a href="chapter-126.html" class="sidebar-chapter ">第126章番外·与米娅的工坊时光</a>
<a href="chapter-127.html" class="sidebar-chapter ">第127章番外·与贝奇的人造之心</a>
</div>
</aside>
<script>
// 记录阅读进度
let readChapters = JSON.parse(localStorage.getItem('readChapters') || '[]');
if (!readChapters.includes(97)) {
readChapters.push({{CHAPTER_ID}});
localStorage.setItem('readChapters', JSON.stringify(readChapters));
}
// 主题切换
const themeToggle = document.getElementById('themeToggle');
const savedTheme = localStorage.getItem('theme') || 'dark';
document.documentElement.setAttribute('data-theme', savedTheme);
themeToggle.textContent = savedTheme === 'dark' ? '浅色' : '深色';
themeToggle.addEventListener('click', () => {
const currentTheme = document.documentElement.getAttribute('data-theme');
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
document.documentElement.setAttribute('data-theme', newTheme);
localStorage.setItem('theme', newTheme);
themeToggle.textContent = newTheme === 'dark' ? '浅色' : '深色';
});
// 滚动到顶部
document.getElementById('scrollTop').addEventListener('click', () => {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
// 滚动到底部
document.getElementById('scrollBottom').addEventListener('click', () => {
window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' });
});
// 页面加载时,侧边栏自动滚动到当前章节
window.addEventListener('load', () => {
const sidebarContent = document.getElementById('sidebarContent');
const currentChapter = sidebarContent.querySelector('.current');
if (currentChapter) {
currentChapter.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
});
// ========== TTS语音朗读功能 ==========
let ttsSynth = window.speechSynthesis;
let ttsUtterance = null;
let ttsText = '';
let ttsSentences = [];
let ttsCurrentIndex = 0;
let ttsIsPlaying = false;
let ttsIsPaused = false;
let ttsSpeed = 1;
// 初始化:提取章节内容
function initTTS() {
const contentEl = document.querySelector('.chapter-content');
if (!contentEl) return;
// 获取所有段落文本清理HTML标签
ttsText = contentEl.innerText || contentEl.textContent;
// 分割成句子(中文按句号、问号、感叹号分割)
ttsSentences = ttsText.match(/[^。!?\n]+[。!?\n]+|[^。!?\n]+$/g) || [ttsText];
ttsSentences = ttsSentences.filter(s => s.trim().length > 0);
updateTTSProgress();
}
// 更新进度显示
function updateTTSProgress() {
const total = ttsSentences.length;
const current = ttsCurrentIndex;
document.getElementById('ttsTime').textContent = `${current} / ${total}`;
const percent = total > 0 ? (current / total * 100) : 0;
document.getElementById('ttsProgressFill').style.width = `${percent}%`;
}
// 播放当前句子
function playCurrentSentence() {
if (ttsCurrentIndex >= ttsSentences.length) {
stopTTS();
return;
}
const text = ttsSentences[ttsCurrentIndex].trim();
ttsUtterance = new SpeechSynthesisUtterance(text);
ttsUtterance.lang = 'zh-CN';
ttsUtterance.rate = ttsSpeed;
// 尝试选择中文语音
const voices = ttsSynth.getVoices();
const zhVoice = voices.find(v => v.lang.includes('zh') || v.lang.includes('CN'));
if (zhVoice) {
ttsUtterance.voice = zhVoice;
}
ttsUtterance.onend = () => {
if (ttsIsPlaying && !ttsIsPaused) {
ttsCurrentIndex++;
updateTTSProgress();
playCurrentSentence();
}
};
ttsUtterance.onerror = (e) => {
console.error('TTS error:', e);
if (ttsIsPlaying) {
ttsCurrentIndex++;
updateTTSProgress();
playCurrentSentence();
}
};
ttsSynth.speak(ttsUtterance);
}
// 播放
function playTTS() {
if (ttsSentences.length === 0) {
initTTS();
}
if (ttsIsPaused) {
ttsSynth.resume();
ttsIsPaused = false;
} else {
ttsIsPlaying = true;
playCurrentSentence();
}
document.getElementById('ttsPlay').classList.add('active');
document.getElementById('ttsPause').classList.remove('active');
}
// 暂停
function pauseTTS() {
if (ttsIsPlaying) {
ttsSynth.pause();
ttsIsPaused = true;
document.getElementById('ttsPlay').classList.remove('active');
document.getElementById('ttsPause').classList.add('active');
}
}
// 停止
function stopTTS() {
ttsSynth.cancel();
ttsIsPlaying = false;
ttsIsPaused = false;
ttsCurrentIndex = 0;
updateTTSProgress();
document.getElementById('ttsPlay').classList.remove('active');
document.getElementById('ttsPause').classList.remove('active');
}
// 设置速度
function setTTSSpeed(speed) {
ttsSpeed = parseFloat(speed);
// 如果正在播放,需要重新开始当前句子
if (ttsIsPlaying && !ttsIsPaused) {
ttsSynth.cancel();
playCurrentSentence();
}
}
// 绑定事件
document.getElementById('ttsPlay').addEventListener('click', playTTS);
document.getElementById('ttsPause').addEventListener('click', pauseTTS);
document.getElementById('ttsStop').addEventListener('click', stopTTS);
document.getElementById('ttsSpeed').addEventListener('change', (e) => setTTSSpeed(e.target.value));
// 加载语音列表(某些浏览器需要异步加载)
if (speechSynthesis.onvoiceschanged !== undefined) {
speechSynthesis.onvoiceschanged = initTTS;
}
// 页面加载时初始化
window.addEventListener('load', () => {
initTTS();
});
// 页面离开时停止播放
window.addEventListener('beforeunload', stopTTS);
</script>
</body>
</html>