Files
echo-nexus/worklog.md
T

118 lines
8.9 KiB
Markdown
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.
# 回响星核 / Echo Nexus — 开发工作日志
> 持续性任务的工作交接文档。每个阶段更新,避免进度丢失。
---
## 项目当前状态描述 / 判断
- **阶段**:v0.1 MVP 实现中(设计已定稿,进入编码)
- **已完成**
- 游戏市场调研(多源交叉验证,2024-2026 数据)
- GDD 游戏设计文档(世界观、核心循环、六大系统、MVP 范围)
- 技术架构设计(栈选型、目录结构、状态模型)
- Gitea 仓库 `Super_Z/echo-nexus` 已创建,文档已推送
- **当前目标**:实现 v0.1 MVP —— 放置采矿 + 解码共振谜题 + 技术树 + 记忆图谱 + 飞升
- **技术栈**Next.js 16 + TypeScript + Tailwind + shadcn/ui + Canvas + Zustand
## 游戏核心概念(一句话)
深空考古放置策略游戏:自治无人机采矿→解码记忆晶体(原创共振谜题)→拼凑碎片叙事→飞升多周目。差异化:解码谜题驱动叙事涌现,全息晶体+深空粒子美学。
## 当前目标 / 已完成的修改 / 验证结果
### 已完成
- 调研报告、GDD、技术架构文档 → 已提交 Gitea
- v0.1 MVP 实现:放置采矿 + 解码共振谜题 + 技术树 + 记忆图谱 + 飞升 + 统计
- 仓库地址:https://git.atdunbg.xyz/Super_Z/echo-nexus
### v0.1.1 解码系统修复(用户反馈「大量无法通过」)
- **根因**generatePuzzle 随机填色未保证有解,产生大量死局
- **修复**:路径构造法生成器(100% 可解率)+ isSolvable 精确检测 + undoStep 撤销 + 卡死提示横幅 + canStartFrom 可行起点高亮 + 旧存档兼容
- **验证**3000/3000 可解;agent-browser T1/T2 端到端通过;死路检测/撤销/可行起点高亮全部准确
- 详见 docs/repo/docs/04-解码系统修复-v0.1.1.md
### v0.2 遗迹探险肉鸽系统(本轮完成)
- **新功能**:能量系统(3/5, 45s恢复) + 探险力/生命 + 6种节点类型(战斗/宝藏/抉择/解谜/休整/BOSS) + 程序化路径(5-7节点) + 实时奖励 + 失败保留 + 主动撤退 + 探险日志
- **配套修复**:HP clamp + 探险奖励绕过仓库上限 + 仓库满仓UX警告 + 闲置产能上限优化
- **UI**:探险标签页(入口态/进行态) + 节点路径图可视化 + 事件卡 + 生命/能量条
- **验证**:全流程通过(出发→探索→前进→BOSS→结束),奖励绕过cap验证(101>50)HP clamp验证
- 详见 docs/repo/docs/05-遗迹探险系统-v0.2.md
### v0.2.1 程序化音频 + 成就系统 + 视觉打磨(本轮完成)
- **QA 结论**:v0.2 全系统稳定,解码/探险/技术树/通知均正常,无 bug,故推进新功能
- **程序化音频系统**`src/lib/game/audio.ts`):Web Audio API 零资源文件,15 种音效(脉冲/解码按色变调/探险/飞升/成就/界面),受 soundOn 开关控制,首次交互后初始化 AudioContext
- **成就系统**`src/lib/game/achievements.ts`):14 项成就,跨周目永久产能/洞见加成,Toast+音效通知,每秒由主循环检测
- `GameState.achievements` 新字段;`recomputeStats` 聚合三层加成(技术+蓝图+成就)
- 旧存档兼容:init() 补全 achievements={}
- UI:5 列标签栏新增「成就」页 + AchievementsPanel + AchievementNotifier
- **视觉打磨**:脉冲粒子爆发(6-12粒子径向发散) + 扩散环 + 浮动数字按连击变色(绿→紫→琥)
- **Gitea 工单**:处理 Issue #1「就一直连连看?」——回复说明 6 大玩法层 + 路线图
- **验证**agent-browser 全流程通过;成就 3/14 解锁;lint 零错误;HTTP 200
- 详见 docs/repo/docs/06-音频与成就系统-v0.2.1.md
### v0.3 星潮事件系统(本轮完成)
- **动机**:回应 Issue #1「玩法单一」反馈,为放置循环注入动态变化
- **6 种星潮**`src/lib/game/starTide.ts`):晶体潮(产能×2)/谐振风暴(解码×1.6)/遗迹共振(探险+5力+30血)/虚空低语(洞见×2)/星核悸动(接触×3脉冲×2)/寂静期(产能×0.5,结束补偿洞见)
- **触发**:首次 30s,常规间隙 40s,持续 75s,权重抽取,飞升重置
- **修饰器应用**:产能/脉冲/解码奖励即时乘;洞见/接触率进 recomputeStats 缓存;探险力/血量即时加
- **UI**`src/components/game/StarTide.tsx`):顶部指示器芯片(图标+名称+倒计时) + 全屏背景叠层(色带+呼吸光) + Toast通知 + Footer联动
- **音效**tideStart(神秘扫频) + tideEnd(柔和消退),程序化合成
- **QA**agent-browser 全流程通过(触发/指示器/叠层/寂静期补偿 50→81 洞见);VLM 视觉确认;lint 零错误
- 详见 docs/repo/docs/07-星潮事件系统-v0.3.md
### v0.3.1 星图天文台 · 元进程天赋系统(本轮完成)
- **动机**:再次回应 Issue #1「就一直连连看?」——加入 Slay the Spire 式飞升后 3 选 1 天赋 draft,跨周目永久生效,增加策略深度 + 视觉变化
- **核心模块**`src/lib/game/constellation.ts`):
- 6 大星座 × 3 颗星 = **18 个天赋**:永动矿脉(翠)/光谱矩阵(玫)/远征星图(琥)/接触回响(紫)/虚空市场(灰)/宇宙回响(金)
- `constellationBonuses()` 聚合 19 项修饰器(产能/上限/脉冲/洞见/解码步数/自动解码周期/探险生命/探险力/能量上限/接触率/飞升门槛/蓝图全属性/离线效率/T2T3概率/星潮间隙/飞升礼包/解码奖励/全局产能)
- `rollPerkChoices()` 智能抽取:保证 3 个来自不同类别
- `getConstellationLayout()` 六边形布局 + `getStarsInCategory()` 三角形排布
- **状态扩展**`types.ts` + `config.ts`):`GameState.constellation: string[]` + `pendingPerkChoices: string[] | null`
- **引擎接入**`engine.ts`):`recomputeStats` 聚合三层加成(技术+蓝图+成就+星图);`performPrestige` 触发天赋选择 + 飞升礼包补偿;新增 `rollCrystalTierWithBonus()`
- **探险系统接入**`expedition.ts`):`computeExpeditionPower` + `computeExpeditionHp` 应用星座修饰器
- **Store 接入**`gameStore.ts`):
- 新增 `chooseConstellationPerk(perkId)` + `rerollPerkChoices()` 动作
- `tickTide` 应用星潮间隙缩减;`autoDecodeTick` 应用周期缩减;`tick` 应用 T2/T3 概率补偿;`clickNode`/`autoDecodeTick` 应用解码奖励倍率
- 旧存档兼容:init() 补全 constellation=[] / pendingPerkChoices=null / energyMax 加成
- **UI 组件**
- `ConstellationPanel.tsx`:Canvas 动态星图(六边形 6 星座 × 3 星点,闪烁/光晕/十字光线/连接线/中心星核呼吸)+ Hover 提示 + 类别图例 + 已解锁列表
- `ConstellationDialog.tsx`:飞升后自动弹出,3 卡片 draft + 重新抽取 + 选中粒子动画
- `PrestigeDialog.tsx`:增加「星图觉醒预告」卡片
- `page.tsx`:6 列标签栏(探险/技术/星图/图谱/成就/统计)+ 顶部「觉醒」按钮(pendingPerkChoices 存在时脉冲提示)+ 统计面板加星图天赋条目
- **音频**:新增 `constellation` SFX(上升琶音 C5→E5→G5→C6 + 高频闪光 2093Hz
- **成就**:新增 2 项 —— `ach_constellation_1`「星图初绘」(+30 洞见·产能+5%) / `ach_constellation_6`「六分星辉」(产能+12%·洞见+12%)
- **QA 验证**agent-browser + VLM):
- 星图标签渲染正确,6 类别图例齐全
- 设置 pendingPerkChoices 后对话框自动弹出,3 卡片显示不同类别
- 点击天赋 → constellation 数组增加,crystalsPerSec 提升,pending 清空,对话框关闭
- 重新抽取 → 3 张新卡片(不同类别)
- 多天赋叠加:c_min_1 + c_con_1 → crystalsPerSec 1.416, contactRateMult 1.2
- 6 类别各 1 天赋 → 自动解锁「六分星辉」成就(Toast 弹出)
- VLM 视觉确认:星图 Canvas 渲染正确,单星点亮(绿色永动矿脉)
- **lint 零错误;HTTP 200;编译 < 200ms**
- 详见 docs/repo/docs/08-星图天文台系统-v0.3.1.md
### v0.3.1 收尾(本轮提交)
- 推送 Gitea3 个 commitsubmodule 文档 + 主仓功能 + 清理)
- 回复 Issue #1:列出 6 大玩法层 + v0.3.1 新增 + 路线图
- 暴露 dev 期 store 调试钩子 `window.__gameStore`(仅 non-production
- 目标提示增加星图天赋引导(飞升后觉醒时显示)
### 进行中
- [ ] 持续迭代:云存档+排行榜(v0.4)、全5纪元叙事(v0.5)、socket 多人同步星潮(后续)
## 未解决问题或风险 / 下一阶段优先事项
- v0.3 星潮为单机版(原计划 socket 全局事件),后续可扩展为多人同步
- Issue #1 玩家反馈已通过星潮系统部分回应,后续可加更多探险事件变体
- v0.2 探险 BOSS 战胜率较低(基础探索力 10 vs BOSS 难度 5-7,胜率约 25%),需玩家投资探险技术
- 探险能量恢复较慢(45s/点),后续可加技术提升恢复速度
- 需持续关注 Gitea 工单(仓库 Issues)获取额外需求
- 下一阶段优先:云存档+排行榜、全5纪元叙事
## 定时任务
- 已设置:每 15 分钟 webDevReview(自动 QA + 迭代开发,job_id: 227581
---