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

@@ -9,6 +9,8 @@ import SaveLoadMenu from '@/components/SaveLoadMenu.vue'
import ChapterSelect from '@/components/ChapterSelect.vue'
import PlaybackBar from '@/components/PlaybackBar.vue'
import LangSwitch from '@/components/LangSwitch.vue'
import AchievementToast from '@/components/AchievementToast.vue'
import AchievementPanel from '@/components/AchievementPanel.vue'
import { useGameEngine } from '@/composables/useGameEngine'
import { useGameStore } from '@/stores/gameStore'
import { useFullscreen } from '@/composables/useFullscreen'
@@ -23,6 +25,7 @@ const loading = ref(true)
const started = ref(false)
const showMenu = ref(false)
const showChapterSelect = ref(false)
const showAchievements = ref(false)
const hasAutoSave = ref(false)
const currentSpeed = ref(1)
const canSkip = ref(false)
@@ -199,6 +202,7 @@ init()
<button class="start-btn" @click="handleStart">{{ t('ui.start') }}</button>
<button v-if="hasAutoSave" class="start-btn resume-btn" @click="handleResume">{{ t('ui.resume') }}</button>
<button v-if="store.chapters.length > 0" class="start-btn chapters-btn" @click="openChapterSelect">{{ t('ui.chapters') }}</button>
<button v-if="store.achievementDefs.length > 0" class="start-btn achievement-btn" @click="showAchievements = true">成就</button>
</div>
<div v-if="store.gameEnded" class="game-end-overlay">
<div class="game-end-text">{{ t('ui.gameEnd') }}</div>
@@ -220,6 +224,17 @@ init()
@select="onStartChapter"
@back="showChapterSelect = false"
/>
<AchievementPanel
v-if="showAchievements"
:definitions="store.achievementDefs"
:unlocked-ids="store.unlockedAchievementIds"
@close="showAchievements = false"
/>
<AchievementToast
:achievement-id="store.toastAchievementId"
:definitions="store.achievementDefs"
@done="store.clearToastAchievement()"
/>
</template>
</div>
</template>
@@ -346,6 +361,11 @@ html, body {
color: #fc8;
}
.achievement-btn {
border-color: rgba(255, 193, 7, 0.3);
color: #ffc107;
}
.game-end-actions {
margin-top: 24px;
display: flex;