Цитата Сообщение от Peter Посмотреть сообщение
надо будет еще добавить запрет иммиграции при включенном avoid growth (на экране города). все давно хотят такую фичу.
Для этого в начале функции function MoveCitizen(fromCity, toCity) можно было бы добавить
Код:
if city:IsForcedAvoidGrowth() then
    print("Мигрант отказался ехать в " .. toCity:GetName() .. " из-за недостатка пищи в городе");
    return;
end
Но это работает для игрока-человека, я пока не видел, чтобы ИИ эту галочку нажимал. Проверял в обзоре города шпионом-дипломатом. Раз ИИ не умеет галку ставить, как я думаю, то не баланс получается. Лучшим решение будет такой код:
Код:
local iFoodPerTurn = toCity:FoodDifference();
if iFoodPerTurn < 2 then
    print("Мигрант отказался ехать в " .. toCity:GetName() .. ", из-за недостатка пищи в городе. Еда в ход: " .. iFoodPerTurn);
    return;
end
Здесь мы просто смотрим какой прирост еды в городе, например, добыча еды 13, съедено 10, итого +3 - про эту цифру говорю. 1 новый житель потребляет 2 еды, соответственно, если новому жителю не будет хватать пищи, т.е. её прирост будет меньше 2, мигрант в город не поедет.