37 lines
2.6 KiB
C#
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;
|
|
}
|