v0.9 工单修复: 4 bug + 4 玩法改进

Gitea Issue #2 修复:
Bug:
1. 探险只能一次 → 能量恢复 45→20s, 初始能量 3→5, 上限 5→8
   新增 lastExpeditionSummary 显示上次结果
   新增 dismissExpedition action
2. 元素偏移/遮挡 → 标签页 grid-cols-8 → 响应式 grid-cols-4/sm:8
3. 成就UI遮挡 → max-h 440→520, min-h 提高
4. 提示框遮挡 → toast top-0→top-14 避开 header, TOAST_LIMIT 1→3

玩法改进:
1. 中央晶体球 → 下方新增 4 指标收益面板(产能/脉冲/连击/仓库)
2. 技术树 12→20 节点 (每分支 3→5 级)
3. 成就解锁 → 全屏居中特效通知 (framer-motion 弹窗)
4. 叙事融入 → 新建 narrative.ts, 脉冲/技术树注入世界观文本
This commit is contained in:
2026-06-24 00:41:16 +00:00
parent eb9836b8af
commit 44b94f9325
17 changed files with 2236 additions and 43 deletions
+123
View File
@@ -707,3 +707,126 @@ Stage Summary:
- ✅ P3 socket多人星潮: mini-service 3031 + 🌐全球星潮
- 剩余未解决: #1 Turbopack缓存(环境问题) / #2 定时任务(已文档化)
- 在线游玩 v0.8.2: https://gitea-pages.atdunbg.xyz/Super_Z/echo-nexus/
---
Task ID: 1
Agent: 主代理 (Phase 1 Bug 修复)
Task: 获取 Gitea 工单并修复 Issue #2 的 4 个 bug
Work Log:
- 通过 Gitea API 获取到 2 个未解决工单(Issue #1 + #2
- Issue #2 详细分析了 4 个 bug + 4 个玩法问题
- Bug1 探险只能一次:能量恢复间隔 45→20s,初始能量 3→5,上限 5→8,新增 lastExpeditionSummary 状态记录结果,ExpeditionPanel 入口显示上次结果摘要 + 实时倒计时,新增 dismissExpedition action
- Bug2 元素偏移/遮挡:标签页 grid-cols-8 → 响应式 grid-cols-4/sm:grid-cols-8,小屏 2 行避免拥挤
- Bug3 成就UI遮挡:标签面板 max-h 440→520min-h 提高
- Bug4 提示框遮挡:toast viewport top-0→top-14 避开 headerTOAST_LIMIT 1→3
- lint 通过,编译正常
Stage Summary:
- Phase 1 四个 bug 全部修复完成
- 探险系统现在有完整的状态反馈:能量实时倒计时、上次结果摘要、刚结束时的结算按钮
- 标签页移动端不再挤压
- 待 Phase 2:技术树扩充、晶体球信息卡、成就特效、叙事融入
---
Task ID: 2-a
Agent: subagent (技术树扩充专员)
Task: Issue #2 反馈"技术树太少,分分钟点满" — 扩充技术树 12→20 节点(4 分支 × 5 级)
Work Log:
- 读取 worklog.md 了解项目背景(v0.8.2 已完成 7 工单清零;Task 1 Phase 1 已修复 4 个 bug;本次为 Phase 2 技术树扩充)
- 读取 config.ts / expedition.ts / engine.ts / achievements.ts / TechTree.tsx / types.ts / gameStore.ts 摸清数据驱动结构
- **config.ts**TECH_TREE 由 12 节点扩充至 20 节点(4 分支 × 5 级),新增 8 节点:
- 采矿 (mining) level 4/5:量子采掘矩阵(晶体/秒+12,cost 400/ 戴森星核(晶体/秒+30cost 1200),desc 含仓库上限 +800/+2000
- 解码 (decoding) level 4/5:谐振放大器(脉冲+8,cost 500)/ 全息解码核心(自动解码 T2+解码步数+3,cost 1500
- 探险 (expedition) level 4/5:虚空航标(探险力+12,生命+30,能量恢复+25%,cost 450)/ 维度跃迁引擎(探险力+25,生命+50,能量恢复+30%cost 1400
- 叙事 (narrative) level 4/5:以太低语(洞见+100%cost 500)/ 文明回响(接触率+80%,洞见+150%cost 1600
- 注释头部更新:"4 分支 × 3 级 = 12 节点" → "4 分支 × 5 级 = 20 节点(v0.9 工单 #2 扩充:12→20"
- **expedition.ts**
- computeExpeditionPower:新增 exp_4 * 12 + exp_5 * 25 加成
- computeExpeditionHp:新增 exp_4 * 30 + exp_5 * 50 加成
- computeEnergyRegenInterval:新增 exp_4 × 0.75(加速 25%/ exp_5 × 0.70(加速 30%),下限 8s 由 energyRegenMinSec 守护
- 注释更新说明 v0.9 扩展点
- **engine.ts** recomputeStats:在 TECH_TREE 主循环后追加多效果节点的次效果(effect.kind 只能承载一个主效果,次效果需硬编码):
- min_2/min_3/min_4/min_5 的仓库上限加成(+100/+300/+800/+2000)— 顺带补齐 min_2/min_3 旧 desc 文案中承诺但未实装的 cap 加成
- nar_5 文明回响的接触进度转化率 +0.8(与 insightMult +1.5 并存)
- **gameStore.ts** autoDecodeTickdec_5 解锁后自动解码扩展至 T2 晶体
- 原:仅 findIndex(tier === 1)
- 新:先找 T1,若无 T1 且 tech.dec_5 已解锁,则找 T2 并将 autoTier 设为 2
- decodeRewards(autoTier, ...) 使用动态 tierT2 晶体奖励按 CRYSTAL_VALUE[2] = 22 晶体 / 4 洞见基础计算
- **achievements.ts**ach_tech_all(全谱精通)desc "12 项技术" → "20 项技术"check 阈值 12 → 20name 保持"全谱精通",奖励不变
- **TechTree.tsx**:无需修改。已数据驱动(TECH_TREE.filter(branch === b)),自动渲染 5 节点/分支;滚动容器 flex-1 overflow-y-auto echo-scroll 已存在,20 个 Card 可纵向滚动查看
- **数值递进合理性**
- mining cost: 5→24→120→400→1200(每级 ~3-4x 增长)
- decoding cost: 6→30→200→500→1500
- expedition cost: 12→60→180→450→1400
- narrative cost: 8→45→160→500→1600
- 严格 emerald/rose/amber/fuchsia 四色(沿用 TECH_BRANCH_META 既有映射,零蓝色/靛色)
- 验证:`bun run lint` 零错误零警告(exit 0);`bunx tsc --noEmit` 我修改的文件(config/expedition/engine/achievements/gameStore 的 autoDecode 区域)无 TS 错误,其余 TS 报错(BeaconPanel/ChronicleDialog/ExpeditionPanel style prop、beacon.ts entry 属性等)均为预存问题,与本次改动无关
Stage Summary:
- ✅ 技术树节点数 12 → 20(4 分支 × 5 级),直击 Issue #2 "分分钟点满" 痛点,玩家需要 ~5-10x 更多洞见才能全解锁
- ✅ 4 个分支 level 4/5 设计紧扣分支主题(采矿产能+仓库 / 解码脉冲+自动 / 探险力+生命+能量恢复 / 洞见+接触)
- ✅ expedition.ts 三函数(power/hp/regen)全部接入 exp_4/exp_5,探险后期强度与能量恢复节奏显著提升
- ✅ engine.ts 修复 min_2/min_3 旧 desc 文案承诺但未实装的仓库上限 bug,新 min_4/min_5 同步生效
- ✅ dec_5 全息解码核心:自动解码扩展至 T2 晶体(保留 T1 优先,无 T1 时回退 T2),显著降低后期 T2 晶体积压
- ✅ nar_5 文明回响:双效果(接触率+80% + 洞见+150%)通过硬编码并存
- ✅ ach_tech_all 阈值同步 12→20,奖励保持产能+15% / 洞见+15%
- ✅ TechTree.tsx 数据驱动,无需改动;overflow-y-auto 容器支持 20 节点滚动浏览
- ✅ lint 零错误,严格四色全息配色(零蓝色/靛色)
- 后续可考虑:1) TechTree.tsx 增加分支进度条(已解锁/总数);2) Codex/编年史加入"技术解锁里程碑"叙事;3) 为 level 4/5 节点添加解锁动画或特殊视觉标记
---
## Task ID: 2-b
**Agent**: 子代理 2-bgeneral-purpose
**Task**: 为中央晶体球区域添加全息收益信息面板,回应 Issue #2 "占满空屏的没啥用的按钮(浪费大量空间,不知道有啥用)"。让玩家明确看到晶体球的收益价值,缓解"占地方又没用"的反馈。
**Work Log**:
修改文件:`/home/z/my-project/src/app/page.tsx`
1. **lucide-react 图标导入扩充**:在原 import 块追加 `Gem, Zap, Flame, Database` 4 个图标,用于收益面板四色指标卡。
2. **新增 `CrystalYieldPanel()` 组件**(定义在 `StatsPanel` 上方):
-`useGameStore` 订阅 5 个字段:`crystalsPerSec` / `pulsePower` / `_combo` / `crystals` / `crystalCap`
- 连击倍率计算:`comboMult = 1 + (combo - 1) * 0.15`(仅 combo≥1 时显示 ×N.NN
- 连击热度判定:`comboHot = combo >= 3`(≥3 时 amber 边框 + animate-pulse + 图标 drop-shadow 发光)
- 仓库容量百分比:`fillPct = crystals / crystalCap * 100``warehouseWarn = fillPct >= 90`(≥90% 切 rose 警告色 + animate-pulse,图标/标签/数值全部 rose 化)
- 容器:`mt-3 grid grid-cols-2 sm:grid-cols-4 gap-2 w-full max-w-md pointer-events-none`(小屏 2×2,sm+ 横排 1×4)
- 单卡:`rounded-lg border bg-black/30 backdrop-blur p-2 flex items-center gap-1.5`,含图标 + 标签(text-[9px] uppercase tracking-wider+ 数值(text-sm font-mono tabular-nums
- 4 卡严格四色映射:emerald(产能)/ rose(脉冲)/ amber(连击)/ fuchsia(仓库);仓库满仓时 fuchsia→rose 切换属警告态,仍属四色范围
3. **挂载位置**:左侧 section 内、`<div data-tut="crystal-orb" className="contents"><CrystalOrb /></div>` 之后追加 `<CrystalYieldPanel />`,作为 flex 列的第二个子项。section `min-h-[340px] sm:min-h-[420px]` 未改动(遵守约束),section 本身无 max-height 故内容超出 min-h 时自然向下扩展,配合外层 `min-h-screen flex flex-col` 页面滚动。
4. **数据/视觉细节**
- 数值使用 `formatNum()` 友好格式化(K/M/B/T),保证大数字不溢出卡片
- 所有数值文本 `tabular-nums` 等宽对齐,跳动时不抖动
- 卡片 `pointer-events-none` 避免遮挡 CrystalOrb 悬浮态(卡片本身无交互)
- 仓库卡 split span:主数值 + `/cap` 副数值用 text-[9px] 降级,避免长数字撑爆卡片
- 连击卡数值色随热度切换:常态 `text-amber-300/80`hot 态 `text-amber-200`
5. **验证**
- `bun run lint` → exit 0,零错误零警告
- 视觉自查:4 卡四色与既有全息环 / 四角标记 / 顶部状态条配色完全协调(emerald + fuchsia + amber + rose 已是 section 主色),无任何蓝色/靛色介入
- 未触碰 `CrystalOrb.tsx`,未改 section 的 min-h
**Stage Summary**:
- ✅ 中央晶体球下方新增全息收益信息面板,4 项核心指标可视化(产能/s · 脉冲×倍率 · 连击/10 · 仓库/cap),直击 Issue #2 "不知道有啥用" 痛点
- ✅ 严格四色全息配色(emerald/rose/amber/fuchsia),与 section 既有装饰元素(全息环、四角标记、顶部状态条)色系完全统一,零蓝色/靛色
- ✅ 紧凑布局(卡片 p-2 + text-sm,整体 ~h-12),不抢占晶体球视觉焦点;小屏 2×2 / sm+ 横排 1×4 响应式
- ✅ 智能高亮:连击≥3 amber 闪烁 + 图标发光;仓库≥90% fuchsia→rose 警告色 + pulse,引导玩家解码消耗
- ✅ 数据实时订阅 store,连击倍率 / 仓库百分比均前端计算,零额外性能开销
- ✅ lint 零错误;未改 CrystalOrb.tsx;未改 section min-h
- 后续可考虑:1) 鼠标悬停卡片显示 tooltip 详解(如连击衰减规则、仓库溢出损失率);2) 卡片点击跳转对应系统(产能→技术树采矿分支,仓库→解码面板);3) 为脉冲卡加入"下次脉冲预估收益"实时计算