Magical gene / magical body-stat genes

Maelstrom

A whirlpool of tapering arms winds into a tight spiral on each flank, with a scatter of pale flecks caught in the sweep.

What it can come out as

OutcomeCarrying
Pale maelstromW/W · W/B · W/C · W/n
Black maelstromB/B · B/C · B/n
Coloured maelstromC/C
Wild typeC/n · n/n

How each one is actually drawn - region by region, and the layers it is built from - is on the coding tab.

Crossing two of them

Finding one

About 1 in 7,142 wild horses is born showing this. That is the whole of the supply: catch one, or make one with the carrot below. Breeds set their own pools and a breed built around this gene will carry it far more often than the wild population does.

Wild pairShows asHow often
W/WPale maelstrom0.0005% — 1 in 200,000
W/BPale maelstrom0.0007% — 1 in 149,925
W/CPale maelstrom0.0007% — 1 in 149,925
W/nPale maelstrom0.0095% — 1 in 10,526
B/BBlack maelstrom0.0007% — 1 in 149,925
B/CBlack maelstrom0.0007% — 1 in 149,925
B/nBlack maelstrom0.0007% — 1 in 149,925
C/CColoured maelstrom0.0007% — 1 in 149,925
n/nWild type99.986%

Its gene carrot

The file

common/src/main/resources/horsegenetics/genes/maelstrom.json — a data-driven gene, not a Java class. It is listed in the index.json beside it and registered by Genes' class initialiser at startup.

Keyhorsegenetics.maelstrom
Phasemagical — it adds signed colour in phase 3, after the pigment has resolved
Priority144 — where it sits in the one (priority, key) paint order
AllelesW · B · C · n
Varies per horse3 values drawn once off the expressing allele copy, so a foal that inherits the copy inherits the look
Built fromFAN, PARTS, SPECKLE, SPIRAL, TOWARD

Why it is built this way

twist is the whole trick. A FAN with twist 0 is a sunburst - straight bars out of a pivot. At 0.26 the fan's zero rotates as it travels and the bars come out as curved arms, which is the difference between a star and a vortex.

The SPIRAL takes its centre from the BODY bounds, which lands at about (18.5, 16) - the same point the FAN pivots on. Those two numbers are written to match and must move together, or the arms sweep past a core that is somewhere else.

inner 2.5 rather than 0: at the pivot an arm is arbitrarily thin, and anything under 0.5 units averages away. Starting at 2.5 the narrowest part of an arm is about 0.7 units, and the SPIRAL fills the middle that the fan leaves bare.

The flecks are a SPECKLE multiplied into the arm mask rather than laid over the whole flank, so they only appear where there is something for them to be torn out of.

Sourced from a traced SVG, but not drawn with the SVG mask. The trace is a photo-trace: 800 to 4500 path commands across dozens to hundreds of subpaths, most of them trace noise. That is well past the point ceiling, which exists precisely to keep a traced photograph out of a gene file. It would also have made the marking identical on every horse. The reference was read for what KIND of shape each element is and rebuilt from field masks instead. If a hand-drawn, low-node version of the source ever exists, the SVG mask with its d string pasted verbatim is the better gene.

Arrived keyed 'ixora.maelstrom'. Renamed to the horsegenetics namespace every other gene in the mod uses - the format allows a modder their own, but a gene shipping INSIDE this mod under a second namespace breaks the tooling that builds a key from a slug.

What it paints

Each outcome, described the way the gene file describes it, and then the layers that draw it in the order they are painted. The prose is the part a reader checks a bake against; the list underneath is what the engine actually did.

Pale maelstrom

A silver-white whirlpool on each flank, flecked with brighter grit.

  1. the sweeping arms — PARTS × FAN, painted with TOWARD
  2. the wound core — PARTS × SPIRAL, painted with TOWARD
  3. flecks torn out of the arms — PARTS × FAN × SPECKLE, painted with TOWARD

Black maelstrom

The reference form - a black vortex winding to a tight eye, flecked with grey.

  1. the sweeping arms — PARTS × FAN, painted with TOWARD
  2. the wound core — PARTS × SPIRAL, painted with TOWARD
  3. flecks torn out of the arms — PARTS × FAN × SPECKLE, painted with TOWARD

Coloured maelstrom

The whirl takes the line's own colour, darkest in the arms and brightest in the flecks.

  1. the sweeping arms — PARTS × FAN, painted with TOWARD
  2. the wound core — PARTS × SPIRAL, painted with TOWARD
  3. flecks torn out of the arms — PARTS × FAN × SPECKLE, painted with TOWARD

Wild type

No marking.

Paints nothing.