feedback5 CB5: the boss round's prep shows both players of a pair together — the partner's pieces on the other half, as the battle places them — and frames the pair's two avatars in the official green (community report of 2026-10-06, item 51)
The own half was already the official one (the right-hand player on the right half with the
right_boss_*_camera_param camera, its layout mirrored col c -> 20 - c with RIGHT <-> LEFT, so its operators
face the leader as before: research 09 §1.2, DESIGN §15); the partner's half stood empty and nothing framed
the pair.
Server: in a boss round's prep m.private.bossMate { playerId, side, units } = the partner's board as UnitInfo
on its half (Match.bossMateView, finalAssault.js bossFieldPlacement); markPrivate marks the partner's
m.private with the mover's, so it follows live; a scout of either player (Match.prepFieldMeta) carries both
halves (`mate`), and its signature covers the partner's board.
Client: render/app.js syncMates draws the partner's units read-only ('m:<uid>' views: never picked, dragged
or swept with the own pieces) and the whole boss field is lit; the team panel frames the pair's avatars
(gameLogic teamFrameIds: the players still in by seat, two by two, as prepCamera — the boss field in the
fight) from the round start through the Final Assault / Hidden Core, with the official ui/battle
bg_team_border tinted the autochess green (#4ed8af; a plain ring without the local art); none for a lone
player, an eliminated player, a spectator seat, or 联防.
Overlap with PR #191 (same-field frames, issue #190; not merged): it published m.public bossPairing and
framed the partner alone in gold, 联防 included, plus a banner naming the partner; here the pairing is read
as the prep camera already does, both avatars get the official green frame, boss rounds only.
[ASSUMED] the partner's bench is not shown; one frame per avatar.
Golden unchanged. Tests: test/match/feedback5-boss-pair-prep.test.js (new, 4), the item 55 test now checks
the scouted player's own pieces (the partner's stand on the other half); SP_E2E
test/ui/feedback5-boss-pair.e2e.test.js (new, 2: both halves and the frames in prep and fight; item 55's
eliminated guest on the boss field with the leader). Docs: design/client.md §10 / §15, design/network.md,
PLAYING.md.
This commit is contained in:
1 parent
f14f03a59f
commit
ef10164773
16 files changed
+436
-33
No files matched your search
@@ -52,8 +52,17 @@ export class MatchMessaging {
|
||||
}
|
||||
|
||||
markPublic() { this._pubDirty = true; }
|
||||
/** A player's state changed: its m.private and (throttled, deduplicated) m.public (level, board, bonds…). */
|
||||
markPrivate(ps) { if (ps) { this._privDirty.add(ps); this._pubDirty = true; } }
|
||||
/**
|
||||
* A player's state changed: its m.private and (throttled, deduplicated) m.public (level, board, bonds…) — in a boss
|
||||
* round's prep also its pair partner's m.private, which shows this board on its other half (bossMate, item 51).
|
||||
*/
|
||||
markPrivate(ps) {
|
||||
if (!ps) return;
|
||||
this._privDirty.add(ps);
|
||||
this._pubDirty = true;
|
||||
const m = this._bossMateOf(ps);
|
||||
if (m) this._privDirty.add(m.mate);
|
||||
}
|
||||
|
||||
/** Send pending m.private (per player, only when changed) and m.public (throttled ≤ 10/s). */
|
||||
flush(forcePublic = false) {
|
||||
|
||||
Reference in new issue
Block a user