mirror of https://github.com/hykilpikonna/AquaDX
[+] Wacca: Calculate player rating server side
parent
70aed1d5db
commit
be34915cdf
|
@ -292,8 +292,7 @@ fun WaccaServer.init() {
|
|||
addItems(items as List<List<Int>>, u, itmGrp(u))
|
||||
|
||||
// Upsert playlog
|
||||
val pl = WcUserPlayLog.parse(details as List<*>)
|
||||
rp.playLog.save(pl.apply { user = u })
|
||||
val pl = WcUserPlayLog.parse(details as List<*>).apply { user = u }
|
||||
|
||||
// Update best record
|
||||
val best = rp.bestScore.save((rp.bestScore.findByUserAndMusicIdAndLevel(u, pl.musicId, pl.level)
|
||||
|
@ -307,10 +306,18 @@ fun WaccaServer.init() {
|
|||
rating = waccaRating(achievement, pl.levelConst)
|
||||
})
|
||||
|
||||
// TODO: Update player rating - Best 35 old & 15 new
|
||||
// ⭐ Calculate player rating ⭐
|
||||
// Take the top 50 scores ranked by rating
|
||||
pl.beforeRating = u.playerRating
|
||||
val top50 = rp.bestScore.findTop50(u)
|
||||
u.playerRating = top50.sumOf { it.rating }
|
||||
pl.afterRating = u.playerRating
|
||||
|
||||
// Re-calculate user total score
|
||||
rp.user.save(u.apply { totalScore = rp.bestScore.sumScoreByUser(u) })
|
||||
u.totalScore = rp.bestScore.sumScoreByUser(u)
|
||||
|
||||
rp.user.save(u)
|
||||
rp.playLog.save(pl)
|
||||
|
||||
ls(best.lsMusicUpdate(), ls(pl.musicId, best.clears[0]), "seasonalInfo" - (1..11).map { 0 }, "ranking" - empty)
|
||||
}
|
||||
|
|
|
@ -36,6 +36,8 @@ interface WcUserBestScoreRepo : IWaccaUserLinked<WcUserScore> {
|
|||
fun findByUserAndMusicIdAndLevel(user: WaccaUser, songId: Int, level: Int): WcUserScore?
|
||||
@Query("SELECT SUM(achievement) FROM WcUserScore WHERE user = :user")
|
||||
fun sumScoreByUser(user: WaccaUser): Long
|
||||
@Query("SELECT WcUserScore FROM WcUserScore WHERE user = :user ORDER BY rating DESC LIMIT 50")
|
||||
fun findTop50(user: WaccaUser): List<WcUserScore>
|
||||
}
|
||||
interface WcUserPlayLogRepo : IWaccaUserLinked<WcUserPlayLog>, GenericPlaylogRepo<WcUserPlayLog>
|
||||
interface WcUserStageUpRepo : IWaccaUserLinked<WcUserStageUp>
|
||||
|
|
Loading…
Reference in New Issue