document.getElementById('canvas')?.focus()}>
{#each sorted as anim (anim.animIndex)}
= 1 && anim.canJoin && !anim.localInSession} disabled={isClickDisabled(anim)} onclick={() => handleClick(anim)}>
{AnimationTitles[anim.animIndex] || anim.name}
{#if $memoryUnlocks.has(anim.animIndex)}
✓
{/if}
{#if anim.sessionState === 3 && anim.localInSession}
Playing...
{:else if anim.sessionState === 2 && anim.localInSession}
Starting...
{:else if anim.sessionState === 1 && anim.localInSession}
{formatWaiting(anim)}
{:else if anim.sessionState >= 1 && !anim.canJoin}
Roles filled
{:else if anim.sessionState >= 1 && anim.canJoin}
Join!
{:else if anim.eligible}
{isMobile ? 'Tap to start' : 'Click to start'}
{:else if anim.atLocation}
{formatNeeds(anim.slots)}
{/if}
{#each [...anim.slots].sort((a, b) => (b.filled ? 1 : 0) - (a.filled ? 1 : 0)) as slot}
{/each}
{:else}
Explore the island to discover scenes
{/each}