 joywayerandClaude Opus 5
|
36c4f79f10
|
fix(attr): 属性页提示自动换行、加载失败拒绝写回、收紧 SpinBox 下限
三处评审必修:
1. 提示 Label 未换行,在 dock 里被裁掉。该 Label 最小宽度 786px,autowrap 为
AUTOWRAP_OFF,而 designer_panel 的 ScrollContainer 禁用横向滚动、同侪分页实际
宽度 337–887px —— 被裁的正是「inverse 的 hard 是下限」这半句,即这条提示存在的
全部理由。加 AUTOWRAP_WORD_SMART,最小宽度降到 17px,337px 下 4 行全可见。
同时补两处内容缺漏:add_int 下 hard=0 同样表示不钳制(cpu_limit 就是 add_int,
还是第一行);soft 本期无消费方,注明「留给货架 C」。
2. 加载失败后保存会写出打砖游戏的文件。_data 为空时 _collect 产出四条全 0、无
display_name 的合法 JSON,PlayerStats 照单全收 → move_speed.base=0、hp_max.base=0
直接进游戏,玩家不能移动/瞬间死亡且零诊断。加 _loaded 标志:加载失败 push_error,
_save 开头守卫拒绝写回。并按 player_stats.gd 的既有做法加逐条 is Dictionary 守卫
(畸形条目如 "hp_max": 5 原会硬崩、dock 停在半构建状态)。
3. SpinBox 下限收紧到 0.0,并订正上一版注释里的误诊。噪声不是「按 step 吸附」的
普遍现象,而是 Range 的 round((v-min)/step)*step+min 在 |min| 远大于 |v| 时的抵消
误差(min=-99999 与 step=0.01 相差七个数量级)。实测:min=-99999 且不用 _clean 时
漂移 2 处,min=0 且不用 _clean 时漂移 0 —— 收紧 min 才是真解法,_clean 并非必需。
四个属性按定义均非负,故 min=0 也更贴语义。_clean 保留作宽区间属性的廉价保险。
另:无法识别的 combine 改为 push_warning 后回落 hybrid(打字错误不该硬拒)。
按评审裁决不给 COMBINE_KEYS[selected] 加 clampi(UI.opt 已 clamp,不可达),改留注释记依赖。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-31 12:26:09 +08:00 |
|