// Active effects list (m.private.effects: band / 机变 / team / item / garrison effects with counters): // compact icon column at the right edge, rich-text tooltip per effect. `counterText` (a 悬赏's "还剩 N 场作战", user // playtest #6 item 4) replaces the bare counter in the tooltip's kind line. import { html, Tooltip, MicroLabel } from './components.js'; import { Img, RichText, GIcon } from './gameComponents.js'; import { effectIconUrl } from './assetUrls.js'; import { data } from '../data.js'; const KIND = { band: '策略', choice: '机变', team: '团队增益', item: '道具', garrison: '特质' }; /** @param {{ effects: any[] }} props */ export function EffectsList({ effects }) { const list = (Array.isArray(effects) ? effects : []).filter((e) => e && (e.name || e.desc)); if (!list.length) return null; const m = data.get('assets'); return html`
<${MicroLabel}>EFFECTS ${list.slice(0, 10).map((e, i) => html`<${Tooltip} key=${e.id ?? i} placement="bottom" text=${html`
${e.name || '效果'}${KIND[e.iconKind] || ''}${e.counterText ? ` · ${e.counterText}` : e.counter != null ? ` · ${e.counter}` : ''} <${RichText} as="p" text=${e.desc || ''} />
`}> <${Img} src=${effectIconUrl(m, e)} fallback=${html`<${GIcon} name="bolt" />`} /> ${e.counter != null && e.counter !== '' ? html`${e.counter}` : null} `)}
`; }