feedback5 WG: 补位 detail cards only for the player's own cards (a teammate's bond popup member and the banned list show the chess as it is); the DOM fallback field draws a board stand-in with its avatar

This commit is contained in:
sganggs committed 2026-10-05 19:52:09 +08:00
1 parent 832d509ef4
commit d5a4e61fbb
3 files changed
+12 -6

No files matched your search

+7 -4
View File
@@ -21,7 +21,7 @@ import { render } from '../../vendor/preact.module.js';
import { html, TierChip } from './components.js';
import { GEO } from '../../../shared/constants.js';
import { chessAvatarUrl, itemIconUrl, tokenAvatarUrl, enemyIconUrl } from './assetUrls.js';
import { tileKey, hasFlag, UF, penPlacement, PEN, fieldTile } from './gameLogic.js';
import { tileKey, hasFlag, UF, penPlacement, PEN, fieldTile, fieldsStandIn, standInOf } from './gameLogic.js';
const DRAG_PX = 6;
const DMG_TTL = 900;
@@ -119,11 +119,14 @@ export function createFallbackView(host, opts = {}) {
const tempPos = (L, idx) => ({ x: (GEO.TEMP_C0 + idx) * L.tile, y: (L.rows + 1.72) * L.tile });
// ---- pieces (prep) ---------------------------------------------------------------------------------------
function pieceArt(p) {
function pieceArt(p, area = null) {
const mm = m();
if (p.kind === 'item') return itemIconUrl(mm, lookup('items', p.id));
if (p.kind === 'token') return tokenAvatarUrl(mm, p.id);
return chessAvatarUrl(mm, lookup('chess', p.id));
const chess = lookup('chess', p.id);
// 0.2.0 补位: on the board a chess the player does not own is its stand-in (render/app.js pieceInfo)
const si = area === 'board' && fieldsStandIn(st.priv, chess) ? standInOf(chess, dataStore?.get?.('backups') ?? null) : null;
return chessAvatarUrl(mm, si || chess);
}
function pieceName(p) {
if (p.kind === 'item') return lookup('items', p.id)?.name || '道具';
@@ -132,7 +135,7 @@ export function createFallbackView(host, opts = {}) {
}
function Piece({ p, x, y, L, area }) {
const src = pieceArt(p);
const src = pieceArt(p, area);
const dragging = st.drag?.uid === p.uid && st.drag.moved;
const golden = !!p.golden;
const tier = p.tier || lookup('chess', p.id)?.tier || lookup('items', p.id)?.tier;