Fix EGF rating => rank calculation

This commit is contained in:
Claude Brisson
2024-07-13 10:57:50 +02:00
parent 8729f82ef4
commit 13e878c0ce

View File

@@ -5,6 +5,8 @@ import java.net.URL
import java.time.LocalDate import java.time.LocalDate
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
import java.util.* import java.util.*
import kotlin.math.ceil
import kotlin.math.floor
object EGFRatingsHandler: RatingsHandler(RatingsManager.Ratings.EGF) { object EGFRatingsHandler: RatingsHandler(RatingsManager.Ratings.EGF) {
val ratingsDateFormatter = DateTimeFormatter.ofPattern("dd MMM yyyy", Locale.ENGLISH) val ratingsDateFormatter = DateTimeFormatter.ofPattern("dd MMM yyyy", Locale.ENGLISH)
@@ -29,7 +31,10 @@ object EGFRatingsHandler: RatingsHandler(RatingsManager.Ratings.EGF) {
player["origin"] = "EGF" player["origin"] = "EGF"
// override rank with rating equivalent // override rank with rating equivalent
player["rating"]?.toString()?.toIntOrNull()?.let { rating -> player["rating"]?.toString()?.toIntOrNull()?.let { rating ->
player["rank"] = ((rating - 2050)/100).let { if (it < 0) "${-it+1}k" else "${it+1}d" } val rank = (rating - 2050.0) / 100.0
player["rank"] =
if (rank < 0) "${-floor(rank).toInt()}k"
else "${ceil(rank + 0.00001).toInt()}d"
} }
if ("UK" == player.getString("country")) { if ("UK" == player.getString("country")) {
player["country"] = "GB" player["country"] = "GB"