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

@@ -1,6 +1,6 @@
import { defineStore } from 'pinia'
import { ref, shallowRef } from 'vue'
import type { SceneNode, Choice, QTEDefinition, Hotspot, ChapterInfo } from '@engine/types'
import type { SceneNode, Choice, QTEDefinition, Hotspot, ChapterInfo, AchievementDef } from '@engine/types'
export interface SlotInfo {
slot: number
@@ -29,6 +29,10 @@ export const useGameStore = defineStore('game', () => {
const showChapterSelect = ref(false)
const chapters = ref<ChapterInfo[]>([])
const unlockedChapterIds = ref<Set<string>>(new Set())
const showAchievements = ref(false)
const achievementDefs = ref<AchievementDef[]>([])
const unlockedAchievementIds = ref<Set<string>>(new Set())
const toastAchievementId = ref('')
function setScene(scene: SceneNode) {
currentScene.value = scene
@@ -126,6 +130,28 @@ export const useGameStore = defineStore('game', () => {
showChapterSelect.value = val
}
function setShowAchievements(val: boolean) {
showAchievements.value = val
}
function setAchievementDefs(list: AchievementDef[]) {
achievementDefs.value = list
}
function setUnlockedAchievementIds(ids: string[]) {
unlockedAchievementIds.value = new Set(ids)
}
function addUnlockedAchievement(id: string) {
unlockedAchievementIds.value.add(id)
unlockedAchievementIds.value = new Set(unlockedAchievementIds.value)
toastAchievementId.value = id
}
function clearToastAchievement() {
toastAchievementId.value = ''
}
function dump() {
console.group('GameStore')
console.log('currentScene:', currentScene.value?.id)
@@ -142,13 +168,16 @@ export const useGameStore = defineStore('game', () => {
currentScene, choices, gameEnded, timerTotal, timerRemaining, saves,
qteActive, qteDef, qteTotal, qteRemaining, qteResult, videoTime,
hotspots, isImageScene, showChapterSelect, chapters, unlockedChapterIds,
inputMode,
inputMode, showAchievements, achievementDefs, unlockedAchievementIds,
toastAchievementId,
setScene, setChoices, clearChoices, setGameEnded,
setTimer, clearTimer, setSaves,
showQTE, updateQTE, resolveQTE, clearQTE, setVideoTime,
setHotspots, clearHotspots, setIsImageScene,
setInputMode,
setChapters, setUnlockedChapters, addUnlockedChapter, setShowChapterSelect,
setShowAchievements, setAchievementDefs, setUnlockedAchievementIds,
addUnlockedAchievement, clearToastAchievement,
dump,
}
})