Each population center should have "happiness" and "loyalty" scores. The happiness score would be a single value (probably between 0 and 100) representing if the citizens' needs are being met, and loyalty would be a score between 0 and 100 for each leader that the citizens know exists (for example, if they have controlled land or units nearby in the past).
[ ] Tile should "flip" to another civ if loyalty is low enough.
[ ] Hostile units should lower loyalty on adjacent tiles.
[ ] Having many friendly military units nearby should increase loyalty but lower happiness.
[ ] Low happiness should decrease loyalty towards the ruling leader; high happiness should increase loyalty.
[ ] Killing hostile units should increase nearby happiness.
[ ] If a hostile unit enters and occupies the city center, loyalty should drop sharply as the city can no longer exert its influence over the citizens.
[ ] If loyalty passes under a certain threshold (or when it reaches 0?), the affected citizens are in "Rebellion" and will not produce any resources. If there any loyalty scores are higher than the current ruling leader's, the affected tiles may "flip" to that new leader.
[ ] If happiness was low before a tile flipped, the flip would give a temporary boost in both happiness and loyalty. Similarly, if happiness was high before the tile flipped, there would be a happiness and loyalty penalty. I would tend to say that the penalty should both be stronger and last longer than the boost, so that capturing tiles isn't too easy.
partially migrated from #125
Each population center should have "happiness" and "loyalty" scores. The happiness score would be a single value (probably between 0 and 100) representing if the citizens' needs are being met, and loyalty would be a score between 0 and 100 for each leader that the citizens know exists (for example, if they have controlled land or units nearby in the past).