feat: accessibility settings, subtitle/QTE improvements, docs update

This commit is contained in:
2026-06-09 19:42:08 +08:00
parent 33ad26ed52
commit c9d29019a0
8 changed files with 387 additions and 11 deletions

View File

@@ -37,6 +37,14 @@ export const useGameStore = defineStore('game', () => {
const endings = ref<EndingDef[]>([])
const visitedSceneIds = ref<Set<string>>(new Set())
const subFontSize = ref(Number(localStorage.getItem('subFontSize') || 20))
const subBgAlpha = ref(Number(localStorage.getItem('subBgAlpha') || 0))
const qteTimeRelax = ref(localStorage.getItem('qteTimeRelax') === 'true')
const qteSingleKey = ref(localStorage.getItem('qteSingleKey') === 'true')
const antiMistap = ref(localStorage.getItem('antiMistap') !== 'false')
const pauseEnabled = ref(localStorage.getItem('pauseEnabled') !== 'false')
const showSettings = ref(false)
function setScene(scene: SceneNode) {
currentScene.value = scene
}
@@ -172,6 +180,14 @@ export const useGameStore = defineStore('game', () => {
visitedSceneIds.value = new Set(visitedSceneIds.value)
}
function setSubFontSize(v: number) { subFontSize.value = v; localStorage.setItem('subFontSize', String(v)) }
function setSubBgAlpha(v: number) { subBgAlpha.value = v; localStorage.setItem('subBgAlpha', String(v)) }
function setQteTimeRelax(v: boolean) { qteTimeRelax.value = v; localStorage.setItem('qteTimeRelax', String(v)) }
function setQteSingleKey(v: boolean) { qteSingleKey.value = v; localStorage.setItem('qteSingleKey', String(v)) }
function setAntiMistap(v: boolean) { antiMistap.value = v; localStorage.setItem('antiMistap', String(v)) }
function setPauseEnabled(v: boolean) { pauseEnabled.value = v; localStorage.setItem('pauseEnabled', String(v)) }
function setShowSettings(v: boolean) { showSettings.value = v }
function dump() {
console.group('GameStore')
console.log('currentScene:', currentScene.value?.id)
@@ -190,6 +206,8 @@ export const useGameStore = defineStore('game', () => {
hotspots, isImageScene, showChapterSelect, chapters, unlockedChapterIds,
inputMode, showAchievements, achievementDefs, unlockedAchievementIds,
toastAchievementId, showEndingGallery, endings, visitedSceneIds,
subFontSize, subBgAlpha, qteTimeRelax, qteSingleKey, antiMistap, pauseEnabled,
showSettings,
setScene, setChoices, clearChoices, setGameEnded,
setTimer, clearTimer, setSaves,
showQTE, updateQTE, resolveQTE, clearQTE, setVideoTime,
@@ -199,6 +217,8 @@ export const useGameStore = defineStore('game', () => {
setShowAchievements, setAchievementDefs, setUnlockedAchievementIds,
addUnlockedAchievement, clearToastAchievement,
setEndings, setShowEndingGallery, setVisitedSceneIds, addVisitedSceneId,
setSubFontSize, setSubBgAlpha, setQteTimeRelax, setQteSingleKey, setAntiMistap, setPauseEnabled,
setShowSettings,
dump,
}
})