fix: suppress videoEnd during QTE, clear QTE UI on game end and chapter restart

This commit is contained in:
2026-06-09 14:55:13 +08:00
parent 660fa9347c
commit 0a6d26ecb0
3 changed files with 11 additions and 2 deletions

View File

@@ -125,7 +125,7 @@ export class Engine {
)
this.videoManager.onEnd(() => {
if (!this.qteResolved) {
if (!this.qteTriggered || this.qteResolved) {
this.emit('videoEnd', scene)
this.onVideoEnd(scene)
}

View File

@@ -73,6 +73,7 @@ export function useGameEngine(videoEls: () => [HTMLVideoElement | null, HTMLVide
})
engine.on('gameEnd', () => {
store.clearQTE()
store.setGameEnded(true)
engine.choiceSystem.stop()
})

View File

@@ -80,6 +80,14 @@ export const useGameStore = defineStore('game', () => {
}, 1000)
}
function clearQTE() {
qteActive.value = false
qteDef.value = null
qteResult.value = 'none'
qteTotal.value = 0
qteRemaining.value = 0
}
function setVideoTime(t: number) {
videoTime.value = t
}
@@ -131,7 +139,7 @@ export const useGameStore = defineStore('game', () => {
hotspots, isImageScene, showChapterSelect, chapters, unlockedChapterIds,
setScene, setChoices, clearChoices, setGameEnded,
setTimer, clearTimer, setSaves,
showQTE, updateQTE, resolveQTE, setVideoTime,
showQTE, updateQTE, resolveQTE, clearQTE, setVideoTime,
setHotspots, clearHotspots, setIsImageScene,
setChapters, setUnlockedChapters, addUnlockedChapter, setShowChapterSelect,
dump,