카드 목록 · 홀로도리 계산기

출력 조건

타입
{#each typeOptions as type} {/each}
주스탯
{#each statOptions as stat} {/each}
액티브 확률
{#each activeProbabilityOptions as probability} {/each}
액티브 조건
{#each skillConditionOptions as conditionStatus} {/each}
스페셜 조건
{#each skillConditionOptions as conditionStatus} {/each}
이격
{#each cardVariantOptions as variantStatus} {/each}
기수
{#each generationOptions as generation} {/each}
타입 주스탯 기수 이름
개화
{#if filteredCards.length === 0}
선택한 조건에 맞는 카드가 없습니다.
{:else}
{#each filteredCards as card (card.id)} {@const expanded = expandedCardId === card.id} {@const passive = skillAtLevel(card.details.passive, selectedSkillLevel)} {@const active = skillAtLevel(card.details.active, selectedSkillLevel)} {@const special = skillAtLevel(card.details.special, selectedSkillLevel)}
타입 {card.type} 주스탯 기수 {generationLabel(card.generation)} 이름 {card.name} {#if card.versionName}{card.versionName}{/if} 주기 {secondsLabel(active?.coolTimeSeconds)} 확률 {probabilityLabel(active?.probabilityPercent)} 지속 {secondsLabel(active?.durationSeconds)} 효과 {activeEffectLabel(active)} {selectedSkillLevel === 1 ? '명함' : '5 개화'}
{#if expanded}

패시브

{#if passive}

{#each descriptionSegments(passive.description) as segment} {#if segment.icon && typeIconPaths[segment.icon as CardType]}{/if} {#if segment.icon && statOptions.includes(segment.icon as HighestStat)}{/if} {segment.text} {/each}

{/if}

액티브

{#if active?.condition}조건부{/if}
{#if active}
주기
{active.coolTimeSeconds !== null ? `${active.coolTimeSeconds}초` : '—'}
확률
{probabilityLabel(active.probabilityPercent)}
지속
{active.durationSeconds !== null ? `${active.durationSeconds}초` : '—'}
{#if active.condition}

조건

{#each descriptionSegments(active.condition) as segment} {#if segment.icon && typeIconPaths[segment.icon as CardType]}{/if} {#if segment.icon && statOptions.includes(segment.icon as HighestStat)}{/if} {segment.text} {/each}

{/if}

{active.condition ? '조건 충족 시 효과' : '효과'}

{#each descriptionSegments(active.effect || active.description, selectedSkillLevel === 2) as segment} {#if segment.icon && typeIconPaths[segment.icon as CardType]}{/if} {#if segment.icon && statOptions.includes(segment.icon as HighestStat)}{/if} {segment.text} {/each}

{/if}

스페셜

{#if special?.condition}조건부{/if}
{#if special}
지속
{special.durationSeconds !== null ? `${special.durationSeconds}초` : '—'}
{#if special.condition}

조건

{#each descriptionSegments(special.condition) as segment} {#if segment.icon && typeIconPaths[segment.icon as CardType]}{/if} {#if segment.icon && statOptions.includes(segment.icon as HighestStat)}{/if} {segment.text} {/each}

{/if}

{special.condition ? '조건 충족 시 효과' : '효과'}

{#each descriptionSegments(special.effect || special.description, selectedSkillLevel === 2) as segment} {#if segment.icon && typeIconPaths[segment.icon as CardType]}{/if} {#if segment.icon && statOptions.includes(segment.icon as HighestStat)}{/if} {segment.text} {/each}

{/if}

의상 효과

{#if card.details.costume}

{#each descriptionSegments(card.details.costume.description) as segment} {#if segment.icon && typeIconPaths[segment.icon as CardType]}{/if} {#if segment.icon && statOptions.includes(segment.icon as HighestStat)}{/if} {segment.text} {/each}

{:else}

의상 효과 없음

{/if}
{/if}
{/each}
{/if}