Affinity Details

{#if duplicate} Duplicate characters always have zero affinity. {:else if selCount > 1} Total {selCount === 2 ? 'pair' : 'trio'} affinity: {total} {/if} {#if selCount > 1} {#if charB !== 0} {/if} {#if charC !== 0} {/if} {/if} {#each infos as { relation, affinity, description, a, b, c, counted } (relation)} {#if description != null} {:else} {/if} {#if selCount > 1} {#if charB !== 0} {/if} {#if charC !== 0} {/if} {/if} {/each}
Group ID Description{nameA}{nameB}{nameC}Affinity
{relation}{[description.name, description.note].filter((s) => s != null).join(' – ')}{a ? '✓' : ''}{b ? '✓' : ''}{c ? '✓' : ''}{!duplicate && selCount > 1 && counted === selCount ? '+' : ''}{affinity}
{#snippet pending()}
Loading data...
{/snippet}

Descriptions are inferred from the horses in the respective groups. They are not included in the game data.

Some characters are not in affinity groups that it seems like they should be in, e.g. parent/child pairs and G1 winners for various races. Other characters are in affinity groups that it seems like they should not be in, e.g. Mihono Bourbon in the sprint group. Inclusion in a group is automatically generated from the game data and hence is known to correspond to game calculations, even where they don't make sense.

Thanks to princess_fox, hell259, Werseter, thegenosys, Lofi (Class: Voyager), and Ordalca on the GameTora Discord server, and Damhain on the CirnoTV server, for figuring out most of the groups.