
joywayerandClaude Opus 5
7884e43147
fix(attr): 补齐属性页最后两条静默改写数据的诊断,并订正两处注释
1. 条目缺失时无任何诊断(上一轮 `and not d.is_empty()` 引入的回归)。
attributes.json 格式良好但少了 hp_max 时,_loaded 仍为 true、保存照常,
_collect 写出 {"base":0,"soft":0,"hard":0,"combine":"hybrid"}。更糟的是这个键
从此「存在」,player_stats.gd 的「缺少属性」报错也不再触发,hp_max=0 完全静默
进游戏;而 hard=0 在 hybrid 下意味着不钳制,连兜底都没有,玩家瞬死。
改为 if d.is_empty() 单独 push_warning,与 combine 那条对称。
2. min=0.0 引入的负值静默钳制同样无诊断("move_speed":{"base":-50} → 写回 0)。
运行时本就把生效值钳到 ≥0,但静默改写权威数据正是 combine 警告要防的事,
并入同一警告块保持处理对称。
3. _clean 的注释末句由描述改为禁令。原文「当前 12 个值并不依赖本函数」是事实,
但读起来像绿灯,而删掉它一直无害——直到有人放宽 min,也就是它存在的唯一场景。
4. _collect 的注释夸大了:未知键只有是对象时才存活,顶层标量键会让 _load 整体
拒绝加载。改为「保留未知属性条目」。
实测:缺 hp_max 与 base=-1234.5 两条警告均如实发出;未改动的 attributes.json
连建三次零警告零报错(误报比不报更糟,已专门验证)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 12:35:12 +08:00
..
2026-07-31 12:35:12 +08:00
2026-07-31 12:05:50 +08:00
2026-07-24 09:27:28 +08:00
2026-07-20 10:56:52 +08:00
2026-07-23 10:27:57 +08:00
2026-07-23 10:27:57 +08:00
2026-07-22 12:15:19 +08:00
2026-07-20 10:56:52 +08:00
2026-07-31 12:05:50 +08:00
2026-07-20 10:56:52 +08:00
2026-07-22 11:01:22 +08:00
2026-07-20 10:56:52 +08:00
2026-07-24 12:08:11 +08:00
2026-07-20 10:56:52 +08:00
2026-07-20 10:56:52 +08:00
2026-07-20 10:56:52 +08:00
2026-07-20 10:56:52 +08:00
2026-07-22 11:12:51 +08:00
2026-07-20 10:56:52 +08:00
2026-07-30 16:40:11 +08:00
2026-07-21 16:08:13 +08:00
2026-07-22 11:13:54 +08:00
2026-07-20 10:56:52 +08:00
2026-07-22 12:09:47 +08:00
2026-07-22 12:27:24 +08:00
2026-07-22 11:13:54 +08:00
2026-07-20 10:56:52 +08:00