diff --git a/EN_README.md b/EN_README.md index 81ed5f2..b272dbc 100644 --- a/EN_README.md +++ b/EN_README.md @@ -106,6 +106,7 @@ You can also join the QQ group for discussion: 1071821688. Verification answer i - ✅ Flexible custom LLM interface - ✅ Support macOS - [ ] Support multi-language localization +- [ ] Game settings panel at startup ### 🗺️ World System - ✅ Basic tile mechanics @@ -204,8 +205,7 @@ You can also join the QQ group for discussion: 1071821688. Verification answer i ### 🏛️ World Lore - ✅ Inject basic world knowledge -- [ ] Dynamic worldview generation -- [ ] Dynamic generation of techniques, equipment, sects, and maps based on user input history +- ✅ User input history, dynamic generation of techniques, equipment, sects, and region info ### Specials - ✅ Fortuitous encounters @@ -221,7 +221,6 @@ You can also join the QQ group for discussion: 1071821688. Verification answer i - [ ] World Secrets & World Laws (Flexible customization) - [ ] Gu Refining - [ ] World-ending Crisis -- [ ] Become a Legend of Later Ages ### 🔭 Long-term - [ ] Novelization/imagery/video for history and events diff --git a/README.md b/README.md index b4fc162..d9b9a95 100644 --- a/README.md +++ b/README.md @@ -216,8 +216,7 @@ ### 🏛️ 世界背景系统 - ✅ 注入基础世界知识 -- [ ] 动态世界观生成 -- [ ] 基于用户输入历史的动态功法、装备、宗门、地图生成 +- ✅ 用户输入历史,动态生成功法、装备、宗门、区域信息 ### 特殊 - ✅ 奇遇 diff --git a/src/classes/history.py b/src/classes/history.py index aab6b00..e4c969f 100644 --- a/src/classes/history.py +++ b/src/classes/history.py @@ -35,6 +35,7 @@ class HistoryManager: "city_regions": self._read_csv("city_region.csv"), "normal_regions": self._read_csv("normal_region.csv"), "cultivate_regions": self._read_csv("cultivate_region.csv"), + "sect_regions": self._read_csv("sect_region.csv"), "techniques": self._read_csv("technique.csv"), "weapons": self._read_csv("weapon.csv"), "auxiliarys": self._read_csv("auxiliary.csv"), @@ -78,6 +79,7 @@ class HistoryManager: self._update_regions(result.get("city_regions_change", {})) self._update_regions(result.get("normal_regions_change", {})) self._update_regions(result.get("cultivate_regions_change", {})) + self._update_regions(result.get("sect_regions_change", {})) # 3.2 功法变更 self._update_techniques(result.get("techniques_change", {})) diff --git a/static/templates/history_influence.txt b/static/templates/history_influence.txt index 1e7ccf3..49c9382 100644 --- a/static/templates/history_influence.txt +++ b/static/templates/history_influence.txt @@ -16,6 +16,9 @@ 修炼区域信息: {cultivate_regions} +宗门区域信息: +{sect_regions} + 功法信息: {techniques} @@ -39,6 +42,7 @@ }}, "normal_regions_change": {{}} // dict, 结构同上 "cultivate_regions_change": {{}} // dict, 结构同上 + "sect_regions_change": {{}} // dict, 结构同上 "techniques_change": {{}} // dict, 结构同上 "weapons_change": {{}} // dict, 结构同上 "auxiliarys_change": {{}} // dict, 结构同上 diff --git a/tests/test_action_gift.py b/tests/test_action_gift.py index 841b8a4..b593a4b 100644 --- a/tests/test_action_gift.py +++ b/tests/test_action_gift.py @@ -31,7 +31,7 @@ def target_avatar(base_world): def gift_action(dummy_avatar, base_world): """初始化 Gift 动作""" # 模拟 _call_llm_feedback,避免 step 中调用 asyncio.get_running_loop() - with patch.object(Gift, '_call_llm_feedback') as mock_llm: + with patch.object(Gift, '_call_llm_feedback', new_callable=MagicMock) as mock_llm: # 返回一个 mock task,确保 task.done() 初始为 False, # 但在这里我们主要是为了让 step 不报错 mock_llm.return_value = {} diff --git a/web/src/api/index.ts b/web/src/api/index.ts index a03f31c..2412c20 100644 --- a/web/src/api/index.ts +++ b/web/src/api/index.ts @@ -5,5 +5,7 @@ export { systemApi } from './modules/system'; export { llmApi } from './modules/llm'; export { eventApi } from './modules/event'; +export type { InitStatusDTO } from '../types/api'; + // 保持向后兼容的聚合对象 (Optional, for transition) // 但这次我们直接重构,不再保留大对象,鼓励按需引用 diff --git a/web/src/components/LoadingOverlay.vue b/web/src/components/LoadingOverlay.vue index b5d2b5c..3d1b380 100644 --- a/web/src/components/LoadingOverlay.vue +++ b/web/src/components/LoadingOverlay.vue @@ -55,7 +55,7 @@ const tips = [ '丹药有生效的时间限制', '由于大模型需要思考,游戏启动可能耗时较久', '模拟世界对大模型token消耗较大,请注意', - '设定开局历史,世界也会随之而改变', + '开局时设定历史,整个修仙世界也会随之而改变', ] const currentTip = ref(tips[Math.floor(Math.random() * tips.length)])