chore: sync latest changes

This commit is contained in:
2026-06-09 17:21:54 +08:00
parent bca137535b
commit 451c6ea025
12 changed files with 503 additions and 28 deletions

View File

@@ -21,17 +21,23 @@ interface WatchedRecord {
timestamp: number
}
interface AchievementRecord {
achievementId: string
}
class SaveDB extends Dexie {
saves!: Table<SaveRecord, number>
unlocks!: Table<UnlockRecord, string>
watched!: Table<WatchedRecord, string>
achievements!: Table<AchievementRecord, string>
constructor() {
super('MovieGameSaves')
this.version(4).stores({
this.version(5).stores({
saves: '++id, slot',
unlocks: 'chapterId',
watched: 'sceneId',
achievements: 'achievementId',
})
}
}
@@ -120,4 +126,16 @@ export class SaveSystem {
const records = await db.watched.toArray()
return records.map((r) => r.sceneId)
}
async unlockAchievement(id: string) {
const exists = await db.achievements.get(id)
if (!exists) {
await db.achievements.put({ achievementId: id })
}
}
async getUnlockedAchievements(): Promise<string[]> {
const records = await db.achievements.toArray()
return records.map((r) => r.achievementId)
}
}