fix: show DIY operators in watched battle bond members

This commit is contained in:
星闌 committed 2026-10-11 12:54:01 +08:00
1 parent bc50cac01f
commit 1188a9803c
2 files changed
+99 -4

No files matched your search

+5 -3
View File
@@ -61,9 +61,10 @@
// 0.1.0). Read-only: it takes the stats the sim computed last (`unit._s`) and the range grid it
// keeps, and never makes the unit recompute them, so looking never changes the battle's floats.
// battleRunner.unitIdOf(uid, ownerId, fieldId?) → the id of an own board piece's unit in that battle | null
// battleRunner.ownerOps(ownerId, fieldId?) → [{ kind: 'op', ownerId, defId, items?, standInFor? }] that player's
// battleRunner.ownerOps(ownerId, fieldId?) → [{ kind: 'op', ownerId, defId, items?, standInFor?, diy? }] that player's
// operators in the battle on screen with their equipment (a teammate's bond popup: the members in
// play, DESIGN §20.15, 变形同构体 wearers included; a 补位 stand-in names the replaced charId) | []
// play, DESIGN §20.15, 变形同构体 wearers included; a 补位 stand-in names the replaced charId,
// a 自选 operator carries its pick like UnitInfo) | []
//
// createBattleRunner(deps) builds an instance with injectable net / store / clock / frame scheduler / sim loader
// (test/match/runner.test.js and test/match/runner-pending.test.js drive it under Node).
@@ -883,7 +884,8 @@ export function createBattleRunner(deps) {
.map((u) => {
const o = Array.isArray(u.items) && u.items.length ? { kind: 'op', ownerId, defId: u.defId, items: [...u.items] } : { kind: 'op', ownerId, defId: u.defId };
const si = u.def && typeof u.def.standInFor === 'string' ? u.def.standInFor : null;
return si ? { ...o, standInFor: si } : o;
const diy = u.def?.diyFor ? u.def.loadout?.diy : null;
return { ...o, ...(si ? { standInFor: si } : {}), ...(diy ? { diy: { ...diy } } : {}) };
});
},
/** Re-show the current battle (the game screen remounted). */