feedback2 WB: DESIGN §22.2's repro line says why no landing reaches the enemy (it stands on floor, the tiles beside it do not cover it)

This commit is contained in:
sganggs committed 2026-10-03 23:10:13 +08:00
1 parent 2d96fe7c61
commit 7d0b44a43b
1 file changed
+1 -1
+1 -1
View File
@@ -1469,7 +1469,7 @@ TBD-22.1
### 22.2 突袭's idle redeploy lands where it can attack (#51) — `content/bonds/addon/battle.js raidPoll / raidTile / raidReach / raidTargets`, research 02 §3.18
- **Seen** (GitHub issue #51, on 0.1.0): a 突袭 member idle for 10 s was redeployed even when no landing tile let it attack an enemy, so it hopped every 10 s between useless tiles; and the idle trigger always went for the most advanced enemy, even when another ground enemy could have been reached. **Real** (reproduced on 0.1.1): with one speed-0 enemy on floor nothing can be deployed next to, the member jumped at 10 / 20 / 30 / 40 s between (10,9) and (10,8) and never attacked; a second, reachable enemy was ignored. On the five real runs of the F5 test (`test/sim/feedback1f-downed-tile.test.js`) 26 of 60 jumps landed with no enemy in range — e.g. three members jumping to one enemy whose two reachable tiles the first two took.
- **Seen** (GitHub issue #51, on 0.1.0): a 突袭 member idle for 10 s was redeployed even when no landing tile let it attack an enemy, so it hopped every 10 s between useless tiles; and the idle trigger always went for the most advanced enemy, even when another ground enemy could have been reached. **Real** (reproduced on 0.1.1): with one speed-0 enemy that no landing tile reaches (it stands on plain floor, and a RIGHT-facing melee member reaches it only from that tile or the floor tile behind it), the member jumped at 10 / 20 / 30 / 40 s between (10,9) and (10,8) beside it and never attacked; a second, reachable enemy was ignored. On the five real runs of the F5 test (`test/sim/feedback1f-downed-tile.test.js`) 26 of 60 jumps landed with no enemy in range — e.g. three members jumping to one enemy whose two reachable tiles the first two took.
- **Official**: the bond text (activity_table bondInfoDict / effectInfoDataDict; PRTS 盟约记录, no note under it) "【突袭】干员10秒内未进行攻击或技能就绪时,若范围内没有敌人,则保留技力立即再部署至一名地面敌人周围" names no tile rule; whether an official jump can land out of range is not known (the reporter: the text "按字面允许落在不能立即攻击的位置").
- **Cause**: the covers-the-target requirement of `raidPoll` bound only the 技能就绪 trigger (`if (!idleOk && !tile[2]) continue;`), and `raidTile` scored covering tiles first but still returned a non-covering one when none covered — so the idle trigger jumped to its first candidate whatever the tile.
- **Now** (the owner's decision — the reporter's proposal and our reply on #51 「改成优先落在能打到敌人的位置」): both triggers jump only to a landing tile from which the member's attack range (its own grid + 攻击距离 rangeExtend, turned by its direction; a huge enemy counts on any tile it occupies) covers the chosen ground enemy. The poll walks the candidates in the existing order — its own field's ground enemies first, the most advanced (least remaining path) first, at most the 8 most advanced — and takes the first one that has such a tile (the nearest within 2 tiles, the facing-RIGHT tie-break as before). When none has one the member stays where it is: its idle time keeps counting and the 0.25 s poll looks again, so it jumps as soon as an enemy can be reached. After a jump the idle time restarts from the landing (then from each attack). Unchanged: never onto a knocked-out operator's tile (§21.24), never into the 深水区 (§21.3, `grid.canStand`), SP kept, a real redeployment (部署时 effects), the ATK / HP bonus.