diff options
Diffstat (limited to 'sw-common-model/src/commonMain/kotlin/org/luxons')
-rw-r--r-- | sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/score/Score.kt | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/score/Score.kt b/sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/score/Score.kt index c1f5e4d3..34dc0d99 100644 --- a/sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/score/Score.kt +++ b/sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/score/Score.kt @@ -3,7 +3,21 @@ package org.luxons.sevenwonders.model.score import kotlinx.serialization.Serializable @Serializable -class ScoreBoard(val scores: Collection<PlayerScore>) +class ScoreBoard(val scores: List<PlayerScore>) { + + @OptIn(ExperimentalStdlibApi::class) + val ranks = buildList { + var r = 1 + add(1) + for (i in 1..scores.lastIndex) { + if (scores[i] < scores[i - 1]) { + add(++r) + } else { + add(r) + } + } + } +} @Serializable data class PlayerScore( |