Magical gene / no coat effect

Gladiator

It picks fights. Any hostile mob that comes close enough gets attacked, with no prompting and no target from you — unless you are riding it, at which point it is a horse again.

Built, and not yet seen in game

The gene, its inheritance and its founder table exist and are covered by the test suite; the translator that turns it into behaviour was written against the 26.1.2 sources and is flagged unverified in its own comments. Nothing on this page has been watched happening to a horse. What to look at, and what is most likely to be wrong, is on To be verified.

What it does

CombinationOutcome
Gld/Gld, unriddenattacks hostile mobs that come within reach
Gld/Gld, riddennothing — it stops the moment you mount
anything elsenothing

It stands its ground

It does not chase. Anything that walks into range is a problem it will solve; anything that stays away is not its business. That is what makes it safe to leave in a paddock, and it is the difference between a guard horse and a horse you find dead in a ravine.

It needs teeth

A vanilla horse has no attack at all. This locus makes it willing; how hard it hits is magic fighter, and a gladiator without one is a horse that bravely inconveniences a zombie.

Health

It picks fights, so it takes damage. Pair with magic health or expect losses.

Gene key
horsegenetics.gladiator
Alleles
Gld gladiator, n
Inheritance
homozygous recessive
Reaches the game as
a temper effect with when: not has_rider
Coat effect
none, ever
It holds a radius. It must never chase

A horse that pursues is a horse that dies forty blocks from its owner, and the owner blames the gene — correctly. Attack what comes within reach and return. Full pursuit and owner-leashed pursuit were both specified and both rejected in design; if a later session wants either, it is reopening a settled call, not filling a gap.

Re-check the condition every beat

has_rider already exists as a condition flag, but a temper that is evaluated once when the fight starts leaves a horse still swinging after someone mounts it. The check belongs on every beat, not on engagement.

Classify hostiles the way night temper already does

A hardcoded list makes every modded hostile invisible to the gene. Night temper already answers this question; reuse its answer rather than writing a second one that will drift.

The verb this gene exists to justify

night_temper is the right machine with the wrong switch. Its own javadoc defends welding night into the verb — and that argument holds for that locus and stops holding the moment a second gene wants the same behaviour on a different gate. temper is night_temper with the gate lifted out into an ordinary when, which makes this gene and guardian data rather than code.

Why it stops when you get on

A war horse that fights while you are steering it is a horse fighting your steering. The gate is what makes the gene usable: it is a guard when you are away and a mount when you are there, and those are the two states a horse is ever actually in.

Planned source: common/genetics/genes/GladiatorGene.java