fix(homing): 抖动公式的整数除法加 @warning_ignore,消掉 INTEGER_DIVISION 告警
(bullet_idx * HOMING_RETRY_MS) / maxi(1, _active_count) 的截断是有意的 —— 抖动只需毫秒粒度的偏移,小数部分丢弃即所需语义。加注解让编辑器面板对 项目文件保持零告警,使验收标准⑩「无告警」真正成立。 行为不变(注解为编译期),复测:①②③ FAILS=0 / ah=0.25000 / max_step=0.050000 / 速率 350.0000;1500 弹同帧集体失败的到期时刻跨度 223ms、222 个互异值,抖动照常生效。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -260,6 +260,8 @@ func _apply_homing(bullet_idx: int, base: int, delta: float) -> void:
|
|||||||
# 用「bullet_idx 在活跃弹数中的占比」而非 bullet_idx % HOMING_RETRY_MS:后者在
|
# 用「bullet_idx 在活跃弹数中的占比」而非 bullet_idx % HOMING_RETRY_MS:后者在
|
||||||
# 弹数少于窗口宽度时只铺开 _active_count 毫秒(20 颗弹 → 20ms ≈ 1.2 帧,等于没
|
# 弹数少于窗口宽度时只铺开 _active_count 毫秒(20 颗弹 → 20ms ≈ 1.2 帧,等于没
|
||||||
# 打散),占比式则不论弹数多少都铺满整窗。到期时刻落在 [200, 400) ms。
|
# 打散),占比式则不论弹数多少都铺满整窗。到期时刻落在 [200, 400) ms。
|
||||||
|
# 整数除法是有意的:抖动只需毫秒粒度的偏移,小数部分丢弃即所需语义
|
||||||
|
@warning_ignore("integer_division")
|
||||||
var jitter: int = (bullet_idx * HOMING_RETRY_MS) / maxi(1, _active_count)
|
var jitter: int = (bullet_idx * HOMING_RETRY_MS) / maxi(1, _active_count)
|
||||||
# 取模在循环内不可达(bullet_idx < _active_count ⟹ jitter ≤ 199),仅作索引越界兜底
|
# 取模在循环内不可达(bullet_idx < _active_count ⟹ jitter ≤ 199),仅作索引越界兜底
|
||||||
cold["homing_retry_at"] = now + HOMING_RETRY_MS + jitter % HOMING_RETRY_MS
|
cold["homing_retry_at"] = now + HOMING_RETRY_MS + jitter % HOMING_RETRY_MS
|
||||||
|
|||||||
Reference in New Issue
Block a user