feat(v0.3.1): 星图天文台元进程天赋系统 — 18 天赋 / 3 选 1 draft / Canvas 动态星图
- 新增 src/lib/game/constellation.ts:6 类别 × 3 天赋 = 18 个永久天赋, constellationBonuses() 聚合 19 项修饰器,rollPerkChoices() 保证不同类别 - 状态扩展:GameState.constellation / pendingPerkChoices - engine.ts: recomputeStats 聚合三层加成(技术+蓝图+成就+星图), performPrestige 触发天赋选择 + 飞升礼包补偿,新增 rollCrystalTierWithBonus - expedition.ts: 探险力/生命应用星座修饰器 - gameStore.ts: 新增 chooseConstellationPerk + rerollPerkChoices 动作, 全链路接入(tickTide/autoDecodeTick/clickNode 等用点) - 新增 ConstellationPanel.tsx: Canvas 动态星图(六边形 6 星座 × 3 星点, 闪烁/光晕/十字光线/连接线/中心星核呼吸)+ Hover 提示 + 类别图例 - 新增 ConstellationDialog.tsx: 飞升后自动弹出,3 卡片 draft + 重新抽取 - PrestigeDialog: 增加「星图觉醒预告」卡片 - page.tsx: 6 列标签栏 + 顶部「觉醒」按钮 + 统计面板加星图天赋 - audio.ts: 新增 constellation SFX(上升琶音 + 高频闪光) - achievements.ts: 新增「星图初绘」「六分星辉」2 项成就 - QA: agent-browser + VLM 全流程通过;lint 零错误;编译 < 200ms - 二次回应 Issue #1:从「连连看」扩展为 6 大玩法层 + 元进程 draft
This commit is contained in:
+32
@@ -61,6 +61,38 @@
|
||||
- **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.4)、全5纪元叙事(v0.5)、socket 多人同步星潮(后续)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user