Files
MVP1/Assets/Scripts/Modules/Settlement/Population/PopulationRules.cs
T

37 lines
2.6 KiB
C#

// МОДУЛЬ ПОСЕЛЕНИЯ, часть «Население» (люди города). Документ: Docs/Modules/Population.md
// Правила населения -- только числа, без Unity. Заполняются из EconomyConfig (App/GameModules),
// в тестах -- напрямую. Значения по умолчанию -- из дизайн-документа (этап 2 плана разработки).
public sealed class PopulationRules
{
// Стартовый город T1: 300 человек = 120 рабочих + 30 воинов + 150 остальных.
// Доля способных работать (120 из 270 жителей) сохраняется и при росте города.
public int StartTotal = 300;
public int StartWorkers = 120;
public int StartSoldiers = 30;
// Еда в час
public double FoodPerCivilianPerHour = 0.1;
public double FoodPerSoldierPerHour = 0.2;
// Прирост +2–3 человека в час, если есть еда
public double GrowthPerHour = 2.5;
// Предел населения (жильё). Решение команды от 19.10.2026: 300 жителей при пределе 300 -- прирост стоит,
// построен Дом -- прирост идёт. Прибавки за Дом и Ратушу НЕ утверждены командой.
public int HousingBase = 300;
public int HousingPerTownHallLevel = 50;
public int HousingPerHouseLevel = 50; // каждый уровень Дома (здание "Население")
// Найм воинов (решение команды от 19.10.2026): воины набираются из свободных (не работающих) жителей,
// гражданский резерв не отдаётся. Пример команды: 150 свободных, резерв 30 -> нанять можно не больше 120.
// Резерв задаёт уровень поселения: база + прибавка за уровень Ратуши. Прибавка НЕ утверждена.
public int CivilianReserve = 30;
public int CivilianReservePerTownHallLevel = 0;
public int PeoplePerSoldier = 1; // сколько жителей стоит один воин (EconomyConfig, раздел "Солдат")
// Офлайн-прогресс досчитывается не больше чем за столько часов. Число НЕ утверждено.
public int MaxOfflineHours = 48;
public int StartCivilians => StartTotal - StartSoldiers;
}