Adds the first plant↔animal coupling beyond "herbivore eats plant": a toxin/ thorns ↔ tolerance arms race built on the existing gene + hediff engines, plus the fuller RimWorld capacity set on the health scaffold. Coevolution C1 — plant defense → poisons/injures the eater: - Plant genes GeneToxicity/GeneThorns/GenePalatability (GenomeDef + PlantSet template + PlantPhenotype); animal gene GeneToxinTolerance. - Hediff Poisoned (non-progressing; grows from eating via HealthState.Intensify, immunity heals it, overdose is lethal). - AnimalActionSystem.ApplyPlantDefense on each bite: poison dose = toxicity × (1 − tolerance); thorns → ApplyInjury (reuses predator-cluster). - Cost of defense: PlantGrowthSystem growth ×= DefenseGrowthFactor() (1 − 0.4·toxicity − 0.3·thorns) — without a cost defense would max out and coevolution would stall. - Showcase: cactus thorns, poisonous mushroom; grass starts clean so toxicity can evolve on the staple. Deer/boar get small starting tolerance. Coevolution C2 — discrimination + the other half of the arms race: - Smart foraging (reuses A7 intelligence gating): herbivores with effective intelligence ≥ tier-4 weigh plants by palatability − perceived-toxin − distance; reflex grazers (or sick animals with dropped consciousness) eat the nearest plant and risk poison. - Cost of tolerance: detox raises metabolism (need decay ×= 1 + 0.5·tolerance), closing the arms race so tolerance doesn't fix at 1. - popstats reports mean toxinTolerance and a plants line (mean toxicity/thorns/ palatability) to watch the drift. Health capacities (RimWorld parity, user-requested): - New capacities BloodFiltration/Hearing/Talking/Eating; CapacityCalc rewritten to emit only capacities the body declares (a destroyed organ still shows 0%) with the full dependency chain (blood → pumping/breathing/filtration → consciousness → moving/sight/hearing/talking/eating, digestion). - Quadruped body gains kidneys + liver (filtration), ears (hearing), jaw/tongue (eating/talking). Inspector health tab lists all of a body's capacities. Localization (ru/en) for new genes' defense line, Poisoned, and the new capacity labels. Build + --check-content clean (11 def types, 40 genes, 39 traits). Not GUI-verified (headless can't render the world scene). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
107 lines
3.4 KiB
JSON
107 lines
3.4 KiB
JSON
{
|
|
"type": "Animal",
|
|
// Виды-животные: подтип Pawn (kind=animal) + базовый геном вида из общих Gene-дефов (см. Defs/Genes/).
|
|
// Особь при спавне получает аллели вокруг этих баз, фенотип — формулами генов. Диета задаётся ГЕНАМИ
|
|
// (herbivory/carnivory/omnivory): олень — травоядный, волк — хищник, кабан — всеядный. Хищники несут
|
|
// боевые параметры (attack*) и охотятся на добычу не крупнее себя; жертвы убегают (см. AnimalSystems).
|
|
"defs": [
|
|
{
|
|
"defName": "Deer",
|
|
"label": "pawn.deer",
|
|
"kind": "animal",
|
|
"texture": "things/pawn/animal/deer/DeerFemale_east",
|
|
"maleTexture": "things/pawn/animal/deer/DeerMale_east",
|
|
"babyTexture": "things/pawn/animal/deer/DeerBaby_east",
|
|
"corpseTexture": "things/pawn/animal/deer/Dessicated_DeerFemale_east",
|
|
"body": "Quadruped",
|
|
"diet": ["plant"],
|
|
"spawnPer1000Cells": 2.5,
|
|
"genome": {
|
|
"GeneMaxBodySize": 1.5,
|
|
"GeneMetabolism": 1.0,
|
|
"GeneMoveSpeed": 1.2,
|
|
"GeneBloodVolume": 1.4,
|
|
"GeneVision": 1.3,
|
|
"GeneBrainSize": 0.45,
|
|
"GeneInsulation": 0.55,
|
|
"GeneFurColor": 0.45,
|
|
"GeneMaturityAge": 90,
|
|
"GeneLifespan": 360,
|
|
"GeneBreedingSeason": 2,
|
|
"GeneGestationDays": 30,
|
|
"GeneLitterSize": 1,
|
|
"GeneHerbivory": 1.0,
|
|
"GeneToxinTolerance": 0.1
|
|
}
|
|
},
|
|
|
|
{
|
|
"defName": "Wolf",
|
|
"label": "pawn.wolf",
|
|
"kind": "animal",
|
|
"texture": "things/pawn/animal/wolf_timber/Wolf_Timber_east",
|
|
"maleTexture": "things/pawn/animal/wolf_timber/Wolf_Timber3_east",
|
|
"body": "Quadruped",
|
|
"diet": ["meat"],
|
|
"spawnPer1000Cells": 0.8,
|
|
"baseSpeed": 32,
|
|
"visionCells": 18,
|
|
"attackRangeCells": 1.3,
|
|
"attackDamage": 80,
|
|
"attackBleed": 3.0,
|
|
"attackBloodLoss": 5.0,
|
|
"genome": {
|
|
"GeneMaxBodySize": 1.6,
|
|
"GeneMetabolism": 1.1,
|
|
"GeneMoveSpeed": 1.4,
|
|
"GeneBloodVolume": 1.3,
|
|
"GeneVision": 1.5,
|
|
"GeneBrainSize": 0.5,
|
|
"GeneInsulation": 0.6,
|
|
"GeneFurColor": 0.7,
|
|
"GeneMaturityAge": 70,
|
|
"GeneLifespan": 240,
|
|
"GeneBreedingSeason": 3,
|
|
"GeneGestationDays": 35,
|
|
"GeneLitterSize": 4,
|
|
"GeneCarnivory": 1.0
|
|
}
|
|
},
|
|
|
|
{
|
|
"defName": "WildBoar",
|
|
"label": "pawn.boar",
|
|
"kind": "animal",
|
|
"texture": "things/pawn/animal/wildboar/WildBoar_east",
|
|
"body": "Quadruped",
|
|
"diet": ["plant", "meat"],
|
|
"spawnPer1000Cells": 1.0,
|
|
"baseSpeed": 26,
|
|
"visionCells": 13,
|
|
"attackRangeCells": 1.2,
|
|
"attackDamage": 45,
|
|
"attackBleed": 1.8,
|
|
"attackBloodLoss": 3.0,
|
|
"genome": {
|
|
"GeneMaxBodySize": 1.3,
|
|
"GeneMetabolism": 1.2,
|
|
"GeneMoveSpeed": 1.0,
|
|
"GeneBloodVolume": 1.2,
|
|
"GeneVision": 1.0,
|
|
"GeneBrainSize": 0.42,
|
|
"GeneInsulation": 0.5,
|
|
"GeneFurColor": 0.85,
|
|
"GeneMaturityAge": 80,
|
|
"GeneLifespan": 280,
|
|
"GeneBreedingSeason": 0,
|
|
"GeneGestationDays": 28,
|
|
"GeneLitterSize": 5,
|
|
"GeneHerbivory": 0.4,
|
|
"GeneCarnivory": 0.2,
|
|
"GeneOmnivory": 0.85,
|
|
"GeneToxinTolerance": 0.25
|
|
}
|
|
}
|
|
]
|
|
}
|