Implement diet genes for animals, introducing GeneHerbivory, GeneCarnivory, and GeneOmnivory to define dietary behaviors. Add new animal types: Wolf (carnivore) and WildBoar (omnivore), with associated attributes and hunting mechanics. Enhance animal behavior systems to include hunting and fleeing dynamics based on genetic traits. Update documentation to reflect these changes and ensure localization for new terms. Clean build with no content errors.
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
{
|
||||
"type": "Animal",
|
||||
// Виды-животные (фаза A1): подтип Pawn (kind=animal) + базовый геном вида из общих Gene-дефов
|
||||
// (см. genes.json). Особь при спавне получает аллели вокруг этих баз, фенотип — формулами генов.
|
||||
// Пол, стадии роста, размножение, здоровье и поведение приходят в фазах A2+.
|
||||
// Виды-животные: подтип Pawn (kind=animal) + базовый геном вида из общих Gene-дефов (см. Defs/Genes/).
|
||||
// Особь при спавне получает аллели вокруг этих баз, фенотип — формулами генов. Диета задаётся ГЕНАМИ
|
||||
// (herbivory/carnivory/omnivory): олень — травоядный, волк — хищник, кабан — всеядный. Хищники несут
|
||||
// боевые параметры (attack*) и охотятся на добычу не крупнее себя; жертвы убегают (см. AnimalSystems).
|
||||
"defs": [
|
||||
{
|
||||
"defName": "Deer",
|
||||
@@ -28,7 +29,75 @@
|
||||
"GeneLifespan": 360,
|
||||
"GeneBreedingSeason": 2,
|
||||
"GeneGestationDays": 30,
|
||||
"GeneLitterSize": 1
|
||||
"GeneLitterSize": 1,
|
||||
"GeneHerbivory": 1.0
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"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
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -31,6 +31,21 @@
|
||||
"default": 90, "min": 1, "max": 400, "tags": ["animal", "lifecycle"],
|
||||
"effects": { "maturityAge": "value" } },
|
||||
|
||||
// --- Диета как ГЕНЫ (хищничество/травоядство/всеядство) ---
|
||||
// Каждый ген выражает свой признак [0..1]; рацион выводится порогами: ест растения, если
|
||||
// max(herbivory, omnivory) ≥ порога; ест мясо (охота/падаль), если max(carnivory, omnivory) ≥ порога.
|
||||
// Поэтому всеядность — отдельный ген, который включает ОБА источника пищи (генералист), а
|
||||
// специалисты задаются высоким herbivory ЛИБО carnivory. См. AnimalFactory.Diet.
|
||||
{ "defName": "GeneHerbivory", "parent": "BaseNumericGene", "label": "gene.herbivory",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["animal", "diet"],
|
||||
"effects": { "herbivory": "value" } },
|
||||
{ "defName": "GeneCarnivory", "parent": "BaseNumericGene", "label": "gene.carnivory",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["animal", "diet"],
|
||||
"effects": { "carnivory": "value" } },
|
||||
{ "defName": "GeneOmnivory", "parent": "BaseNumericGene", "label": "gene.omnivory",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["animal", "diet"],
|
||||
"effects": { "omnivory": "value" } },
|
||||
|
||||
// Пол как локус (фаза A3): аллели {X=0, Y=1}; самка XX, самец XY. Эффекта нет — пол читается из
|
||||
// самих аллелей (наличие Y), не из выраженного значения. mutationChance 0 (X не мутирует в Y).
|
||||
// Генерация особи-основателя задаёт пол явно (XX или XY), чтобы не возник невозможный YY.
|
||||
|
||||
@@ -12,6 +12,16 @@
|
||||
"initialSeverity": 0.05, "severityPerDay": 0.25, "immunityPerDay": 0.32,
|
||||
"lethalSeverity": 1.0, "pain": 0.3, "ambientPerDay": 0.03,
|
||||
"capMods": { "Moving": 0.6, "Consciousness": 0.85, "Digestion": 0.8 }
|
||||
},
|
||||
|
||||
// Рана/кровотечение (предатор-кластер): первый травматический урон. Не прогрессирует сама
|
||||
// (severityPerDay 0), но immunityPerDay её «сворачивает» (рана заживает ~за 2 дня). Пока активна —
|
||||
// теряется кровь (bloodLossPerDay × тяжесть); кровь на нуле = смерть. Боль и капмоды от тяжёлых ран.
|
||||
// Каждый укус усиливает тяжесть и сбрасывает заживление (см. HealthState.Intensify).
|
||||
{
|
||||
"defName": "Bleeding", "label": "hediff.bleeding",
|
||||
"initialSeverity": 0.3, "immunityPerDay": 0.5, "bloodLossPerDay": 0.8,
|
||||
"pain": 0.25, "capMods": { "Moving": 0.92, "Consciousness": 0.95 }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user