Рефактор: стадии роста и спавн — данными
Стадии стали данными: AnimalStageDef + AnimalDef.Stages (возраст входа = EnterAt x якорь maturity/lifespan, масштаб, набор текстур baby/adult, флаг adult для размножения); пусто -> встроенный дефолт Baby/Juvenile/Adult/Senior. AnimalFactory.StageAt/RegionFor/Scale/IsAdult работают по данным стадий; системы роста/решения/гона используют флаг adult вместо индекса. Спавн стал данными: AnimalDef.SpawnPer1000Cells — WorldScene рассыпает ВСЕ виды по плотности, не только захардкоженного оленя. Устраняет блокеры расширяемости #5 и #7. Сборка чистая, --check-content (9 типов дефов). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
f12b0f170c
commit
5d0cbd2115
+8
-6
@@ -10,12 +10,14 @@
|
||||
> через `Genome.Breed`, наследование пола без YY, поколение+1, потолок численности). Сборка
|
||||
> чистая, `--check-content` (33 гена).
|
||||
>
|
||||
> **Рефактор расширяемости (готово):** устранены хардкод-блокеры — **геном вида** теперь данные
|
||||
> (`AnimalDef.Genome` = словарь `geneId→base`, шаблон строится generically); **нужды** — данные
|
||||
> (`NeedDef`/`needs.json` + `NeedSet` + динамический `AnimalNeeds.Values` + реестр поведений-действий
|
||||
> по id); **диета** — данные (`AnimalDef.Diet`). Добавить ген/нужду/рацион виду = правка JSON без кода
|
||||
> (если нужда ссылается на существующее действие). Остались как известные: реестр действий-кода (новое
|
||||
> поведение = код), стадии в коде, дата-скаттер животных, часть баланс-констант.
|
||||
> **Рефактор расширяемости (готово):** устранены хардкод-блокеры — данными стали: **геном вида**
|
||||
> (`AnimalDef.Genome` = словарь `geneId→base`, шаблон строится generically); **нужды**
|
||||
> (`NeedDef`/`needs.json` + `NeedSet` + динамический `AnimalNeeds.Values` + реестр поведений по id);
|
||||
> **диета** (`AnimalDef.Diet`); **стадии роста** (`AnimalStageDef`/`AnimalDef.Stages` — возраст входа,
|
||||
> масштаб, текстуры, флаг «взрослая»; пусто → встроенный дефолт); **спавн** (`AnimalDef.SpawnPer1000Cells`
|
||||
> — все виды рассыпаются по суше из данных, не только олень). Добавить ген/нужду/рацион/стадию/спавн
|
||||
> виду = правка JSON без кода. Остаются как известные: реестр действий-кода (новое *поведение* = код,
|
||||
> сознательная граница), часть глобальных баланс-констант (скорость/выпас/потолок).
|
||||
>
|
||||
> **A3 (готово):** компонент `AnimalGrowth` (стадия + возраст); ген пола `GeneSex` (XX/XY,
|
||||
> генерация основателя без YY через `AnimalSet.GenerateGenome`) и ген `GeneMaturityAge`;
|
||||
|
||||
Reference in New Issue
Block a user