From d532a111a144987647cf9f1d00b9beb9dadc7e0b Mon Sep 17 00:00:00 2001 From: Loof <223481293+unciv-loof@users.noreply.github.com> Date: Fri, 19 Sep 2025 18:33:09 +0200 Subject: [PATCH] Revert to old CS military rank tribute point logic but retain integer division fix --- .../unciv/logic/civilization/diplomacy/CityStateFunctions.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/logic/civilization/diplomacy/CityStateFunctions.kt b/core/src/com/unciv/logic/civilization/diplomacy/CityStateFunctions.kt index db1457d849..37cd561205 100644 --- a/core/src/com/unciv/logic/civilization/diplomacy/CityStateFunctions.kt +++ b/core/src/com/unciv/logic/civilization/diplomacy/CityStateFunctions.kt @@ -463,10 +463,11 @@ class CityStateFunctions(val civInfo: Civilization) { if (!requireWholeList && modifiers.values.sum() < -200) return modifiers + // highest force gets rank=0 val forceRank = civInfo.gameInfo.getAliveMajorCivs().sortedByDescending { it.getStatForRanking( RankingType.Force) }.indexOf(demandingCiv) val globalModifier = civInfo.gameInfo.ruleset.modOptions.constants.tributeGlobalModifier - modifiers["Military Rank"] = globalModifier - forceRank * globalModifier / max(civInfo.gameInfo.gameParameters.players.size-1, 1) + modifiers["Military Rank"] = globalModifier * (civInfo.gameInfo.gameParameters.players.size - forceRank) / civInfo.gameInfo.gameParameters.players.size if (!requireWholeList && modifiers.values.sum() < -100) return modifiers