diff --git a/C7Engine/C7GameData/Player.cs b/C7Engine/C7GameData/Player.cs index 9af6d3585..8bb6906c7 100644 --- a/C7Engine/C7GameData/Player.cs +++ b/C7Engine/C7GameData/Player.cs @@ -1037,6 +1037,14 @@ public void DoCorruptionCalculations(GameData gameData) { } } + // Call once at turn advance, decrement penalty turns of unhappiness for drafting / whipping + public void DecrementCityUnhappinessPenalties(GameData gameData) { + foreach (City c in cities) { + // TODO: Add drafting unhappiness decrement when implemented + c.turnsOfUnhappinessDueToPopRushing -= (c.turnsOfUnhappinessDueToPopRushing > 0) ? 1 : 0; + } + } + public void RecalculateCitizenMoods(GameData gameData, bool goIntoDisorderIfUnhappy = false) { foreach (City c in cities) { City.Mood cityMood = c.RecalculateCitizenMoods(gameData); diff --git a/C7Engine/EntryPoints/TurnHandling.cs b/C7Engine/EntryPoints/TurnHandling.cs index 54a3c2d68..f2a23a467 100644 --- a/C7Engine/EntryPoints/TurnHandling.cs +++ b/C7Engine/EntryPoints/TurnHandling.cs @@ -60,6 +60,7 @@ public static async Task AdvanceTurn() { gameData.turn++; foreach (Player player in gameData.players) { player.MaybeSpawnBonusUnits(gameData); + player.DecrementCityUnhappinessPenalties(gameData); player.RecalculateCitizenMoods(gameData, goIntoDisorderIfUnhappy: true); player.DoCorruptionCalculations(gameData);