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 () => {