Persist Subjugation Quests triple-deck presets

This commit is contained in:
Ilya Groshev
2026-05-14 11:39:03 +03:00
parent fa5d023f58
commit ae884b4060
11 changed files with 142 additions and 0 deletions
+33
View File
@@ -13,6 +13,10 @@ func init() {
s, _ := utils.EncodeJSONMaps(sortedDeckRecords(user)...)
return s
})
register("IUserTripleDeck", func(user store.UserState) string {
s, _ := utils.EncodeJSONMaps(sortedTripleDeckRecords(user)...)
return s
})
register("IUserDeckCharacter", func(user store.UserState) string {
s, _ := utils.EncodeJSONMaps(sortedDeckCharacterRecords(user)...)
return s
@@ -68,6 +72,35 @@ func sortedDeckRecords(user store.UserState) []map[string]any {
return records
}
func sortedTripleDeckRecords(user store.UserState) []map[string]any {
keys := make([]store.DeckKey, 0, len(user.TripleDecks))
for key := range user.TripleDecks {
keys = append(keys, key)
}
sort.Slice(keys, func(i, j int) bool {
if keys[i].DeckType != keys[j].DeckType {
return keys[i].DeckType < keys[j].DeckType
}
return keys[i].UserDeckNumber < keys[j].UserDeckNumber
})
records := make([]map[string]any, 0, len(keys))
for _, key := range keys {
row := user.TripleDecks[key]
records = append(records, map[string]any{
"userId": user.UserId,
"deckType": int32(row.DeckType),
"userDeckNumber": row.UserDeckNumber,
"name": row.Name,
"deckNumber01": row.DeckNumber01,
"deckNumber02": row.DeckNumber02,
"deckNumber03": row.DeckNumber03,
"latestVersion": row.LatestVersion,
})
}
return records
}
func sortedDeckCharacterRecords(user store.UserState) []map[string]any {
keys := sortedStringKeys(user.DeckCharacters)
records := make([]map[string]any, 0, len(keys))