Add civilization catalyst and magnet recipes 添加文明催化器与磁铁相关配方 - #5125
PigeonNian merged 2 commits into
Conversation
新增文明催化器合成配方及石碑投放器巨构,十秒后催生原始文明或随机产生废土与消失结局。 保留天体基础资源并替换文明资源,更新搜索历史防止恢复旧状态,为附近玩家授予新轮回隐藏挑战。
添加八个磁铁块与九个空心磁铁块的双向合成,以及铁芯磁铁块消耗四千瓦、两秒充电为磁铁块的配方。
Reason: Security scan — [HIGH] Pipe to interpreter: curl | python3: Command pipes output from 'curl' directly to interpreter 'python3'. Downloaded content will be executed without inspection. Reply |
代码审查摘要 — PR #5125操作: 📋 与 Issue 规格的逐项对账(#5073 / #5090 仍为 open,合并后才会自动关闭)
🔴 关键问题无。未发现阻塞合并的正确性、崩溃或存档兼容问题(详见下方"看起来不错"的核对项)。
|
| 被测目标 | 推荐场景 | 优先级 |
|---|---|---|
PlanetResourceGenerator.advanceCivilization |
① 文明星球→废土:矿物/流体保留、offerings 清空、isWasteland=true;② 生物星球→文明:hasCivilization=true、offerings 非空;③ 无同类配方/offeringData==null → 返回同一实例且不变异 |
🔴 |
MonolithDeployerHandler.serverTick |
200 tick 边界(0/1/199/200);倒计时期内换天体→清除且不消耗于错误天体;loadAdditional 的 clamp(负值/超 200) |
🔴 |
| 50/50 分支 | 用固定 RandomSource 断言"文明星球"两路各半、"无文明星球"必走 OFFERING |
🟡 |
CelestialSearchHistory.remove |
同天体多条历史被全删、其它天体保留、browseIndex/originalEntry 重置;CompoundTag 等值(playerHeadProfile 等嵌套 tag)比对 |
🟡 |
canDeploy |
null / wasteland / 恰好 3 种(含 weight=0 的重复 id)/ 2 种 → false | 🟡 |
awardNewCycle |
16 格边界(16/16.01 格)、跨维度玩家不获奖、成就已解锁时不重复 | 🟢 |
| 配方往返 | 8 磁铁块→9 空心→8 磁铁块恒等;充电配方 power<0 ⇒ CHARGER |
🟢 |
结论: COMMENT — Draft 阶段未发现阻塞项,实现与 #5073/#5090 规格逐条吻合且持久化/同步/存档迁移处理得比较扎实。建议在转 ready 前确认两点:findFirst() 选错"是否要加稳健性(或明确文档化为"石碑无视门槛")、gh token 已失效(gh auth status 报 invalid,按流程未尝试导出凭据修复),故未自动改标题——建议标题:Add civilization catalyst, monolith deployer and magnet recipes 添加文明催化器、石碑投放器与磁铁配方(现标题只提了催化器与磁铁配方,漏掉了本 PR 主体的石碑投放器巨构与新轮回进度)。
由 Hermes Agent 审查
|
💾 Self-improvement review: Skill 'anvilcraft-megastructure-handler-review' created. · Patched SKILL.md in skill 'advancement-criterion-pr-review' (1 replacement). |
代码审查摘要 — PR #5125操作: 📋 需求核对表(对照 #5073 / #5090 原文)
✅ 已实做的交叉验证
|
| 被测目标 | 场景 | 优先级 |
|---|---|---|
MonolithDeployerHandler.serverTick |
建造后第 199 tick 卸载区块再加载 → 计时继续、不重复结算 | 🔴 |
| 同上 | 计时期间解锁星球/清空天体 → 失败分支清巨构且建材不返还 | 🟡 |
PlanetResourceGenerator.advanceCivilization |
无文明 + ≥3 种生物掉落 → 得到 hasCivilization + offerings,矿物/流体保留、生物组被替换 |
🔴 |
| 同上 | 已有文明两分支(废土 / 消失)产出形态与 generate() 一致 |
🔴 |
| 同上 | 特殊天体(SpecialCelestialBodyData)路径与多条同类别配方的选中结果(覆盖 |
🟡 |
awardNewCycle |
16 格内/外玩家是否精确获授;隐藏挑战不出现在正常进度树 | 🟡 |
| 磁铁配方 | 8→9→8 双向可合成、配方书解锁 | 🟢 |
结论: COMMENT(可合并,建议先补手册文档并确认 advanceCivilization 选配方的天体类型守卫/多配方顺序依赖」两点。
关于标题: gh auth status 显示 /opt/data/home/.config/gh/hosts.yml 中 token 已失效(gh pr edit 返回 HTTP 401 Bad credentials),本次未能自动修改。建议标题(现标题只提 recipes,未覆盖本 PR 主体——石碑投放器巨构与 10 秒演化机制、新轮回挑战进度):
Add civilization catalyst, monolith deployer and magnet block recipes 添加文明催化器、石碑投放器与磁铁方块配方
由 Hermes Agent 审查
代码审查摘要 — PR #5125操作:
✅ PR 声称验证表
🔴 关键问题无。未发现阻塞性缺陷。
|
| 被测目标 | 推荐场景 | 优先级 |
|---|---|---|
PlanetResourceGenerator.advanceCivilization |
无匹配配方 / wastelandData()==null / offeringData()==null ⇒ 返回同一 current 实例;有文明 → wasteland 且 hasCivilization()==false;无文明 → offering 且 hasCivilization()==true;minerals/fluids 逐项守恒 |
🔴 |
CelestialSearchHistory.remove + add |
移除后 add 不被去重守卫吞掉;同 body 多条历史全部被清理;browseIndex 复位 |
🟡 |
MonolithDeployerHandler 序列化往返 |
saveAdditional→loadAdditional:0 / 200 / 负值 / 超界值的 clamp;世界重载中途恢复倒计时 |
🟡 |
MonolithDeployerHandler.canDeploy |
resources==null、废土、hasCivilization、恰好 3 种 / 2 种生物物品、weight==0 条目被过滤 |
🟡 |
awardNewCycle |
半径 16 边界(distanceToSqr <= 256)内外玩家、多玩家同时授予、new_cycle criterion 名与 JSON 一致 |
🟢 |
| 游戏内集成 | 建造 → 10 s 三结局分支;拆除 CFA / chunk unload 中途取消与恢复;确认倒计时期间 locked==true 使历史浏览/搜索被服务端拒绝(body 不会被换掉) |
🟡 |
📌 标题建议
PR 标题目前只写了 "…and magnet recipes",实际还包含石碑投放器巨构 + 新轮回挑战成就,建议改为:
Add civilization catalyst, monolith deployer and magnet recipes 添加文明催化器、石碑投放器与磁铁相关配方
本次未能自动修改:
gh auth status显示 token 失效(The token in /opt/data/home/.config/gh/hosts.yml is invalid),按约定不导出任何凭据,故在此给出建议标题。
结论: APPROVE — 声称的 5 项功能均已落地且实现正确,API/资产/持久化/旧存档兼容性经静态核验无风险,提取重构保真;仅 1 项行为请在合并前确认(文明化时生物资源被替换,建议补 usage 说明)及 3 项非阻塞建议。
由 Hermes Agent 审查
|
💾 Self-improvement review: Patched SKILL.md in skill 'anvilcraft-megastructure-handler-review' (1 replacement). · Patched SKILL.md in skill 'pr-fix-claim-verification' (1 replacement). |
|
💾 Self-improvement review: Patched SKILL.md in skill 'anvilcraft-megastructure-handler-review' (1 replacement). · Patched references/shell-only-diff-navigation.md in skill 'github-webhook-pr-review' (1 replacement). · Patched SKILL.md in skill 'advancement-criterion-pr-review' (1 replacement). |
|
PR #5125 的状态是 closed。按 webhook 审查约定(
|
feat(celestial): 添加文明催化器与石碑投放器 (#5073)
feat(recipe): 补充磁铁块转换与充电配方 (#5090)
添加八个磁铁块与九个空心磁铁块的双向合成。
添加铁芯磁铁块消耗 4 kW、2 秒充电为磁铁块的配方。
resolved [TODO] 文明催化器 #5073
resolved [Feature] 添加磁铁相关配方 #5090