Character Sheet Creation

Fill in your Rat Records, delegate questions to your crew, and prepare your Math Magic Techniques.

{#if devMode}
🛠 Dev Mode Tools
{/if}

I. Basic Rat Records {basicComplete ? '✅' : '❌'}

{#if basicComplete}
Look: {state.player.avatar_look}
Smell: {state.player.avatar_smell}
First Words: "{state.player.first_words}"
Good at Math? {state.player.good_at_math}
{:else}
{/if}

II. Crew Delegations {delegateComplete ? '✅' : '❌'}

{#if !delegateComplete} {/if}

You must let other players decide what they like and hate about your character.

{#if delegateComplete}

What does another rat LIKE about you?

{state.player.other_like ? `"${state.player.other_like}"` : '(Waiting for answer...)'}
— {getPlayerName(state.player.other_like_from_player_id)}

What does another rat HATE about you?

{state.player.other_hate ? `"${state.player.other_hate}"` : '(Waiting for answer...)'}
— {getPlayerName(state.player.other_hate_from_player_id)}
{:else}

Randomly assign crewmates to write your relationships by clicking "Auto-Assign Tasks".

{/if}

III. Your Inbox (Task List)

Answer these questions for your crewmates. Be creative and have fun with it!

{#each state.players as p} {#if p.other_like_from_player_id === state.player.id && !p.other_like}
{/if} {#if p.other_hate_from_player_id === state.player.id && !p.other_hate}
{/if} {/each} {#if state.players.filter(p => (p.other_like_from_player_id === state.player.id && !p.other_like) || (p.other_hate_from_player_id === state.player.id && !p.other_hate)).length === 0}

No pending tasks! Wait for other players to assign you tasks.

{/if}

IV. Secret Techniques {techniquesComplete ? '✅' : '❌'}

{#if createdTechniques.length === 0}

Create 3 techniques that you will swap with other players. Make them cool or ridiculous!

{:else if createdTechniques.length === 3 && swappedTechniques.length < 3} {:else if !techniquesComplete} {#if swappedTechniques.length === 3}

Drag and drop your assigned techniques onto your Face Cards:

{#if faceError}
{faceError}
{/if}

Available Swapped Techniques

Drag a technique onto a card slot below to assign it.

{#each swappedTechniques as tech}
e.dataTransfer.setData('text/plain', tech)} class="draggable-tech-chip {tech === jackTech || tech === queenTech || tech === kingTech ? 'assigned-hidden' : ''}" > ⋮⋮ {tech}
{/each}
{ const tech = e.dataTransfer.getData('text/plain'); if (tech) { if (queenTech === tech) queenTech = ''; if (kingTech === tech) kingTech = ''; jackTech = tech; } }}>
J
J
Jack
Drop Technique Here
{#if jackTech}
{jackTech} jackTech = ''}>×
{/if}
{ const tech = e.dataTransfer.getData('text/plain'); if (tech) { if (jackTech === tech) jackTech = ''; if (kingTech === tech) kingTech = ''; queenTech = tech; } }}>
Q
Q
Queen
Drop Technique Here
{#if queenTech}
{queenTech} queenTech = ''}>×
{/if}
{ const tech = e.dataTransfer.getData('text/plain'); if (tech) { if (jackTech === tech) jackTech = ''; if (queenTech === tech) queenTech = ''; kingTech = tech; } }}>
K
K
King
Drop Technique Here
{#if kingTech}
{kingTech} kingTech = ''}>×
{/if}
{:else}
Waiting for all players to submit techniques so they can be shuffled...
{/if} {:else}
J {state.player.tech_jack}
Q {state.player.tech_queen}
K {state.player.tech_king}

Ready! Waiting for other players to finish J/Q/K assignment...

{/if}

V. Crew Creation Status

See the creation progress of the entire crew in real time.

    {#each state.players as p}
  • {p.name} {#if p.tech_jack} Ready {:else if p.created_techniques && JSON.parse(p.created_techniques).length === 3} Assigning Face Cards {:else} Writing Sheet {/if}
  • {/each}