feat(v0.4): 回响编年史 — 跨周目叙事时间轴系统

- 新增 ChronicleEntry / RunStartSnapshot 类型与 GameState 字段
- 新建 chronicle.ts: 5 纪元名生成、模板化叙事、里程碑检测、run delta 计算
- engine.ts performPrestige 构建编年史条目并重置 runStart
- gameStore: init 兼容旧存档 + tickTide 记录星潮 + resolveCurrentNode 计 BOSS 击杀
- chooseConstellationPerk 回填最近一条 entry 的 perksThisAscension
- 新建 ChronicleDialog.tsx: 时间轴 UI + 5 纪元循环色 + 入场动画
- 新增 6 项成就: 首部编年/三纪元回响/五纪元闭环/首杀维度/维度猎手/星潮亲历者
- 新增 chronicle / chronicleOpen 程序化音效
- 修复关键 BUG: PrestigeDialog disabled 逻辑错误导致玩家永远无法飞升
- 修复 UX: newBp=0 时不再永久禁用飞升按钮(v0.3.1 星图+v0.4 编年史已提供动机)
- 统计面板新增 BOSS 击破/星潮亲历/编年史条目 3 行
- 版本号升至 v0.4
This commit is contained in:
2026-06-23 14:45:38 +00:00
parent 98fbbf1634
commit e69c48ba69
11 changed files with 993 additions and 7 deletions
+60
View File
@@ -191,6 +191,66 @@ export const ACHIEVEMENTS: Achievement[] = [
reward: { crystalsPerSecPct: 12, insightPct: 12 },
rewardText: "产能 +12% · 洞见 +12%",
},
{
id: "ach_chronicle_1",
name: "首部编年",
desc: "完成首次飞升,开启编年史第一章",
icon: "📖",
color: "#e879f9",
check: (s) => (s.chronicle?.length ?? 0) >= 1,
reward: { insights: 40, crystalsPerSecPct: 6 },
rewardText: "+40 洞见 · 产能 +6%",
},
{
id: "ach_chronicle_3",
name: "三纪元回响",
desc: "完成 3 次飞升,编年史铭刻三章",
icon: "📜",
color: "#fbbf24",
check: (s) => (s.chronicle?.length ?? 0) >= 3,
reward: { crystalsPerSecPct: 10, insightPct: 10 },
rewardText: "产能 +10% · 洞见 +10%",
},
{
id: "ach_chronicle_5",
name: "五纪元闭环",
desc: "完成 5 次飞升,走完一轮纪元循环",
icon: "♾",
color: "#fcd34d",
check: (s) => (s.chronicle?.length ?? 0) >= 5,
reward: { crystalsPerSecPct: 15, insightPct: 15 },
rewardText: "产能 +15% · 洞见 +15%",
},
{
id: "ach_boss_1",
name: "首杀维度",
desc: "在遗迹探险中击破首个 BOSS",
icon: "⚔",
color: "#fb7185",
check: (s) => (s.bossKills ?? 0) >= 1,
reward: { insights: 25, crystalsPerSecPct: 4 },
rewardText: "+25 洞见 · 产能 +4%",
},
{
id: "ach_boss_5",
name: "维度猎手",
desc: "累计击破 5 个 BOSS",
icon: "⛧",
color: "#e879f9",
check: (s) => (s.bossKills ?? 0) >= 5,
reward: { crystalsPerSecPct: 10, insightPct: 8 },
rewardText: "产能 +10% · 洞见 +8%",
},
{
id: "ach_tides_all",
name: "星潮亲历者",
desc: "经历全部 6 种星潮事件",
icon: "🌊",
color: "#34d399",
check: (s) => (s.starTidesEncountered?.length ?? 0) >= 6,
reward: { crystalsPerSecPct: 8, insightPct: 8 },
rewardText: "产能 +8% · 洞见 +8%",
},
];
/** 计算成就提供的永久加成(跨周目保留) */