Magical gene / fields and regions
Opal Crackle
A coat shot through with fine dark seams, each one catching light in its own colour - the fire you would find cracked out of a boulder opal.
What it can come out as
| Outcome | Carrying |
|---|---|
| Opal Crackle, iridescent | Ocr/Ocr · Ocr/Ocp · Ocr/n |
| Opal Crackle, pigmented | Ocp/Ocp |
| Wild type | Ocp/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,143 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 pair | Shows as | How often |
|---|---|---|
Ocr/Ocr | Opal Crackle, iridescent | 0.0005% — 1 in 200,000 |
Ocr/Ocp | Opal Crackle, iridescent | 0.002% — 1 in 50,000 |
Ocr/n | Opal Crackle, iridescent | 0.0095% — 1 in 10,526 |
Ocp/Ocp | Opal Crackle, pigmented | 0.002% — 1 in 50,000 |
n/n | Wild type | 99.986% |
Its gene carrot
The file
common/src/main/resources/horsegenetics/genes/opal_crackle.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.
| Key | horsegenetics.opal_crackle |
|---|---|
| Phase | magical — it adds signed colour in phase 3, after the pigment has resolved |
| Priority | 285 — where it sits in the one (priority, key) paint order |
| Alleles | Ocr · Ocp · n |
| Varies per horse | 7 values drawn once off the expressing allele copy, so a foal that inherits the copy inherits the look |
| Built from | CRACKLE, PARTS, RAMP, SPOTS, TOWARD, emissive |
Why it is built this way
The import wanted adjacent seams to show UNRELATED hues and could only reach a whole-horse ramp, which drifts smoothly nose to tail and makes two cracks a hand's width apart nearly the same colour. The colour here comes off RAMP's 'cellId' axis instead: one key drawn per cell of a lattice sharing this mask's own seed and scale, constant across that cell, so neighbours land on unrelated stops.
It is a per-CELL key, not a per-SEAM one, and the difference is visible if you look for it: a seam runs between two cells, so its colour changes where three cells meet rather than staying constant along its whole length. That reads as fire moving along the crack, which is close to the reference and is not the same claim as 'each seam is one colour'.
cellSize and veinWidth are shared verbatim between the seam layer and the fleck layer's subtractive mask. Change one and check the flecks still avoid the seams.
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.
Opal Crackle, iridescent
A network of dark, thin-walled cracks runs the length of the coat, every seam lit from within and none of them agreeing about the colour.
- the seams —
PARTS×CRACKLE inverted, painted withRAMP, and it glows - and gold flecks between them —
PARTS×SPOTS×CRACKLE, painted withTOWARD
Opal Crackle, pigmented
The same cracked network, but the seams glow one steady colour instead of shifting cell to cell.
- the seams —
PARTS×CRACKLE inverted, painted withTOWARD - and gold flecks between them —
PARTS×SPOTS×CRACKLE, painted withTOWARD
Wild type
Nothing.
Paints nothing.