§22.2: seen / official / cause / now / cost / players notice / [ASSUMED] / tests for GitHub issue #51. Research 02
§3.18's [ASSUMED] landing line (md and json) now states the rule; `node tools/build-data.mjs --offline` changed only
data/bonds.json raidShip.spec.assumed[0].
Up to 0.1.1 only the 技能就绪 trigger required a landing tile that covers the target; the 10 s idle trigger took
raidTile's fallback (a tile that covers nothing), so a member with nothing reachable hopped every 10 s between useless
tiles and never went for a second ground enemy it could have hit. Now both triggers walk the candidates in the existing
order (own field first, most advanced first, at most 8) and jump to the first one with a covering tile; none -> the
member stays, its idle time keeps counting and the 0.25 s poll looks again. [ASSUMED]: the official text only says
"再部署至一名地面敌人周围".
raidTile now enumerates only the tiles a range offset leads back to from the enemy's body (same choice as the old
25-tile scan whenever a covering tile existed: 200 000 random cases), and a player's members share one sorted candidate
list per poll (rebuilt after a jump), so a search that finds nothing stays cheap: +5.8 us per tick on the heavy boss
field with 18 members that never reach anything, against +5.5 us for 0.1.1 (the plain requirement on the old scan:
+29.6 us). Tests: two "突袭 #51" cases in test/content/bonds_addon.test.js.
131 of the 135 Back skeletons have no Die clip, so SpineActor.die() changed nothing and the
attack / skill / idle loop went on under the redeploy ring. UnitView._wantsBack() now wants the
Back model only while the unit stands (or when its Back skeleton has a Die clip of its own);
die() / revive() mark the view and its update swaps the model in place after the frame's events
(a death and a redeploy in one frame load nothing). The Front model replays the fall (held end
for a unit already down), gets the knocked-down grey, and the redeploy brings the Back model back
with the deploy clip carried over. A skeleton without a Die clip holds its idle's first frame.
- DESIGN §21 intro: §21.25 now credits PR #2, #7, #10 and #14; the closing additions are mapped (issues #1 / #8 gaps
§21.26, issue #5 / #8 item 5 client fixes §21.27, the draft's match info §21.28, the six 重装 skills' deliberate
trigger deviation §21.29), the merge order names the four closing branches (their three "§21.26" subsections
renumbered §21.26-§21.28 in merge order) and GitHub's master, and the normative lines they rewrote are listed.
- DESIGN §10: a strategy built around a switched-off bond carries the 本局禁用 mark in the strategy draft (§21.26).
- CHANGELOG 0.1.1 intro names the GitHub issues and pull requests handled.
- docs-consistency: §21.1-§21.29 present and numbered consecutively; the intro's new mappings.
test/sim/robustness.test.js "performance: heavy 2-player boss field" failed on GitHub's windows runners (0.51-0.58 ms
per tick against the 0.5 ms bar) on PR #10, PR #12, PR #14 and master's own push. The bar stays 0.5 ms on a development
machine and is 1.0 ms when process.env.CI is set (GitHub sets it); the measured time is the best of three runs of the
same battle after two warm-up battles, each run still checking the peak, the 18 operators and zero errors. Documented
in the test header, DESIGN §11 and the CHANGELOG's 工具 section.
css/screens/loadout.css: `.lo > * { position: relative }` (one class, a later rule) overrode `.lo__bg { position:
absolute }`, so the mint glow / grid layer was a 0-px flex item and never rendered. `.lo > :where(:not(.lo__bg))`
keeps the one-class specificity for every other layer and never matches the background.
Checked in headless Chrome at 1920x1080 and 844x390 (touch): the layer now covers the overlay (0 px tall before),
every other box of the screen is unchanged, no console errors. Tests: test/ui/loadout.test.js (the cascade; fails on
the old rule), opt-in test/ui/loadout.e2e.test.js (the layer's box and stacking at both sizes). DESIGN §21.25 credits
PR #14 and PR #10 (crossOrigin on the two new Image() loads); CHANGELOG 0.1.1 lines for both.