Engine pointer -> d044caf (formula gene grouping, content patches, def
field validation). Game-side demonstration of all three:
- genes.json: GeneHardiness whose effect is gsum('Gene.*Tolerance') — a
derived trait summing all tolerance genes via regex grouping.
- patches.json: a content patch giving every Bush* plant a wood harvest
product, applied to Core's own defs at load.
- GameContent registers load-time validators: Gene/Product defNames must
carry their type prefix.
- Program: a --check-content headless mode that loads all mod defs (running
patches + validators) and computes a sample genome's traits (compiling
every gene formula, grouping included) — a CI-friendly content lint.
Verified: --check-content reports 6 def types, 18 genes, 8 plants, 18
traits with hardiness computed from the gene group. Full suite green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New plant content, all driven by genes through the trait layer (no engine
change — the genetics machinery already supports it).
- ProductDef + products.json (wood, grass, berries, acorn) — what plants
yield; localized labels (ru/en).
- New numeric genes (genes.json): GeneFruitYield, GeneFruitSeason,
GeneHarvestAmount, GeneLeafHue, each declaring its trait via formula.
GenomeDef carries the per-species bases (PlantSet maps them into the
species template); PlantDef gains harvestProduct / fruitProduct.
- PlantPhenotype gains FruitYield/FruitSeason/HarvestAmount/LeafHue.
PlantFactory tints the sprite from the leaf-hue gene (combined with the
morph variant). Plants carry a Fruiting component; PlantFruitingSystem
ripens fruit on mature plants during their gene-chosen season and drops
it off-season.
- plants.json: trees give wood + acorns (autumn), bushes berries (summer),
grass gives grass — amounts/season/hue from genes.
- 'plant <species> [seed]' console command samples a species genome and
prints its gene-driven traits and products.
Build clean; def JSON validated; boot smoke loads the new content.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Engine pointer -> bc18db5: brings in the organism-agnostic gene
foundation (GeneDef, managed Genome, Phenotype trait computation) plus a
parallel MrGameEng.Net library the game does not use.
Game wiring: register the "Gene" def type and ship Mods/Core/Defs/
genes.json — a full gene set covering the plant phenotype dimensions
(environment optima/tolerances, vigor, lifecycle, reproduction) plus a
discrete morph gene, each declaring its trait effects as formulas. A
dev-console 'gene [seed]' command generates a genome from these defs,
prints its alleles, expressed values and computed traits, then breeds a
child — demonstrating the whole pipeline end to end. These genes seed
the G3 migration of plants onto traits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>