Repository navigation
The text regarding celestial death has been corrected, and some progress has been made. 修正了天体死亡文本,增加了一些进度 - #5129
Conversation
PigeonNian
commented
Oct 2, 2026
- 添加了三种新伤害类型(继承原有伤害来源)使天体击杀有了独立提示信息
- 添加了进度
- 新增 CelestialEvolutionTrigger 用于天体质量进化判定 - 在触发 util 中添加 celestialEvolution 方法,触发成就判定 - 在加速器逻辑中调用触发方法进行成就检测 - 添加无残留(no_remnant)挑战成就,要求64质量铁砧的天体进化至终局 - 将成就文本翻译添加至英文语言文件和特殊字符文件 - 在成就数据中注册无残留成就及其触发条件
- 新增PlanetDetonationTrigger用于行星毁灭事件的判定 - 在ExcavatorHandler中增加触发行星毁灭触发器的逻辑 - 在AdvancementLineHelper中集成planetDetonation方法方便创建该成就 - 在AnvilCraftAdvancement中添加efficiency成就分支,绑定行星毁灭触发器 - 更新语言文件,添加行星毁灭成就的标题与描述 - 注册PlanetDetonationTrigger触发器并完善其触发实现 - 新增efficiency成就JSON配置文件,定义触发条件及显示信息
- 添加了 PlanetaryCollapseDeathTrigger 触发器类及其数据结构 - 在 ModCriterionTriggers 中注册 planetary_collapse_death 触发器 - 在 AdvancementLineHelper 中新增 planetaryCollapseDeath 方法便于调用 - 在 AnvilCraftAdvancement 中添加 Cannon Fodder 成就,绑定行星坍缩死亡触发器 - 在语言文件中添加 Cannon Fodder 成就标题与描述的多语言支持 - 在 OverworldLikeEventListener 中监听行星坍缩死亡事件并触发相应成就 - 在 TriggerUtil 中实现 planetaryCollapseDeath 方法来触发成就判定 - 新增 Cannon Fodder 成就的 JSON 配置文件,包含父级与图标等信息 - 修改效率成就添加隐藏属性,改善游戏内成就展示体验
- TriggerUtil新增支持根据StellarTerminal.Kind触发星体演化成就 - CelestialEvolutionTrigger增加对终局类型的判定和对应触发方法 - AdvancementLineHelper新增celestialEvolution重载方法支持终局类型参数 - AnvilCraftAdvancement中增加黑洞和中子星分支成就定义和保存 - AdvancementLang添加黑洞与中子星成就名称及描述多语言支持 - 语言文件(en_us, en_ud)增加对应成就的描述和标题 - 新增黑洞和中子星成就JSON数据文件,定义触发条件和显示信息
- 添加黑洞接触、恒星接触及行星接触三种新伤害类型 - 天体接触伤害采用独立类型以实现专属死亡提示 - 更新伤害标签,支持新伤害类型绕过护甲、抗性、击退等效果 - 修改重力控制器中伤害来源,替换为对应新天体接触伤害类型 - 保持星体及行星接触伤害原版燃烧和摔落效果表现不变 - 增加对应的语言文本显示新伤害的死亡描述信息 - 修正玩家攻击混入对行星接触伤害的判定,保持原摔落伤害一致性 - 新增相关资源数据文件,完善伤害类型和标签配置
- 新增 StarContactDeathTrigger 实现星接触死亡触发器 - 注册并初始化星接触死亡触发条件 ModCriterionTriggers.STAR_CONTACT_DEATH - AdvancementLineHelper 新增 starContactDeath 方法支持该触发器 - AnvilCraftAdvancement 新增“come_at_night”任务,使用星接触死亡触发器 - AdvancementLang 中添加“come_at_night”进度名称及描述文本 - OverworldLikeEventListener 监听星接触死亡事件触发进度 - TriggerUtil 新增 starContactDeath 方法简化触发调用
- 新增“advancements.anvilcraft.come_at_night”标题的本地化文本 - 新增“advancements.anvilcraft.come_at_night”描述的本地化文本 - 中文描述内容为“被星光笼罩” - 英文标题内容为“Showdown at Night”倒转样式
- 创建新的隐藏成就“come_at_night” - 设置成就触发器为“star_contact_death” - 指定成就图标为“celestial_forging_anvil” - 定义成就的父级为“the_start” - 启用成就的遥测事件发送
Reason: script execution via -e/-c flag Reply |
Reason: script execution via -e/-c flag Reply |
代码审查摘要 — PR #5129操作: synchronize(PR 状态:open,未合并) 🔴 必须处理1.
旁证:最近一个改该文件的已合并 PR #5125( provider.add("advancements.anvilcraft.no_remnant.description",
"Evolve a celestial body forged with 64 mass anvils to the end and watch it leave no remnant");2.
但 PR 里没有 即代码与提交的生成数据不一致:现在游戏内加载的是旧数据(
|
| 声称 | 状态 | 证据 |
|---|---|---|
| 添加三种新伤害类型,继承原有伤害来源 | ✅ | star_contact/planet_contact/black_hole_contact + 标签继承准确(见上) |
| 使天体击杀有独立死亡提示 | ✅ | OtherLang + 生成的 en_us/en_ud;同步处理了 PlayerHitEntityMixin、护符/缓冲靴/防护服依赖 |
| 添加了进度 | 6 个新 advancement(efficiency / cannon_fodder / black_hole / neutron_star / come_at_night / no_remnant)齐全且可达;new_cycle.json 生成数据未同步 |
|
| 修正天体死亡文本 | ✅ | 原 in_fire/fall/lost_in_time 提示被专属文案替换,行为(标签/表现/数值)逐项等价 |
结论: REQUEST_CHANGES — 内容本身实现正确、等价性验证通过,只需两处收尾:折行 4 条超长 lang 行(会让 style_check 变红),以及解决 new_cycle.json 的代码/生成数据不一致(改 createBranch() 或重跑 runData)。
🧪 测试建议
| 被测目标 | 场景 | 优先级 |
|---|---|---|
runData + git diff --exit-code |
应在当前提交即可复现 new_cycle.json 漂移(也是本 PR 最有效的自检) |
🔴 |
DamageTypeTagLoader 标签继承 |
红宝石/羽毛护符、缓冲靴、全套防护服分别对恒星/行星接触伤害生效;火焰/摔落免疫实体不吃新类型 | 🔴 |
PlayerHitEntityMixin |
滑翔铁砧锤帽撞行星体:仍取消自身伤害并命中附近实体(与改动前一致) | 🟡 |
| 触发半径 | 站在 7 格内/外分别验证 efficiency;32 格内/外验证 black_hole/neutron_star/no_remnant |
🟡 |
| 死亡进度 | cannon_fodder(行星崩解)、come_at_night(恒星接触 66 点致死)在死亡同帧后正确授予且死亡后重登不丢 |
🟡 |
| 存档兼容 | 旧存档中正在演化的天体(initialMass 从 NBT 恢复)终局时 no_remnant 判据正确 |
🟢 |
🏷️ 标题
现标题 The text regarding celestial death has been corrected, and some progress has been made. 修正了天体死亡文本,增加了一些进度 描述偏笼统,建议改为更明确的形态,例如:
Add dedicated celestial contact damage types and 6 celestial advancements 新增天体接触伤害类型与天体进度
本次未能自动修改:gh auth status 显示 token invalid(/opt/data/home/.config/gh/hosts.yml),按流程不尝试导出 token 修复,故仅在此给出建议标题。
由 Hermes Agent 审查(diff 与 head 树均已交叉验证:patch-diff 34 文件 / pr5129head = 26bba56c)
|
All verification complete. Here's my review. 代码审查摘要 — PR #5129操作: ✅ 伤害类型/标签等价性核对(本 PR 最关键的部分,逐项验证通过)
📋 声称验证表
🔴 关键问题无。
|
| 被测目标 | 建议场景 | 优先级 |
|---|---|---|
CelestialEvolutionTrigger.TriggerInstance.matches |
只带 mass_anvils / 只带 terminal / 两者都带且不匹配 → 三条分支;64 与 63 的边界 |
🟡 |
| 标签等价回归 | 戴红宝石护符吃不掉 star_contact 的 IS_FIRE 减免、羽毛护符对 planet_contact 生效、抗性提升无效于 black_hole_contact |
🟠 |
PlayerHitEntityMixin |
鞘翅+砧锤头撞、伤害源为 PLANET_CONTACT 时应转为伤害周围实体并取消自身伤害 |
🟡 |
| 进度可达性 | 手动授予 6 个进度确认 lang/图标/父子关系渲染正常;mass 64 演化终局后确认 no_remnant 触发 |
🟡 |
结论: APPROVE(LGTM,附非阻塞建议) — 三种新伤害类型对原版来源的标签继承逐项等价、三条天体伤害路径无遗漏改造、6 个进度与生成资源/双语 lang 完全对齐,且「64 质量=无残骸」「伽马激光=行星解体」两个关键前提已对 stellar_tracks.json 与 ExcavatorHandler 源码交叉验证为真。上面 2 条警告(半径 7、hidden 不一致)建议确认后再合并,不影响本次正确性。
标题建议
gh auth status 显示 token 已失效(Active account 存在但 token invalid),按流程未执行 gh pr edit。当前标题 "The text regarding celestial death has been corrected, and some progress has been made." 描述性不足,建议改为:
Add celestial damage types, death messages and advancements 新增天体接触伤害类型、专属死亡提示与 6 个进度
由 Hermes Agent 审查(基于 head 26bba56,34 文件 / +608 −9)
|
💾 Self-improvement review: Patched SKILL.md in skill 'offline-pr-evidence-verification' (1 replacement). · Patched SKILL.md in skill 'advancement-criterion-pr-review' (1 replacement). |
|
已完成全部核查(diff 完整性与本地 代码审查摘要 — PR #5129操作: synchronize(PR 状态 新增伤害类型与 6 个进度均已逐项落到源码验证,逻辑基本正确;但有 1 处生成数据与数据生成器不同步(必修) 和 1 处标签继承不完整导致的静默行为变更。 🔴 关键1. 新增的 industrialLine.next().challenge(... "no_remnant", true).save("no_remnant"); // parent = the_start
industrialLine.next().challenge(... "new_cycle", true)...save("new_cycle"); // ← datagen 会给 parent = no_remnant依据(均为 base 源码实证,非推测):
⇒ 仓库里的
|
| 被替换类型 | 原版标签 | 新类型已继承 | 缺失 |
|---|---|---|---|
fall → planet_contact |
bypasses_armor、is_fall、no_knockback(并因 bypasses_shield 含 #bypasses_armor 而穿透盾牌) |
is_fall |
❌ bypasses_armor、❌ no_knockback(连带 ❌ bypasses_shield) |
in_fire → star_contact |
is_fire、no_knockback |
is_fire |
❌ no_knockback |
lost_in_time → black_hole_contact |
bypasses_armor、bypasses_resistance、no_knockback、is_magic |
4 项全中 | ✅ 无 |
实际影响(CfaGravityController:PLANET_CONTACT_DAMAGE = 38.0f、STAR_CONTACT_DAMAGE = 66.0f):
- 行星接触 38 点伤害此前无视护甲,改动后会被护甲/保护减免、且开始造成击退、可被盾牌格挡;
- 恒星接触 66 点新增击退。
护符路径 ✅(RUBY_AMULET_VALID → #is_fire、FEATHER_AMULET_VALID → #is_fall均通过标签继承生效),但上述三条建议补BYPASSES_ARMOR/NO_KNOCKBACK以保持等价;若确为有意调整平衡,请在 PR 描述里点明。
💡 建议(非阻塞)
- zh_cn 文案缺失:12 条进度文案(6×title/description)+ 3 条死亡提示(
star_contact/planet_contact/black_hole_contact)在zh_cn.json中不存在。Crowdin workflow 仅在releases/1.21触发,dev 线不会自动补;同批的new_cycle已有中文文案,建议顺手补齐。 - frame 不统一:
come_at_night用task(),同为"死亡类"的cannon_fodder用challenge(),其余 4 个也是 challenge。若非有意区分,建议统一。 - 可见性:
black_hole/neutron_star未设hidden,会直接出现在the_start之后的树里并透露后期内容;同批其余均为隐藏挑战,建议确认是否为预期。 - 可把
PlayerHitEntityMixin里"行星接触沿用飞行撞击表现"的同款理由,在标签处补一行注释(避免后人再次漏继承)。
🟢 看起来不错(已核实证据)
no_remnant可达且描述准确:CelestialMassTable恰 64 条(at(anvils)上限 64),stellar_tracks.json存在mass_64,其terminal.kind = "disruption"⇒StellarTerminal.Kind.NONE⇒completeEvolution的case NONE清空天体数据(确实"不留残骸")。MinMaxBounds.Ints.exactly(64)打在上限端点,可达成 ✅。- criterion 编码与手写 JSON 同构:
Kind.CODEC用字符串 id(white_dwarf/neutron_star/black_hole/disruption/keep),手写conditions.terminal: "black_hole"/"neutron_star"✅;MinMaxBounds.Ints.exactly(64)编码为裸数字64✅;无条件键的 criterion(planet_detonation等)省略conditions✅(同new_cycle的 impossible 形态)。 - 生成 JSON 手改与 datagen 同构:键序
parent → criteria → display → requirements → (rewards) → sends_telemetry_event、display内description/frame/hidden/icon/title、icon.count:1、conditions在trigger前、frame仅非 task 才出现(come_at_night无 frame = task,与全仓 25 个既有文件一致)、无隐藏时省略hidden、文件末尾无换行(lost_in_time.json实据同款)✅。 - 触发点唯一且幂等:
completeEvolution首行有terminalApplied()守卫 +markTerminalApplied(),超新星多次 tick 不会重复发奖;planetDetonation仅ExcavatorHandler.tryShatterPlanet;半径 32 与SUPERNOVA_SHAKE_RADIUS = 32.0f一致(注释准确)。 - 死亡触发不会在客户端误发:
LivingDeathEvent用instanceof ServerPlayer过滤;planetaryCollapse唯一施加点是OverworldLikeResetManager(Overworld-Like 世界),与cannon_fodder描述"inside an Overworld-Like planet"一致。 - 无死代码:
lostInTime仍被TimeWarpPlayerBehavior、CorruptedBeaconActivatorItem使用。 - 风格/门禁:新 criterion 类的 import 布局与
MultiBlockFormTrigger完全一致;celestialEvolution两个重载相邻(OverloadMethodsDeclarationOrder);MissingJavadocMethod在 style.xml 中已注释;仓库无 runData 门禁(style_check.yml仅 checkstyle 13.6.0,crowdin.yml仅监听releases/1.21)。 - diff 完整性:
patch-diff与本地git diff rvbase5129 rvhead5129的 ± 逐字一致(+555/−9),无截断;EOF 无换行仅出现在 generated JSON,属仓库既有惯例。
📋 声称验证表
| 声称 | 状态 | 证据 |
|---|---|---|
| 三种新伤害类型(继承原有伤害来源),天体击杀有独立提示 | ✅ | star_contact/planet_contact/black_hole_contact ← in_fire/fall/lost_in_time;三处 message_id 与 OtherLang + en_us/en_ud 死亡文案齐全;star_contact 保留 burning、planet_contact 保留 exhaustion 0.0/HURT |
| 添加了进度 | ✅ 6 个 | efficiency/cannon_fodder/black_hole/neutron_star/come_at_night/no_remnant(各自 criterion 注册 + 触发点 + 图标物品真实存在,black_hole 有 .item() 故图标可解析) |
| 修正了天体死亡文本 | ✅ | CfaGravityController.applyCelestialDamage 三处 hurt 换源,行为面(燃烧/摔落表现、飞行撞击路径)已同步 |
| 生成数据已同步 | ❌ | new_cycle.json parent 漂移(见 🔴 1) |
结论: REQUEST_CHANGES — 逻辑与文案主体正确、可达性已核实;但 new_cycle.json 的生成物/生成器不一致必须修掉,planet_contact/star_contact 的 BYPASSES_ARMOR/NO_KNOCKBACK 继承建议补齐或明确说明为有意调整。两处改动量都很小。
🧪 手动验收建议(本仓库此类改动无单测,未虚构测试文件)
| 场景 | 预期 |
|---|---|
| 带满护甲+保护站在行星接触区 | 若维持原语义应仍无视护甲(38 点);若已接受改动则记录新值 |
| 恒星接触致死(66 点,不足以致死时可叠加) | 显示 death.attack.anvilcraft.star_contact,且死亡后发 come_at_night(隐藏 task) |
| 行星崩解致死于 Overworld-Like 世界 | 发 cannon_fodder,非该世界来源不应发 |
64 枚质量铁砧演化至终局(mass_64,disruption) |
发 no_remnant,且不留残骸 |
| 59 |
分别发 black_hole / neutron_star |
| 挖掘机被伽马激光击碎行星 | 半径 7 内玩家发 efficiency |
| 超新星多次 tick / 重登 | 不重复发奖(terminalApplied 守卫) |
由 Hermes Agent 审查
附:
gh auth status显示 token 已失效(未认证),故未自动执行gh pr edit。建议标题:Add celestial contact death messages and 6 celestial advancements 新增天体专属死亡提示与 6 个天体进度(现标题「The text regarding celestial death has been corrected, and some progress has been made」过于含糊,未说明是新增伤害类型与进度)。
|
💾 Self-improvement review: Patched references/head-sha-freshness-and-prior-review-verification.md in skill 'github-webhook-pr-review' (1 replacement). · Patched SKILL.md in skill 'advancement-criterion-pr-review' (1 replacement). |
|
💾 Self-improvement review: Patched references/damage-type-and-death-message-review.md in skill 'minecraft-modding' (1 replacement). · Skill updated · Patched SKILL.md in skill 'advancement-criterion-pr-review' (1 replacement). |
|
PR #5129 的 webhook 操作类型为 按审查约束第 1 条(
由 Hermes Agent 审查 |
…修复到26.1 (#5143) * The text regarding celestial death has been corrected, and some progress has been made. 修正了天体死亡文本,增加了一些进度 (#5129) * feat(advancement): 添加天体进化挑战成就及触发器 - 新增 CelestialEvolutionTrigger 用于天体质量进化判定 - 在触发 util 中添加 celestialEvolution 方法,触发成就判定 - 在加速器逻辑中调用触发方法进行成就检测 - 添加无残留(no_remnant)挑战成就,要求64质量铁砧的天体进化至终局 - 将成就文本翻译添加至英文语言文件和特殊字符文件 - 在成就数据中注册无残留成就及其触发条件 * feat(advancement): 添加行星毁灭成就及触发器支持 - 新增PlanetDetonationTrigger用于行星毁灭事件的判定 - 在ExcavatorHandler中增加触发行星毁灭触发器的逻辑 - 在AdvancementLineHelper中集成planetDetonation方法方便创建该成就 - 在AnvilCraftAdvancement中添加efficiency成就分支,绑定行星毁灭触发器 - 更新语言文件,添加行星毁灭成就的标题与描述 - 注册PlanetDetonationTrigger触发器并完善其触发实现 - 新增efficiency成就JSON配置文件,定义触发条件及显示信息 * feat(advancement): 新增因行星坍缩死亡的成就触发器 - 添加了 PlanetaryCollapseDeathTrigger 触发器类及其数据结构 - 在 ModCriterionTriggers 中注册 planetary_collapse_death 触发器 - 在 AdvancementLineHelper 中新增 planetaryCollapseDeath 方法便于调用 - 在 AnvilCraftAdvancement 中添加 Cannon Fodder 成就,绑定行星坍缩死亡触发器 - 在语言文件中添加 Cannon Fodder 成就标题与描述的多语言支持 - 在 OverworldLikeEventListener 中监听行星坍缩死亡事件并触发相应成就 - 在 TriggerUtil 中实现 planetaryCollapseDeath 方法来触发成就判定 - 新增 Cannon Fodder 成就的 JSON 配置文件,包含父级与图标等信息 - 修改效率成就添加隐藏属性,改善游戏内成就展示体验 * feat(advancement): 新增黑洞和中子星终局星体成就 - TriggerUtil新增支持根据StellarTerminal.Kind触发星体演化成就 - CelestialEvolutionTrigger增加对终局类型的判定和对应触发方法 - AdvancementLineHelper新增celestialEvolution重载方法支持终局类型参数 - AnvilCraftAdvancement中增加黑洞和中子星分支成就定义和保存 - AdvancementLang添加黑洞与中子星成就名称及描述多语言支持 - 语言文件(en_us, en_ud)增加对应成就的描述和标题 - 新增黑洞和中子星成就JSON数据文件,定义触发条件和显示信息 * feat(damage): 新增天体接触伤害类型及独立标签支持 - 添加黑洞接触、恒星接触及行星接触三种新伤害类型 - 天体接触伤害采用独立类型以实现专属死亡提示 - 更新伤害标签,支持新伤害类型绕过护甲、抗性、击退等效果 - 修改重力控制器中伤害来源,替换为对应新天体接触伤害类型 - 保持星体及行星接触伤害原版燃烧和摔落效果表现不变 - 增加对应的语言文本显示新伤害的死亡描述信息 - 修正玩家攻击混入对行星接触伤害的判定,保持原摔落伤害一致性 - 新增相关资源数据文件,完善伤害类型和标签配置 * feat(advancement): 添加“夜晚来访”星接触死亡进度条件 - 新增 StarContactDeathTrigger 实现星接触死亡触发器 - 注册并初始化星接触死亡触发条件 ModCriterionTriggers.STAR_CONTACT_DEATH - AdvancementLineHelper 新增 starContactDeath 方法支持该触发器 - AnvilCraftAdvancement 新增“come_at_night”任务,使用星接触死亡触发器 - AdvancementLang 中添加“come_at_night”进度名称及描述文本 - OverworldLikeEventListener 监听星接触死亡事件触发进度 - TriggerUtil 新增 starContactDeath 方法简化触发调用 * feat(locale): 添加“come_at_night”成就的中英文描述 - 新增“advancements.anvilcraft.come_at_night”标题的本地化文本 - 新增“advancements.anvilcraft.come_at_night”描述的本地化文本 - 中文描述内容为“被星光笼罩” - 英文标题内容为“Showdown at Night”倒转样式 * feat(advancement): 添加“come_at_night”隐藏成就 - 创建新的隐藏成就“come_at_night” - 设置成就触发器为“star_contact_death” - 指定成就图标为“celestial_forging_anvil” - 定义成就的父级为“the_start” - 启用成就的遥测事件发送 --------- Co-authored-by: Pigeon_Nian <adove2005@163.com> * fix(celestial): 修复演化音效衰减与锻造界面恢复 (#5131) (#5132) - 将演化音乐归入唱片音量分类,并以单声道音源实现 64 格原生距离衰减。 - 保持音效与字幕的听距一致。 - 通过实时同步入口恢复锻造状态,避免重开界面时丢失正在锻造的进度。 * fix(building): 修复幻灵铁砧虚影撤销时重复返还物品 (#5134) - 撤销无掉落幻灵铁砧虚影时不再结算基础物品 - 保留实体铁砧与其他下落方块的资源结算 fixed #5133 * fix(item-splitter): 修复物品分配器掉落物超出堆叠上限 (#5136) 按物品实际堆叠上限拆分每个目标位置的掉落物,保留均分份额、余数、零动量和拾取延迟。 修复 #5135 * fix(button): 修复大红按钮遮挡边缘交互与按压动画 (#5141) - 使用实际命中位置进行服务端射线校验,修复按钮可见但底座中心被遮挡时无法按下的问题。 - 按住按钮后等待服务端确认再播放手部动画,并忽略已释放或已切换目标的过期确认。 - fixed #5138 * fix(storage-port): 修复服务端扫描仓储端口时崩溃 (#5140) - 优先使用原版 includeData 标志控制数据复制,避免服务端扫描读取客户端按键状态 - 保留 26.1 服务端中键克隆时的缓存、标记与流体数据 (cherry picked from commit d7c2f74) --------- Co-authored-by: PigeonNian <78527064+PigeonNian@users.noreply.github.com> Co-authored-by: Pigeon_Nian <adove2005@163.com>