forked from Cookies_Github_mirror/AquaDX
[O] Redesign wacca score model
This commit is contained in:
@@ -18,12 +18,18 @@ interface IWaccaUserLinked<T> : JpaRepository<T, Long> {
|
||||
}
|
||||
|
||||
interface WcUserOptionRepo : IWaccaUserLinked<WcUserOption>
|
||||
interface WcUserBingoRepo : IWaccaUserLinked<WcUserBingo>
|
||||
interface WcUserBingoRepo : IWaccaUserLinked<WcUserBingo> {
|
||||
fun findByUserAndPageNumber(user: WaccaUser, pageNumber: Int): WcUserBingo?
|
||||
}
|
||||
interface WcUserFriendRepo : IWaccaUserLinked<WcUserFriend>
|
||||
interface WcUserFavoriteSongRepo : IWaccaUserLinked<WcUserFavoriteSong>
|
||||
interface WcUserGateRepo : IWaccaUserLinked<WcUserGate>
|
||||
interface WcUserGateRepo : IWaccaUserLinked<WcUserGate> {
|
||||
fun findByUserAndGateId(user: WaccaUser, gateId: Int): WcUserGate?
|
||||
}
|
||||
interface WcUserItemRepo : IWaccaUserLinked<WcUserItem>
|
||||
interface WcUserBestScoreRepo : IWaccaUserLinked<WcUserScore>
|
||||
interface WcUserBestScoreRepo : IWaccaUserLinked<WcUserScore> {
|
||||
fun findByUserAndSongIdAndDifficulty(user: WaccaUser, songId: Int, difficulty: Int): WcUserScore?
|
||||
}
|
||||
interface WcUserPlayLogRepo : IWaccaUserLinked<WcUserPlayLog>
|
||||
interface WcUserStageUpRepo : IWaccaUserLinked<WcUserStageUp>
|
||||
|
||||
|
||||
@@ -55,6 +55,8 @@ class WaccaUser : BaseEntity() {
|
||||
var lastFolderId = 0
|
||||
var lastSongOrder = 0
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
var lastConsecDate: Date = Date(0)
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
var lastLoginDate: Date = Date()
|
||||
var gateTutorialFlags: String = "[[1, 0], [2, 0], [3, 0], [4, 0], [5, 0]]"
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package icu.samnyan.aqua.sega.wacca.model.db
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore
|
||||
import ext.ls
|
||||
import ext.sec
|
||||
import ext.*
|
||||
import icu.samnyan.aqua.net.games.BaseEntity
|
||||
import icu.samnyan.aqua.sega.general.IntegerListConverter
|
||||
import icu.samnyan.aqua.sega.wacca.WaccaItemType
|
||||
import icu.samnyan.aqua.sega.wacca.WaccaItemType.*
|
||||
import jakarta.persistence.*
|
||||
@@ -60,7 +60,7 @@ class WcUserGate : WaccaUserEntity() {
|
||||
var progress = 0
|
||||
var loops = 0
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
var lastUsed = 0
|
||||
var lastUsed = Date(0)
|
||||
var missionFlag = 0
|
||||
var totalPoints = 0
|
||||
|
||||
@@ -98,53 +98,50 @@ class WcUserItem(
|
||||
@Entity @Table(name = "wacca_user_score", uniqueConstraints = [UC("", ["user_id", "song_id", "chart_id"])])
|
||||
class WcUserScore : WaccaUserEntity() {
|
||||
var songId = 0
|
||||
var chartId = 0
|
||||
var difficulty = 0 // aka difficulty
|
||||
var score = 0
|
||||
var playCt = 0
|
||||
var clearCt = 0
|
||||
var misslessCt = 0
|
||||
var fullcomboCt = 0
|
||||
var allmarvCt = 0
|
||||
var gradeDCt = 0
|
||||
var gradeCCt = 0
|
||||
var gradeBCt = 0
|
||||
var gradeACt = 0
|
||||
var gradeAACt = 0
|
||||
var gradeAAACt = 0
|
||||
var gradeSCt = 0
|
||||
var gradeSSCt = 0
|
||||
var gradeSSSCt = 0
|
||||
var gradeMasterCt = 0
|
||||
var gradeSpCt = 0
|
||||
var gradeSspCt = 0
|
||||
var gradeSsspCt = 0
|
||||
|
||||
@Convert(converter = IntegerListConverter::class)
|
||||
var clears: MutableList<Int> = mutableListOf(0, 0, 0, 0, 0) // Played, Clear, Full Combo, Missless, All Marv
|
||||
|
||||
@Convert(converter = IntegerListConverter::class)
|
||||
var grades: MutableList<Int> = (1..13).map { 0 }.toMutableList() // From D to SSS+
|
||||
var bestCombo = 0
|
||||
var lowestMissCt = 0
|
||||
var lowestMissCt = Int.MAX_VALUE
|
||||
var rating = 0
|
||||
|
||||
fun ls() = ls(songId, chartId,
|
||||
ls(playCt, clearCt, misslessCt, fullcomboCt, allmarvCt),
|
||||
ls(playCt, clearCt, misslessCt, fullcomboCt, allmarvCt),
|
||||
ls(gradeDCt, gradeCCt, gradeBCt, gradeACt, gradeAACt, gradeAAACt, gradeSCt, gradeSSCt, gradeSSSCt, gradeMasterCt),
|
||||
score, bestCombo, lowestMissCt, 1, rating)
|
||||
fun ls() = ls(songId, difficulty, clears, clears, grades, score, lowestMissCt, 0, 1, rating)
|
||||
}
|
||||
|
||||
@Entity @Table(name = "wacca_user_playlog", uniqueConstraints = [UC("", ["user_id", "song_id", "chart_id", "date_scored"])])
|
||||
class WcUserPlayLog : WaccaUserEntity() {
|
||||
var songId = 0
|
||||
var chartId = 0
|
||||
var difficulty = 0
|
||||
var level = 0.0
|
||||
var score = 0
|
||||
var clear = 0
|
||||
var grade = 0
|
||||
@Convert(converter = IntegerListConverter::class)
|
||||
var judgements: MutableList<Int> = mutableListOf(0, 0, 0, 0) // Marv, Great, Good, Miss
|
||||
var maxCombo = 0
|
||||
var marvCt = 0
|
||||
var greatCt = 0
|
||||
var goodCt = 0
|
||||
var missCt = 0
|
||||
var grade = 0
|
||||
var clear = false
|
||||
var missless = false
|
||||
var fullCombo = false
|
||||
var allMarv = false
|
||||
var giveUp = false
|
||||
var skillPt = 0
|
||||
var fastCt = 0
|
||||
var lateCt = 0
|
||||
var season = 0
|
||||
var dateScored = ""
|
||||
var newRecord = false
|
||||
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
var dateScored = Date()
|
||||
|
||||
fun clears() = ls(1, +clear, +fullCombo, +missless, +allMarv)
|
||||
|
||||
companion object {
|
||||
val keys = ls("songId", "difficulty", "level", "score", "judgements", "maxCombo", "grade", "clear", "missless", "fullCombo", "allMarv", "giveUp", "skillPt", "fastCt", "lateCt", "newRecord")
|
||||
fun parse(l: List<*>) = JACKSON.parse<WcUserPlayLog>(keys.zip(l).toMap())
|
||||
}
|
||||
}
|
||||
|
||||
@Entity @Table(name = "wacca_user_stageup", uniqueConstraints = [UC("", ["user_id", "stage_id"])])
|
||||
|
||||
Reference in New Issue
Block a user