From d4e0fdacf3d655cc00617080773d5f3824730866 Mon Sep 17 00:00:00 2001 From: bridge Date: Sat, 22 Nov 2025 15:32:46 +0800 Subject: [PATCH] refactor web code --- EN_README.md | 8 +- README.md | 9 +- static/templates/nickname.txt | 4 +- web/src/App.vue | 29 +- web/src/api/game.ts | 77 ++ web/src/api/http.ts | 42 + web/src/api/socket.ts | 121 +++ web/src/components/InfoPanel.vue | 877 ------------------ web/src/components/SystemMenu.vue | 26 +- web/src/components/game/AnimatedAvatar.vue | 4 +- web/src/components/game/EntityLayer.vue | 6 +- web/src/components/game/GameCanvas.vue | 12 +- web/src/components/game/MapLayer.vue | 34 +- .../game/panels/info/AvatarDetail.vue | 365 ++++++++ .../game/panels/info/InfoPanelContainer.vue | 232 +++++ .../game/panels/info/RegionDetail.vue | 113 +++ .../game/panels/info/components/EntityRow.vue | 56 ++ .../panels/info/components/SecondaryPopup.vue | 150 +++ .../game/panels/info/components/StatItem.vue | 71 ++ .../game/panels/info/components/TagList.vue | 52 ++ web/src/components/layout/StatusBar.vue | 31 +- web/src/components/panels/EventPanel.vue | 21 +- web/src/composables/useGameSocket.ts | 51 + web/src/composables/useMapData.ts | 35 - web/src/services/apiClient.ts | 46 - web/src/services/gameApi.ts | 91 -- web/src/services/gameGateway.ts | 121 --- web/src/stores/game.ts | 297 ------ web/src/stores/ui.ts | 136 +++ web/src/stores/world.ts | 143 +++ web/src/types/api.ts | 67 ++ web/src/types/core.ts | 143 +++ web/src/types/game.ts | 155 ---- web/src/utils/formatters/dictionary.ts | 24 + web/src/utils/formatters/number.ts | 19 + web/src/utils/normalizers.ts | 78 -- web/src/utils/theme.ts | 55 ++ web/tsconfig.json | 6 + web/vite.config.ts | 6 + 39 files changed, 2035 insertions(+), 1778 deletions(-) create mode 100644 web/src/api/game.ts create mode 100644 web/src/api/http.ts create mode 100644 web/src/api/socket.ts delete mode 100644 web/src/components/InfoPanel.vue create mode 100644 web/src/components/game/panels/info/AvatarDetail.vue create mode 100644 web/src/components/game/panels/info/InfoPanelContainer.vue create mode 100644 web/src/components/game/panels/info/RegionDetail.vue create mode 100644 web/src/components/game/panels/info/components/EntityRow.vue create mode 100644 web/src/components/game/panels/info/components/SecondaryPopup.vue create mode 100644 web/src/components/game/panels/info/components/StatItem.vue create mode 100644 web/src/components/game/panels/info/components/TagList.vue create mode 100644 web/src/composables/useGameSocket.ts delete mode 100644 web/src/composables/useMapData.ts delete mode 100644 web/src/services/apiClient.ts delete mode 100644 web/src/services/gameApi.ts delete mode 100644 web/src/services/gameGateway.ts delete mode 100644 web/src/stores/game.ts create mode 100644 web/src/stores/ui.ts create mode 100644 web/src/stores/world.ts create mode 100644 web/src/types/api.ts create mode 100644 web/src/types/core.ts delete mode 100644 web/src/types/game.ts create mode 100644 web/src/utils/formatters/dictionary.ts create mode 100644 web/src/utils/formatters/number.ts delete mode 100644 web/src/utils/normalizers.ts create mode 100644 web/src/utils/theme.ts diff --git a/EN_README.md b/EN_README.md index deed9ee..bfd794f 100644 --- a/EN_README.md +++ b/EN_README.md @@ -44,10 +44,6 @@ If you like this project, consider starring it~ You can also watch intro videos - ✅ Standalone release (packaged exe) - ✅ Menu bar & Save & Load -### 🔭 Long-term Systems -- [ ] ECS parallel toolkit -- [ ] Novelization/imagery/video for history and events - ### 🗺️ World System - ✅ Basic tile mechanics - ✅ Normal, cultivate, city, sect regions @@ -158,6 +154,10 @@ If you like this project, consider starring it~ You can also watch intro videos - [ ] Divination & Omens - [ ] Male-female traits inversion +### 🔭 Long-term +- [ ] ECS parallel toolkit +- [ ] Novelization/imagery/video for history and events +- [ ] Avatar calling MCP tools on their own ## Usage ### Run Steps diff --git a/README.md b/README.md index 52a20c4..7c0c2ac 100644 --- a/README.md +++ b/README.md @@ -46,10 +46,6 @@ - ✅ release 一键即玩的exe - ✅ 菜单栏 & 存档 & 读档 -### 🔭 远期系统 -- [ ] ECS并行工具 -- [ ] 历史/事件的小说化&图片化&视频化 - ### 🗺️ 世界系统 - ✅ 基础tile地块系统 - ✅ 基础区域、修行区域、城市区域、宗门区域 @@ -161,6 +157,11 @@ - [ ] 占卜 & 谶纬 - [ ] 男生女相 & 女生男相 +### 🔭 远期展望 +- [ ] ECS并行工具 +- [ ] 历史/事件的小说化&图片化&视频化 +- [ ] MCP化,修士自行调用工具 + ## 使用方法 ### 运行步骤 diff --git a/static/templates/nickname.txt b/static/templates/nickname.txt index 9250776..6e47333 100644 --- a/static/templates/nickname.txt +++ b/static/templates/nickname.txt @@ -3,8 +3,8 @@ 绰号是修仙界中对一个人物的评价和称谓,要求: 1. 符合修仙世界观,具有仙侠风格 2. 体现角色的特点、行为、性格或事迹 -3. 简洁有力,朗朗上口(2-4个字为佳) -4. 要帅气、有意境 +3. 简洁有力,朗朗上口、2~5个字 +4. 要帅气、有意境、多种多样 角色信息: {avatar_info} diff --git a/web/src/App.vue b/web/src/App.vue index c2564b1..a269890 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -1,23 +1,26 @@ - - - - diff --git a/web/src/components/SystemMenu.vue b/web/src/components/SystemMenu.vue index ef00ae4..5bab554 100644 --- a/web/src/components/SystemMenu.vue +++ b/web/src/components/SystemMenu.vue @@ -1,8 +1,10 @@ + + + + diff --git a/web/src/components/game/panels/info/InfoPanelContainer.vue b/web/src/components/game/panels/info/InfoPanelContainer.vue new file mode 100644 index 0000000..34769a3 --- /dev/null +++ b/web/src/components/game/panels/info/InfoPanelContainer.vue @@ -0,0 +1,232 @@ + + + + + + diff --git a/web/src/components/game/panels/info/RegionDetail.vue b/web/src/components/game/panels/info/RegionDetail.vue new file mode 100644 index 0000000..0b917e4 --- /dev/null +++ b/web/src/components/game/panels/info/RegionDetail.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/web/src/components/game/panels/info/components/EntityRow.vue b/web/src/components/game/panels/info/components/EntityRow.vue new file mode 100644 index 0000000..f48cc94 --- /dev/null +++ b/web/src/components/game/panels/info/components/EntityRow.vue @@ -0,0 +1,56 @@ + + + + + + diff --git a/web/src/components/game/panels/info/components/SecondaryPopup.vue b/web/src/components/game/panels/info/components/SecondaryPopup.vue new file mode 100644 index 0000000..dee5345 --- /dev/null +++ b/web/src/components/game/panels/info/components/SecondaryPopup.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/web/src/components/game/panels/info/components/StatItem.vue b/web/src/components/game/panels/info/components/StatItem.vue new file mode 100644 index 0000000..773c97b --- /dev/null +++ b/web/src/components/game/panels/info/components/StatItem.vue @@ -0,0 +1,71 @@ + + + + + + diff --git a/web/src/components/game/panels/info/components/TagList.vue b/web/src/components/game/panels/info/components/TagList.vue new file mode 100644 index 0000000..6edc4e1 --- /dev/null +++ b/web/src/components/game/panels/info/components/TagList.vue @@ -0,0 +1,52 @@ + + + + + + diff --git a/web/src/components/layout/StatusBar.vue b/web/src/components/layout/StatusBar.vue index c9cd110..2ee0c7c 100644 --- a/web/src/components/layout/StatusBar.vue +++ b/web/src/components/layout/StatusBar.vue @@ -1,14 +1,30 @@