{#each artwork.centers as _, n}{@const rect = tile(n)}{/each} {#each artwork.centers as _, n}{@const rect = tile(n)}{@const info = ocaCell(n)} {#if info.kind !== 'normal'} { if (e.pointerType === 'mouse') hovered = n; }} onpointerleave={() => (hovered = null)} onfocus={() => (hovered = n)} onblur={() => (hovered = null)} onclick={() => (selected = selected === n ? null : n)} onkeydown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); selected = selected === n ? null : n; } else if (e.key === 'Escape') dismiss(); }} > {/if} {/each} {#if inspected !== null}{@const rect = tile(inspected)} {/if} {#each displayed as cell, seat (seat)}{@const point = position(cell)} t }} data-player={seat} data-cell={cell} style:display={room.players[seat]?.withdrawnAt ? 'none' : undefined} > {#key seat === hopPlayer ? hop : 0} 0} class:bonus={seat === arrivalPlayer && arrival === 'bonus'} class:penalty={seat === arrivalPlayer && arrival === 'penalty'} class:goal={seat === arrivalPlayer && arrival === 'goal'} style={`--hop-duration:${stepDuration}ms;--arrival-duration:${room.definition?.animations?.[arrival ?? 'move']?.duration ?? 450}ms`} > {seat + 1} {/key} {/each} {#if inspected !== null}{/if}
a.type === 'roll')} onroll={() => onaction({ type: 'roll' })} onresultclose={(id) => playback.release(Number(id))} />

{#if room.state?.rolled}{feedback.title}{/if}{feedback.next}

{room.state?.note}

{#each room.players as player}
{player.nick}{player.seat === room.seat ? ' · tú' : ''}{#if player.withdrawnAt}Se ha retirado{:else}Casilla {room.state ?.positions?.[player.seat] ?? 0}{room.state?.skips?.[ player.seat ] ? ` · ${room.state.skips[player.seat]} descansos` : ''}{/if}
{/each}