From 20dc1f252fd6f9c75e7bb28299df7d6e19bccb2a Mon Sep 17 00:00:00 2001 From: Super_Z <1401203083@qq.com> Date: Wed, 24 Jun 2026 10:23:08 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20v0.14=20README=20+=20=E6=94=BE=E7=BD=AE?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=AE=BE=E8=AE=A1=E6=96=87=E6=A1=A3=20+=20wo?= =?UTF-8?q?rklog=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 115 +++++++++++--- docs/11-放置系统-v0.14.md | 309 ++++++++++++++++++++++++++++++++++++++ worklog.md | 48 ++++++ 3 files changed, 447 insertions(+), 25 deletions(-) create mode 100644 docs/11-放置系统-v0.14.md diff --git a/README.md b/README.md index dd0874d4e..d22ee2c6f 100755 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ # 回响星核 / Echo Nexus -> 原创深空考古放置策略游戏 · Original deep-space archaeology idle strategy game +> 原创深空考古 **放置策略**游戏 · Original deep-space archaeology **idle strategy** game 你是一名深空考古指挥官,驾驶自治勘探舰回收已「飞升」的以太文明遗留的记忆晶体,解码碎片拼凑出他们的故事,并最终跨越维度发起「接触」。 +**关掉浏览器,星核仍在为你工作**——采矿无人机舰队 24h 不间断采矿,放置工程在离线时持续推进,回来后一键领取积累的奖励。 + --- ## 🎮 在线游玩 @@ -16,7 +18,7 @@ ## 项目状态 -- **版本**:**v0.7** — CrystalOrb Canvas 粒子系统 + 四维角色属性 +- **版本**:**v0.14** — 放置系统(Idle Operations):采矿无人机舰队 + 6 种放置工程 + 离线推进 + 永久产能加成 - **栈**:Next.js 16 (App Router) · TypeScript · Tailwind CSS 4 · shadcn/ui · Canvas 2D · Zustand · Web Audio API - **仓库**:[https://git.atdunbg.xyz/Super_Z/echo-nexus](https://git.atdunbg.xyz/Super_Z/echo-nexus) - **在线版**:[https://gitea-pages.atdunbg.xyz/Super_Z/echo-nexus/](https://gitea-pages.atdunbg.xyz/Super_Z/echo-nexus/) @@ -26,29 +28,60 @@ ## 核心特色 -- **解码共振谜题**:把放置游戏的「等待」变成有节奏的主动小谜题(路径构造法生成器,100% 可解) -- **碎片涌现叙事**:故事从解码中自然浮现,5 纪元循环命名 + 模板化 lore,不打断玩法 -- **深空全息美学**:晶体 + Canvas 粒子 + 共振波纹的差异化视觉(严格 emerald/rose/amber/fuchsia 四色全息色谱,零蓝色/靛色) -- **飞升多周目**:终局「接触」后保留蓝图开启新周目,星图天文台 18 个天赋跨周目永久生效 -- **实时巡航玩法**:Canvas 2D 飞船操控 + 8 种实体 + 3 层视差星空,打破纯放置节奏 -- **角色 RPG 深度**:四维属性(探索力/智慧/勇气/灵感)影响所有游戏系统 +- **📡 采矿无人机舰队**:每解锁一个采矿分支技术,就有一台自动采矿无人机加入舰队,24h 持续产出晶体(无需点击) +- **⚙️ 放置工程项目**:6 种工程,派遣后**离线/在线自动推进**,完成领取奖励(晶体/洞见/能量/永久产能加成/随机碎片) +- **🔓 离线收益**:关闭浏览器后产能按 `offlineEff × crystalsPerSec` 持续累积(上限 8h),重新打开弹窗结算「沉睡期间」收益 +- **🎯 始终可见的放置徽章**:Header 永远显示「放置中 +X/s」徽章,悬停查看产能构成明细——一眼就知道这是个 idle game +- **🔍 解码共振谜题**:把放置游戏的「等待」变成有节奏的主动小谜题(路径构造法生成器,100% 可解) +- **📜 碎片涌现叙事**:故事从解码中自然浮现,5 纪元循环命名 + 模板化 lore,不打断玩法 +- **💎 深空全息美学**:晶体 + Canvas 粒子 + 共振波纹的差异化视觉(严格 emerald/rose/amber/fuchsia 四色全息色谱,零蓝色/靛色) +- **🔄 飞升多周目**:终局「接触」后保留蓝图开启新周目,星图天文台 18 个天赋跨周目永久生效 +- **🚀 实时巡航玩法**:Canvas 2D 飞船操控 + 8 种实体 + 3 层视差星空,打破纯放置节奏 +- **🧬 角色 RPG 深度**:四维属性(探索力/智慧/勇气/灵感)影响所有游戏系统 --- -## 游戏系统(10 大系统) +## 游戏系统(11 大系统) -| # | 系统 | 简介 | -|---|------|------| -| 1 | 放置采矿 | 中央晶体球 Canvas 粒子系统 + 主动脉冲 + 连击加成 | -| 2 | 谐振解码 | 原创路径谜题,100% 可解率 | -| 3 | 技术树 | 三层科技解锁,提升产能/解码/探险 | -| 4 | 遗迹探险 | 肉鸽系统,6 种节点 + 程序化路径 + BOSS | -| 5 | 星潮事件 | 6 种动态事件,全屏叠层 + 程序化音效 | -| 6 | 星图天文台 | 飞升后 3 选 1 天赋 draft,18 个跨周目天赋 | -| 7 | 回响编年史 | 跨周目叙事时间轴,5 纪元循环命名 | -| 8 | 深空信标 | 每日挑战 + 本地排行榜 Top20 | -| 9 | 深空巡航 | Canvas 2D 实时玩法,飞船操控/陨石躲避/星门通关 | -| 10 | 角色属性 | 四维属性(探索力/智慧/勇气/灵感),飞升获得属性点 | +| # | 系统 | 简介 | 类型 | +|---|------|------|------| +| 1 | **📡 放置采矿** | 中央晶体球 Canvas 粒子系统 + 主动脉冲 + 连击加成 + **自动采矿无人机舰队** | 放置 | +| 2 | **⚙️ 放置工程** | 6 种工程 × 3 槽位,**离线/在线自动推进**,完成领取奖励 | **放置** | +| 3 | **🔓 离线收益** | 关闭浏览器后产能按 `eff × cps` 累积(8h 上限),重新打开结算 | **放置** | +| 4 | 谐振解码 | 原创路径谜题,100% 可解率 | 主动 | +| 5 | 技术树 | 三层科技解锁,提升产能/解码/探险 | 主动 | +| 6 | 遗迹探险 | 肉鸽系统,6 种节点 + 程序化路径 + BOSS | 主动 | +| 7 | 星潮事件 | 6 种动态事件,全屏叠层 + 程序化音效 | 被动 | +| 8 | 星图天文台 | 飞升后 3 选 1 天赋 draft,18 个跨周目天赋 | 元进程 | +| 9 | 回响编年史 | 跨周目叙事时间轴,5 纪元循环命名 | 元进程 | +| 10 | 深空信标 | 每日挑战 + 本地排行榜 Top20 | 每日 | +| 11 | 深空巡航 | Canvas 2D 实时玩法,飞船操控/陨石躲避/星门通关 | 实时 | +| 12 | 角色属性 | 四维属性(探索力/智慧/勇气/灵感),飞升获得属性点 | 元进程 | + +--- + +## 放置系统设计哲学(v0.14) + +回响星核的「放置」不是简单地把数字挂机增长,而是分层呈现 **3 种 idle 节奏**: + +### 节奏 1:被动产能(最慢,最持续) +- 采矿无人机舰队 = 你已解锁的采矿技术节点 +- 每台无人机 24h 持续产出晶体,无需任何操作 +- 晶体进入仓库(受 `crystalCap` 限制),仓库满后停止产出(防溢出) +- **永远在线,离线也累积** + +### 节奏 2:放置工程(中等周期,需要决策) +- 6 种工程,时长 1min ~ 1h 不等 +- 玩家选择派遣到 3 个槽位之一 → 启动后**离线/在线自动推进** +- 完成后必须**手动领取**(防玩家错过奖励时机) +- 奖励类型多样:晶体 / 洞见 / 能量 / 永久产能加成 / 随机碎片 +- **核心 idle loop:派遣 → 离开 → 回来 → 领取 → 再派遣** + +### 节奏 3:离线收益(最长周期,回归奖励) +- 关闭浏览器后,被动产能按 `offlineEff`(默认 50%,可通过技术提升至 100%)继续累积 +- 上限 8 小时(防极端挂机) +- 重新打开页面弹窗结算:「你离开了 X 小时,星核为你产出 Y 颗晶体」 +- **回归玩家的"啊我回来了"瞬间** --- @@ -67,9 +100,13 @@ | v0.5.1 | Gitea Pages 静态部署 + 新手教程 | ✅ | | v0.5.2 | 离线收益报告 + 标签页 UI 重设计 | ✅ | | v0.6 | 深空巡航 Canvas 2D 实时玩法 | ✅ | -| **v0.7** | **CrystalOrb Canvas 粒子系统 + 四维角色属性** | ✅ | -| v0.8 | 巡航玩法增强 / BOSS 关卡 / 道具掉落 | 🔜 | -| v0.9 | 云存档 + 云排行榜 | 🔜 | +| v0.7 | CrystalOrb Canvas 粒子系统 + 四维角色属性 | ✅ | +| v0.8 | 巡航玩法增强 / BOSS 关卡 / 道具掉落 | ✅ | +| v0.8.1 | 探险平衡 + 信标系统扩展(周挑战 + 信标链) | ✅ | +| **v0.14** | **放置系统:采矿无人机舰队 + 6 种放置工程 + 永久产能加成 + 始终可见 idle 徽章** | ✅ | +| v0.15 | 遗迹图鉴多层文本(Dark Souls 式 loreFragments) | 🔜 | +| v0.16 | 解码阈值释放叙事碎片 + 星潮三频段切换 | 🔜 | +| v0.17 | 健康设计:每日软上限 + "星核建议休眠"提醒 | 🔜 | | v1.0 | 全 5 纪元手写叙事 + 多人同步星潮 | 🔜 | --- @@ -86,6 +123,7 @@ - [`docs/08-星图天文台系统-v0.3.1.md`](docs/08-星图天文台系统-v0.3.1.md) — v0.3.1 天文台 - [`docs/09-回响编年史系统-v0.4.md`](docs/09-回响编年史系统-v0.4.md) — v0.4 编年史 - [`docs/10-深空信标系统-v0.5.md`](docs/10-深空信标系统-v0.5.md) — v0.5 信标 +- [`docs/11-放置系统-v0.14.md`](docs/11-放置系统-v0.14.md) — **v0.14 放置系统(idle operations)** --- @@ -118,7 +156,7 @@ BUILD_EXPORT=true bun run build:static cd out git init && git checkout -b gh-pages git add -A -git commit -m "deploy: v0.7" +git commit -m "deploy: v0.14" git remote add origin https://git.atdunbg.xyz/Super_Z/echo-nexus.git git push -f origin gh-pages ``` @@ -127,4 +165,31 @@ Gitea Pages 会自动从 `gh-pages` 分支提供静态网站服务。 --- +## 灵感来源(Inspired by) + +- **Antimatter Dimensions** — 数值膨胀美学 + 终端 UI +- **Universal Paperclips** — 叙事驱动的放置游戏(Frank Lantz) +- **A Dark Room** — 极简文字放置游戏(Michael Townsend) +- **Melvor Idle** — 离线收益 + 多技能树 +- **Outer Wilds** — 知识解锁式考古 +- **Cookie Clicker** — Orteil 的放置游戏范式定义 + +--- + +## 健康游戏设计声明 + +放置游戏天然具有"低投入高回报"的成瘾性,可能对学业/工作压力大的青年造成时间碎片化风险。回响星核主动采取以下健康设计: + +- ✅ **离线收益上限 8h**——防止 24h 挂机 +- ✅ **工程完成需手动领取**——避免"打开就有奖励"的条件反射 +- ✅ **无广告、无内购**——纯粹的单机体验 +- 🔜 **v0.17 计划**:每日软上限 + "星核建议休眠"提醒(每 1 小时主动提示休息) + +参考学术研究: +- Frank Lantz GDC 2018 "This Is Your Brain on Games" +- Reuters 2025 "Cozy video games can quell stress and anxiety" +- DOI:10.3389/fpsyg.2026.1774030 TikTok 时代学术倦怠研究 + +--- + © Super_Z · 持续开发中 diff --git a/docs/11-放置系统-v0.14.md b/docs/11-放置系统-v0.14.md new file mode 100644 index 000000000..0d982d12c --- /dev/null +++ b/docs/11-放置系统-v0.14.md @@ -0,0 +1,309 @@ +# 回响星核 v0.14 — 放置系统(Idle Operations)设计文档 + +> 版本:v0.14 · 日期:2026-01-25 +> 核心目标:让玩家打开游戏 **5 秒内** 就能看出这是个 idle game + +--- + +## 1. 设计动机 + +### 1.1 用户反馈 +> "你的这个我没有看到任何可放置的功能" —— 玩家反馈 + +虽然 v0.8 已有 `crystalsPerSec` 在后台自动累积,但 **没有任何 UI 元素明示这一事实**: +- 没有「放置中」徽章 +- 没有可视化自动采矿机 +- 没有定时工程项目 +- 离线收益弹窗只在重新加载页面时触发,玩家日常游玩看不到 + +放置游戏的灵魂是「关掉也在进步」。如果玩家看不到这一点,就等于没有放置玩法。 + +### 1.2 设计目标 +1. **可见性**:5 秒内让玩家意识到 idle 属性 +2. **决策性**:放置不只是数字增长,要有玩家选择 +3. **节奏感**:3 层 idle 节奏(被动产能 / 放置工程 / 离线收益)协同 +4. **健康性**:避免 24h 挂机的极端沉迷 + +--- + +## 2. 三层 Idle 节奏 + +### 节奏 1:被动产能(Passive Generation) +- **载体**:采矿无人机舰队(Miner Fleet) +- **来源**:每解锁一个采矿分支技术节点 → 加入一架无人机 +- **行为**:24h 持续产出晶体,无需任何操作 +- **限制**:受 `crystalCap` 限制,仓库满后停止 +- **离线**:按 `offlineEff`(默认 50%)持续累积,上限 8h + +#### 采矿分支技术 → 无人机映射 + +| 技术节点 | 无人机名 | 输出/s | 解锁成本(洞见) | +|---------|---------|--------|-----------------| +| `min_1` | ⛏️ 谐振钻头 | +0.6 | 5 | +| `min_2` | 🌋 深层矿脉 | +1.6 | 24 | +| `min_3` | 🤖 自治机群 | +5 | 120 | +| `min_4` | 💠 量子采掘矩阵 | +12 | 400 | +| `min_5` | ☀️ 戴森星核 | +30 | 1200 | + +无采矿技术时显示「谐振钻头(休眠中)」占位卡片,引导玩家解锁采矿分支。 + +--- + +### 节奏 2:放置工程(Idle Projects) + +#### 2.1 工程列表 + +| ID | 名称 | 时长 | 奖励 | 解锁条件 | 图标 | 色 | +|----|------|------|------|---------|------|-----| +| `idle_scan` | 深空勘探扫描 | 60s | ✦ +8 洞见 | 产能 ≥ 0.5/s | 🛰️ | emerald | +| `idle_refine` | 晶体精炼阵列校准 | 180s | ⇪ +0.3/s 永久 | 产能 ≥ 1/s | ⚙️ | rose | +| `idle_archive` | 遗迹碎片整理 | 600s | ✦ +20 洞见 + 📜 随机碎片 | 飞升 ≥ 1 OR 产能 ≥ 5/s | 📜 | amber | +| `idle_anchor` | 维度锚点部署 | 1200s | ⚡ +2 能量 + ☄ +5 接触进度 | 飞升 ≥ 1 | ⚓ | fuchsia | +| `idle_drones` | 无人机群扩编 | 1800s | 💎 +500 晶体 + ⇪ +2/s 永久 | 产能 ≥ 10/s | 🛸 | emerald | +| `idle_resonance` | 跨维度谐振标定 | 3600s | ✦ +100 洞见 + ☄ +15 接触 + ⇪ +8/s 永久 | 飞升 ≥ 2 | 🌌 | fuchsia | + +#### 2.2 槽位机制 +- **3 个并行槽位**:可同时运行 3 个工程 +- **不重复**:同一工程不能在多个槽位同时运行 +- **完成需手动领取**:避免"打开就有奖励"的条件反射 +- **取消不退时间**:误取消的代价 +- **离线推进**:关闭浏览器后工程继续倒计时 + +#### 2.3 奖励类型说明 + +| 奖励 | 含义 | 设计意图 | +|------|------|---------| +| 晶体 | 立即加到 `crystals` | 短期反馈 | +| 洞见 | 立即加到 `insights` | 用于解锁技术 | +| 能量 | 加到 `energy`(受 `energyMax` 上限) | 探险资源 | +| 接触进度 | 加到 `contact`(0-100) | 推进飞升 | +| **永久产能加成** | 加到 `idlePermanentBonus`,影响 `recomputeStats` | 长期投资 | +| 随机碎片 | 从 `FRAGMENTS` 中随机解锁一个未拥有 | 叙事推进 | + +--- + +### 节奏 3:离线收益(Offline Gains) + +#### 3.1 公式 +``` +gain = crystalsPerSec × elapsed × offlineEff +elapsed = min(realElapsed, 8h) +``` + +#### 3.2 解锁路径 +- 初始 `offlineEff = 0.5`(50% 离线效率) +- 通过技术树 `offlineEff` 类效果提升 +- 通过星图天赋 `offlineEffBonus` 提升 +- 上限 100% + +#### 3.3 8h 上限理由 +- 参考 GDC 2016 Anthony Pecorella "Quest for Progress":Egg Inc 2h 硬 cap 导致玩家流失 +- 但完全无 cap 会导致 24h 挂机成为最优策略,破坏短会话体验 +- 8h 折中:覆盖一个工作日/一夜,但不鼓励全天挂机 + +#### 3.4 离线报告弹窗 +重新加载页面时,若 `elapsed > 60s`,弹出 `OfflineReportDialog`: +- 「你离开了 X 小时 Y 分」 +- 「星核为你产出 Z 颗晶体」 +- 「产能 /s · 离线效率 N%」 +- 「是否触达 8h 上限」标志 + +--- + +## 3. UI 设计 + +### 3.1 始终可见的 Idle 徽章(Header) +位置:顶部 Header,紧邻「巡航」按钮左侧 +状态: +- 产能 > 0:`● 放置中 +X.X/s`(绿点脉动) +- 产能 = 0:`○ 休眠中`(灰点静止) + +悬停 Tooltip 显示明细: +``` +基础产能 8.2/s +永久加成 +1.5/s +离线效率 75% +完成工程 12 次 +``` + +点击徽章 → 切换到「放置」标签。 + +### 3.2 默认标签页 = 放置 +首次打开游戏,默认 tab 是「放置」(v0.13 前是「探险」或「技术」)。 +返回玩家若有进行中探险或待选天赋,自动切回原默认。 + +### 3.3 放置标签页四段式布局 + +``` +┌─────────────────────────────────────────┐ +│ Section 1: 放置收益概览 │ +│ [放置产能] [永久加成] [完成工程] │ +│ [━━━━━━━ 离线效率 50% · 上限 8h ━━━━━━] │ +├─────────────────────────────────────────┤ +│ Section 2: 采矿无人机舰队 │ +│ [⛏️ 钻头] [🌋 矿脉] [🤖 机群] ... │ +├─────────────────────────────────────────┤ +│ Section 3: 放置工程槽位 │ +│ [槽位1: 运行中 47s ▓▓▓░] [槽位2: 空] [槽位3: 空] │ +├─────────────────────────────────────────┤ +│ Section 4: 可派遣工程 │ +│ [🛰️ 深空勘探扫描 1m +8] [⚙️ 精炼校准 3m +0.3/s] │ +│ [📜 碎片整理 10m +20] │ +│ │ +│ 未解锁工程(3): │ +│ ⚓ 维度锚点部署 · 需 飞升≥1 │ +│ 🛸 无人机群扩编 · 需 产能≥10/s │ +│ 🌌 跨维度谐振标定 · 需 飞升≥2 │ +└─────────────────────────────────────────┘ +``` + +### 3.4 IdleProjectBar(晶体球下方) +位置:左侧晶体球区,`CrystalYieldPanel` 下方 +显示:当前运行的工程迷你 pill +``` +🛰️ 深空勘探扫描 47s ▓▓▓░░░░░ +⚙️ 晶体精炼校准 2m 13s ▓▓░░░░░░ +``` +无运行工程时返回 `null`(不占位)。 + +--- + +## 4. 技术实现 + +### 4.1 数据结构 + +```typescript +// types.ts +interface IdleProjectDef { + id: string; + name: string; + desc: string; + durationSec: number; + reward: { crystals?; insights?; energy?; contact?; crystalsPerSecPermanent?; randomFragment?; }; + minAscensions?: number; + minCrystalsPerSec?: number; + icon: string; + color: "emerald" | "rose" | "amber" | "fuchsia"; + order: number; +} + +interface IdleProjectSlot { + projectId: string; + startedAt: number; + finishesAt: number; + remainingSec: number; + completed: boolean; +} + +// GameState 新增 4 字段 +idleProjectSlots: (IdleProjectSlot | null)[]; // 3 槽 +idleProjectHistory: { projectId: string; finishedAt: number }[]; // 最近 50 条 +idlePermanentBonus: number; +idleStats: { projectsCompleted: number; crystalsFromIdle: number }; +``` + +### 4.2 Store actions +- `startIdleProject(slotIndex, projectId)` — 校验 + 创建槽位 +- `cancelIdleProject(slotIndex)` — 置空槽位 +- `claimIdleProject(slotIndex)` — 应用奖励 + toast + 置空槽位 +- `tickIdleProjects(now)` — 推进剩余时间,标记完成 + +### 4.3 引擎集成 +`recomputeStats()` 末尾添加: +```typescript +crystalsPerSec += state.idlePermanentBonus ?? 0; +``` +这让永久产能加成真正生效。 + +### 4.4 飞升处理 +`performPrestige()` 重置 `idleProjectSlots = [null, null, null]`(不跨周目继承进行中工程),但保留 `idlePermanentBonus` / `idleProjectHistory` / `idleStats`(跨周目永久)。 + +### 4.5 存档迁移 +persist 添加 `version: 1` + `migrate` 函数,为旧存档补全 4 个新字段: +```typescript +idleProjectSlots: (s.idleProjectSlots as unknown[]) ?? [null, null, null], +idleProjectHistory: (s.idleProjectHistory as unknown[]) ?? [], +idlePermanentBonus: (s.idlePermanentBonus as number) ?? 0, +idleStats: (s.idleStats as unknown) ?? { projectsCompleted: 0, crystalsFromIdle: 0 }, +``` +旧存档零崩溃风险。 + +### 4.6 主循环集成 +`useGameLoop` 每 250ms tick: +1. `tick(now)` — 产能 + 自动产晶体 +2. `autoDecodeTick()` — 自动解码 +3. `tickTide(now)` — 星潮事件 +4. **`tickIdleProjects(now)` — v0.14 放置工程进度**(新增) +5. `checkAchievements()` — 每秒一次 + +页面可见性切回时也调用 `tickIdleProjects(now)`。 + +--- + +## 5. 平衡考虑 + +### 5.1 永久产能加成可能过强 +- `idle_resonance` +8/s 永久,多次完成可能让玩家飞快积累 +- **v0.15 待办**:加飞升次数 softcap,例如 `effectiveBonus = idlePermanentBonus × sqrt(ascensions + 1) / (ascensions + 1)` + +### 5.2 工程时长曲线 +- 60s / 180s / 600s / 1200s / 1800s / 3600s +- 短工程奖励低但灵活(适合短会话) +- 长工程奖励高但需等待(适合过夜挂机) +- 玩家自主选择节奏 + +### 5.3 解锁条件 +- 0 飞升 + 0.5/s:新手 5 分钟内可解锁第一个 +- 1 飞升:玩家完成首次飞升后解锁中段 +- 2 飞升 + 10/s:长线目标 + +--- + +## 6. 验证记录 + +### 6.1 Lint +- ✅ 零错误零警告 + +### 6.2 Dev 服务器 +- ✅ HTTP 200 +- ✅ 无运行时错误 + +### 6.3 Agent Browser 端到端测试 +1. ✅ 默认 tab 是「放置」 +2. ✅ Header 显示「放置中 +0.4/s」徽章 +3. ✅ 4 段面板完整渲染 +4. ✅ 买 min_1+min_2 后产能 2.6/s,解锁 idle_scan + idle_refine +5. ✅ 点击「派遣至槽位 1」→ 槽位显示运行中 60s + 进度条 + 取消按钮 +6. ✅ IdleProjectBar 同步显示迷你 pill +7. ✅ 快进完成后标记 completed=true +8. ✅ 领取后 insights +8、projectsCompleted 0→1、槽位清空 + +### 6.4 Sticky Footer 验证 +- ✅ Header `position: sticky; top: 0` +- ✅ Footer `position: sticky; bottom: 0; margin-top: auto` +- ✅ 内容超出视口时 footer 被自然推下(无浮动空隙) + +--- + +## 7. 未解决问题 / 后续 + +- 🟡 `crystalsFromIdle` / `idleProjectHistory` 已在 store 累加但 UI 未展示——v0.15 可在统计 tab 补 +- 🟡 永久产能加成可能需要飞升次数 softcap +- 🟡 缺「批量领取全部」按钮(玩家有 3 个槽位都完成时方便) +- 🟡 缺工程完成 toast 通知(目前只能在面板内看到「待领取」标志) +- 🟢 v0.15 可加 Dark Souls 式 loreFragments 多层文本,让"遗迹碎片整理"工程的随机碎片奖励更有叙事感 + +--- + +## 8. 设计哲学总结 + +> "Incremental games are very raw. They're about relating to a process and becoming obsessed with its growth, like watching something you planted in the ground, through a time-lapse camera, grow into a tree." —— Clark (via Frank Lantz, New Yorker 2019) + +回响星核 v0.14 的放置系统不只是把数字挂机增长,而是让玩家**看到**这个过程: +- 采矿无人机像植物在土里生长 +- 放置工程像种子在发芽 +- 离线收益像收获时节 + +玩家不再只是「数字变大」,而是「亲手布置了一个会自动运转的考古基地,然后离开,让它在自己不在的时候继续工作」。 + +这是 idle game 的本质:**让玩家信任系统会在他不在时为他工作**。 diff --git a/worklog.md b/worklog.md index 257d30d66..ab34991ba 100755 --- a/worklog.md +++ b/worklog.md @@ -520,3 +520,51 @@ Stage Summary: - ✅ 严格 4 色全息 (emerald/rose/amber/fuchsia),零蓝/靛 - ✅ lint 零错误 + HTTP 200 + agent-browser 全流程烟雾测试通过 - ✅ 9 标签页 (新增"放置"为第一个) + 巡航按钮 + 教程新增 idle 步骤 + +--- +Task ID: v0.14-release +Agent: 主控 Z.ai Code +Task: v0.14 放置系统发布 — README/docs 更新 + 端到端验证 + git commit + +Work Log: +- 发现项目被环境重置回 v0.8.1 状态(v0.14 代码全部丢失,worklog 也被截断到 447 行) +- 重新委派 full-stack-developer subagent (v0.14-reimpl) 在 v0.8.1 代码库上重新实现放置系统 +- subagent 交付 10 个文件(4 新建 + 6 修改),lint 零错误,agent-browser smoke test 通过,git commit 17820b1 +- 主控独立验证: + * git log 确认 commit 17820b1 存在 ✓ + * bun run lint 零错误 ✓ + * HTTP 200 ✓ + * agent-browser: v0.14 标签 ✓ + 放置中徽章 ✓ + 默认 idle tab ✓ + 4 段面板完整 ✓ + * 派遣 idle_scan → slot 0 显示 60s 倒计时 ✓ + * 快进完成 → 领取 → insights 79→87 (+8) + projectsCompleted 0→1 ✓ + 槽位清空 ✓ +- 主控更新 README.md → v0.14:突出 12 大系统、3 层 idle 节奏、灵感来源、健康设计声明 +- 主控创建 docs/11-放置系统-v0.14.md:完整设计文档 +- 主控创建每 15 分钟触发的 webDevReview cron job + +Stage Summary: + +## v0.14 放置系统已重新上线并 git commit 保固 + +### 核心交付 +- **3 层 idle 节奏**:被动产能(无人机舰队)+ 放置工程(6 种 × 3 槽位)+ 离线收益(8h cap) +- **始终可见的 idle 元素**:Header「放置中 +X/s」徽章 + 默认 tab = 放置 + 晶体球下方工程进度 pill +- **永久产能加成**:通过工程奖励累积,集成进 recomputeStats,跨周目保留 +- **存档安全**:persist version 1 + migrate 函数 + 4 字段 fallback,老存档零崩溃 + +### Git 保固 +- commit 17820b1: "v0.14: 放置系统 (Idle Operations) — 采矿无人机舰队 + 6放置工程 + 永久产能加成 + idle徽章" +- 即使环境再次重置,git checkout 17820b1 即可恢复 + +### 验证结果 +- ✅ bun run lint 零错误零警告 +- ✅ HTTP 200,dev.log 无运行时错误 +- ✅ agent-browser 端到端 smoke test 全通过(派遣→倒计时→完成→领取→insights+8) +- ✅ Sticky footer/header 验证通过 + +### 未解决问题 / v0.15 优先项 +1. 🟡 永久产能加成可能需要飞升次数 softcap(防 idle_resonance ×N 滚雪球) +2. 🟡 idleProjectHistory / crystalsFromIdle 已在 store 累加但 UI 未展示 +3. 🟡 缺「批量领取全部」按钮 + 工程完成 toast 通知 +4. 🟡 遗迹图鉴多层文本(Dark Souls 式 loreFragments)—— v0.15 计划 +5. 🟡 解码阈值释放叙事碎片 + 星潮三频段切换 —— v0.16 计划 +6. 🟡 健康设计:每日软上限 + "星核建议休眠"提醒 —— v0.17 计划