+ {memberName} · 보드 효과 요약
+ 현재 활성 노드와 연결 카드 기준입니다. 멤버를 바꾸면 해당 멤버의 요약을 확인할 수 있습니다.
+ {#if summary.received}
+ 이 멤버가 받는 기본 효과
+
+ {#each stats as stat}
+
+
- {stat.label}
+ -
+ 기본 능력치에+{format(summary.received.rate[stat.key])}%
+ 파랑 고정 증가+{format(summary.received.flatByArea.B[stat.key])}
+ 초록 고정 증가+{format(summary.received.flatByArea.G[stat.key])}
+
+
+ {/each}
+
+
- 액티브 발동률 증가
+ - +{format(summary.received.activationRateUp)}%
+
+
+ 계산 순서: 기본 능력치 × (1 + 증가율) → 파랑 고정 증가분 더하기 → 초록 고정 증가분 더하기
+ 파랑·초록 고정 증가분에는 위의 % 증가율을 곱하지 않습니다. 기본 능력치는 개화 보너스 적용 후 기준이며, %로 생기는 증가분은 올림합니다.
+ 초록 고정 증가는 모든 멤버 보드의 공통·기수 효과이며, 기수 보너스는 최대 +900을 반영합니다. 리더·가창 조건 효과, 의상·메모리 등은 포함하지 않습니다.
+ 발동률 증가는 기본 발동 확률에 곱하는 비율입니다. 예: 기본 50%에 +30% 적용 시 65%.
+ {/if}
+
+ 이 멤버 보드의 효과 상세 색상별 합계 · 적용 조건
+ 아래는 이 멤버 보드가 제공하는 효과만 합산한 값입니다. 연결 증폭을 포함하며, 기수·가창 보너스의 전체 보드 합산 상한 적용 전 수치입니다.
+
+ {#each summary.groups as group}
+
+ {areas[group.area].label}
+ {areas[group.area].condition}
+ {#if group.rows.length}
+
+ {#each group.rows as row}
+ - {row.description}{row.nodeCount}개 노드{row.boosted ? ' · 연결 증폭 포함' : ''}
+ {/each}
+
+ {:else}
+ 활성화된 효과가 없습니다.
+ {/if}
+
+ {/each}
+
+ 발동 빈도는 저장된 노드 효과입니다. 배치 분석·조합 탐색에서는 쿨타임 감소를 별도로 설정하거나 최적화합니다.
+
+
+
+
diff --git a/src/lib/engine/board-effects.ts b/src/lib/engine/board-effects.ts
index 90993e9..bdf9f6b 100644
--- a/src/lib/engine/board-effects.ts
+++ b/src/lib/engine/board-effects.ts
@@ -2,7 +2,7 @@ import { skillTargetBelongsTo } from './skill-condition.ts';
import type { CooldownReduction } from './types.ts';
import type { UnitStat } from './unit-power.ts';
-type BoardEffect = { id?: string; type: string; value: number | null; targetId?: string | null; trigger?: string | null };
+type BoardEffect = { id?: string; description?: string; type: string; value: number | null; targetId?: string | null; trigger?: string | null };
type BoardNode = { characterIds: string[]; effect: BoardEffect | null };
type BoardPosition = { groupId: string; x: number; y: number };
type BoardMember = { id: string; positionGroupId: string };
@@ -125,6 +125,79 @@ function connectionMultipliers(
return result;
}
+export type MemberBoardEffectSummary = {
+ received: {
+ flat: Record