Нужды стали данными: NeedDef + needs.json (Hunger/Thirst/Rest/Mating), NeedSet (реестр: индексы, тип deplete/drive, поведение-исполнитель по id), динамический AnimalNeeds.Values (managed-массив — новая нужда не меняет структуру). AnimalNeedsSystem универсально считает убывание/рост по NeedDef; UtilityAi строится из NeedSet; действия исполняются по строковому id (реестр поведений) с восполнением нужды через NeedSet. Диета — AnimalDef.Diet (поиск корма гейтится). Добавить нужду/рацион виду = JSON без кода. Устраняет блокеры расширяемости #2 и #4. Сборка чистая, --check-content (9 типов дефов). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.2 KiB
JSON
33 lines
1.2 KiB
JSON
{
|
|
"type": "Animal",
|
|
// Виды-животные (фаза A1): подтип Pawn (kind=animal) + базовый геном вида из общих Gene-дефов
|
|
// (см. genes.json). Особь при спавне получает аллели вокруг этих баз, фенотип — формулами генов.
|
|
// Пол, стадии роста, размножение, здоровье и поведение приходят в фазах A2+.
|
|
"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",
|
|
"diet": ["plant"],
|
|
"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
|
|
}
|
|
}
|
|
]
|
|
}
|