From 4995f001ec192e52d4c1e98365d2dbe5c85a08b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E6=B1=89?= <5725748+qin_and_han_dynasties@user.noreply.gitee.com> Date: Sat, 11 Apr 2026 22:05:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E6=8C=87=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/assets/icons/equipment/登龙剑.svg | 1 + .../src/assets/icons/pill/渡厄丹.svg | 1 + Build_God_Game/src/assets/images/bag.svg | 6 +- Build_God_Game/src/router/index.ts | 6 + Build_God_Game/src/views/CharacterView.vue | 3 + Build_God_Game/src/views/GameView.vue | 24 ++ Build_God_Game/src/views/TutorialView.vue | 318 ++++++++++++++++++ .../2026-04-11-tutorial-feature-design.md | 74 ++++ 8 files changed, 428 insertions(+), 5 deletions(-) create mode 100644 Build_God_Game/src/assets/icons/equipment/登龙剑.svg create mode 100644 Build_God_Game/src/assets/icons/pill/渡厄丹.svg create mode 100644 Build_God_Game/src/views/TutorialView.vue create mode 100644 docs/superpowers/specs/2026-04-11-tutorial-feature-design.md diff --git a/Build_God_Game/src/assets/icons/equipment/登龙剑.svg b/Build_God_Game/src/assets/icons/equipment/登龙剑.svg new file mode 100644 index 0000000..205feb1 --- /dev/null +++ b/Build_God_Game/src/assets/icons/equipment/登龙剑.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Build_God_Game/src/assets/icons/pill/渡厄丹.svg b/Build_God_Game/src/assets/icons/pill/渡厄丹.svg new file mode 100644 index 0000000..743b627 --- /dev/null +++ b/Build_God_Game/src/assets/icons/pill/渡厄丹.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Build_God_Game/src/assets/images/bag.svg b/Build_God_Game/src/assets/images/bag.svg index 564b198..24ca49d 100644 --- a/Build_God_Game/src/assets/images/bag.svg +++ b/Build_God_Game/src/assets/images/bag.svg @@ -1,5 +1 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/Build_God_Game/src/router/index.ts b/Build_God_Game/src/router/index.ts index 4561829..580690c 100644 --- a/Build_God_Game/src/router/index.ts +++ b/Build_God_Game/src/router/index.ts @@ -33,6 +33,12 @@ const router = createRouter({ component: () => import('@/views/GameView.vue'), meta: { requiresAuth: true } }, + { + path: '/tutorial', + name: 'tutorial', + component: () => import('@/views/TutorialView.vue'), + meta: { requiresAuth: true } + }, { path: '/training', name: 'training', diff --git a/Build_God_Game/src/views/CharacterView.vue b/Build_God_Game/src/views/CharacterView.vue index dacf545..398f20f 100644 --- a/Build_God_Game/src/views/CharacterView.vue +++ b/Build_God_Game/src/views/CharacterView.vue @@ -74,6 +74,9 @@ const handleCreateCharacter = async () => { newCharacterName.value = '' newCharacterProfessionId.value = null showProfessionSelection.value = false + if (!localStorage.getItem('has_seen_tutorial')) { + router.push('/tutorial') + } } else { errorMsg.value = '创建失败,可能名称已存在或已达角色数量上限(3个)' } diff --git a/Build_God_Game/src/views/GameView.vue b/Build_God_Game/src/views/GameView.vue index 6e9375d..e0a9830 100644 --- a/Build_God_Game/src/views/GameView.vue +++ b/Build_God_Game/src/views/GameView.vue @@ -61,6 +61,10 @@ const handleSwitchCharacter = () => { window.location.href = '/character' } +const navigateToTutorial = () => { + router.push('/tutorial') +} + const navigateTo = (item: { label: string }) => { if (item.label === '打坐' || item.label === '打坐中') { router.push('/training') @@ -103,6 +107,9 @@ const handleBreakthrough = async () => { +
+ +