2026-10-31 19:34:33 +03:00
|
|
|
// МОДУЛЬ НАСЕЛЕНИЯ. Документ: Docs/Modules/Population.md
|
2026-10-27 18:04:27 +03:00
|
|
|
// Правила населения -- только числа, без Unity. Заполняются из EconomyConfig (App/GameModules),
|
|
|
|
|
// в тестах -- напрямую. Значения по умолчанию -- из дизайн-документа (этап 2 плана разработки).
|
|
|
|
|
public sealed class PopulationRules
|
|
|
|
|
{
|
2026-10-27 18:51:35 +03:00
|
|
|
// Стартовый город T1: 300 человек = 120 рабочих + 30 воинов + 150 остальных.
|
|
|
|
|
// Доля способных работать (120 из 270 жителей) сохраняется и при росте города.
|
2026-10-27 18:04:27 +03:00
|
|
|
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;
|
|
|
|
|
|
2026-10-27 18:51:35 +03:00
|
|
|
// Предел населения (жильё). Решение команды от 19.10.2026: 300 жителей при пределе 300 -- прирост стоит,
|
|
|
|
|
// построен Дом -- прирост идёт. Прибавки за Дом и Ратушу НЕ утверждены командой.
|
|
|
|
|
public int HousingBase = 300;
|
|
|
|
|
public int HousingPerTownHallLevel = 50;
|
|
|
|
|
public int HousingPerHouseLevel = 50; // каждый уровень Дома (здание "Население")
|
2026-10-27 18:04:27 +03:00
|
|
|
|
2026-10-31 19:34:33 +03:00
|
|
|
// Найм воинов: воины набираются из свободных (не работающих) жителей, гражданский резерв не отдаётся.
|
|
|
|
|
// Резерв зависит от уровня Ратуши (регламент 31.10, ТЕСТ): уровни 1-2 -- 10, 3-5 -- 20, 6-10 -- 30.
|
|
|
|
|
// Элемент [i] -- резерв на уровне Ратуши i+1; выше последнего уровня -- последнее число.
|
|
|
|
|
public int[] CivilianReserveByTownHallLevel = { 10, 10, 20, 20, 20, 30, 30, 30, 30, 30 };
|
2026-10-28 22:11:36 +03:00
|
|
|
public int PeoplePerSoldier = 1; // сколько жителей стоит один воин (EconomyConfig, раздел "Солдат")
|
|
|
|
|
|
2026-10-27 18:04:27 +03:00
|
|
|
// Офлайн-прогресс досчитывается не больше чем за столько часов. Число НЕ утверждено.
|
|
|
|
|
public int MaxOfflineHours = 48;
|
|
|
|
|
|
|
|
|
|
public int StartCivilians => StartTotal - StartSoldiers;
|
|
|
|
|
}
|