feat: add collapsible member board effect summaries
Publish GitHub Pages output / publish (push) Successful in 46s

This commit is contained in:
2026-09-02 10:30:51 +09:00
parent a920d65a21
commit 7308428945
6 changed files with 326 additions and 3 deletions
+17 -1
View File
@@ -4,6 +4,8 @@
import cardSummary from '$lib/data/cards-summary.json';
import boardSummary from '$lib/data/boards-summary.json';
import memorySummary from '$lib/data/memory-summary.json';
import MemberBoardEffectSummary from '$lib/components/MemberBoardEffectSummary.svelte';
import { summarizeMemberBoardEffects } from '$lib/engine/board-effects';
import { calculateBoardEffects, calculateUnitPower, cardMatchesSearch, maximumWeightMatching, plainSkillText } from '$lib/engine/index.ts';
import { memoryParameterPermil } from '$lib/engine/memory.ts';
import type { BoardCardPlacements, CardListPreferences, CollectionCardState } from '$lib/models/user-data';
@@ -172,6 +174,17 @@
&& new Set(efficiencyFormation.cardIds.map((id) => cardById.get(id)?.characterId)).size === 5
&& leaderMembers.some((member) => member.characterId === efficiencyFormation.leaderCharacterId);
$: dataView = $page.url.pathname.endsWith('/cards') ? 'cards' : $page.url.pathname.endsWith('/boards') ? 'boards' : 'home';
$: selectedEffectSummary = dataView === 'boards' && selectedBoardMember
? summarizeMemberBoardEffects(boardSummary, userData.memberBoards, selectedBoardMember,
allCards.find((card) => card.characterId === selectedMemberId) ?? null, {
placements: userData.boardCards,
cards: connectCards.map((card) => ({
id: card.id,
awakening: userData.collection[card.id]?.awakening ?? 0,
connect: card.details.connect
}))
})
: null;
onMount(() => {
try {
userData = loadBrowserData(defaultPreferences());
@@ -1475,6 +1488,9 @@
</div>
{/if}
{/if}
{#if selectedBoardMember && selectedEffectSummary}
<MemberBoardEffectSummary memberName={selectedBoardMember.name} summary={selectedEffectSummary} />
{/if}
<div class="board-material-summary" aria-label="전체 보드 재료 총합">
<h3>전체 보드 재료 합계</h3>
<span><small>노드 포인트</small><strong>{allBoardPointTotal.toLocaleString('ko-KR')}</strong></span>
@@ -1602,7 +1618,7 @@
.board-toolbar p strong { color: #f0a1c2; font-size: 16px; }
.board-toolbar div { display: flex; gap: 6px; }
.board-toolbar button { padding: 6px 9px; border: 1px solid #394252; border-radius: 7px; color: #aeb7c5; background: #202630; font-size: 12px; font-weight: 750; cursor: pointer; }
.board-material-summary { display: flex; flex-wrap: wrap; gap: 7px; margin: 18px 0 0; padding: 10px; border: 1px solid #303a47; border-radius: 10px; background: #131922; }
.board-material-summary { display: flex; flex-wrap: wrap; gap: 7px; margin: 10px 0 0; padding: 10px; border: 1px solid #303a47; border-radius: 10px; background: #131922; }
.board-material-summary h3 { width: 100%; margin: 0 0 3px; color: #dce3eb; font-size: 14px; }
.board-material-summary span { display: grid; gap: 2px; min-width: 108px; padding: 7px 9px; border-radius: 7px; background: #1c2430; }
.board-material-summary small { color: #8490a0; font-size: 11px; }