Dont get me wrong the whole issue with keeping the cities fed is at times in some of those cities abit "too much micromanagement".
I've been informed that this is not a bug as CrowleyCZ explained. Thanks for reporting.
At the very least make it so that you don't loose garrison or high tier units.The thing I find frustrating in game (not funny) is losing high quality garrison because of the way prosperity and food implement.
pin-pointed the absurdity of it!"that one imperial city which grew so rich, they starved themselves."
I'm confused on what is happening with in this case, you may be creating the whole problem...pin-pointed the absurdity of it!
In short, prosperity is dependent on food availability and not the other way around.all upgrades in the town and prosperity above 7000. They suddenly start to bleed dry of food. The main reason is negative prosperity value which is around 150-200 points.
Sorry to insist butMore prosperity means more people and more people means more food is needed is what confirmed by the QA team. If you think this needs to be shown to the players please open a suggestion topic in the UI feedback sub-forum.
Is this how it works, if so I think this can be considered a bug.Also there may be another dependency driving prosperity down or devs just put and artificial cap to keep the game stable, so that cap would drive prosperity down while food production still meets demand and that may be a problem if it the garrison limit is directly determined by the prosperity change and you loose troops as a result.
So that would be a bug I think.
It does exist already, but the thresholds do not make much sense.Solution Prosperity drift, like we have loyalty and security drift
if (fortification.IsTown)
{
if ((double) fortification.Prosperity < 250.0)
explainedNumber.Add(6f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity < 500.0)
explainedNumber.Add(5f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity < 750.0)
explainedNumber.Add(4f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity < 1000.0)
explainedNumber.Add(3f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity < 1250.0)
explainedNumber.Add(2f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity < 1500.0)
explainedNumber.Add(1f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
if ((double) fortification.Prosperity > 21000.0)
explainedNumber.Add(-6f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity > 18000.0)
explainedNumber.Add(-5f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity > 15000.0)
explainedNumber.Add(-4f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity > 12000.0)
explainedNumber.Add(-3f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity > 9000.0)
explainedNumber.Add(-2f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
else if ((double) fortification.Prosperity > 6000.0)
explainedNumber.Add(-1f, DefaultSettlementProsperityModel.HousingCostsText, (TextObject) null);
}