refactor history archi

This commit is contained in:
bridge
2026-01-12 00:36:10 +08:00
parent 287f9d2ae4
commit 2caa5586be
7 changed files with 13 additions and 7 deletions

View File

@@ -106,6 +106,7 @@ You can also join the QQ group for discussion: 1071821688. Verification answer i
- ✅ Flexible custom LLM interface - ✅ Flexible custom LLM interface
- ✅ Support macOS - ✅ Support macOS
- [ ] Support multi-language localization - [ ] Support multi-language localization
- [ ] Game settings panel at startup
### 🗺️ World System ### 🗺️ World System
- ✅ Basic tile mechanics - ✅ Basic tile mechanics
@@ -204,8 +205,7 @@ You can also join the QQ group for discussion: 1071821688. Verification answer i
### 🏛️ World Lore ### 🏛️ World Lore
- ✅ Inject basic world knowledge - ✅ Inject basic world knowledge
- [ ] Dynamic worldview generation - ✅ User input history, dynamic generation of techniques, equipment, sects, and region info
- [ ] Dynamic generation of techniques, equipment, sects, and maps based on user input history
### Specials ### Specials
- ✅ Fortuitous encounters - ✅ 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) - [ ] World Secrets & World Laws (Flexible customization)
- [ ] Gu Refining - [ ] Gu Refining
- [ ] World-ending Crisis - [ ] World-ending Crisis
- [ ] Become a Legend of Later Ages
### 🔭 Long-term ### 🔭 Long-term
- [ ] Novelization/imagery/video for history and events - [ ] Novelization/imagery/video for history and events

View File

@@ -216,8 +216,7 @@
### 🏛️ 世界背景系统 ### 🏛️ 世界背景系统
- ✅ 注入基础世界知识 - ✅ 注入基础世界知识
- [ ] 动态世界观生成 - ✅ 用户输入历史,动态生成功法、装备、宗门、区域信息
- [ ] 基于用户输入历史的动态功法、装备、宗门、地图生成
### 特殊 ### 特殊
- ✅ 奇遇 - ✅ 奇遇

View File

@@ -35,6 +35,7 @@ class HistoryManager:
"city_regions": self._read_csv("city_region.csv"), "city_regions": self._read_csv("city_region.csv"),
"normal_regions": self._read_csv("normal_region.csv"), "normal_regions": self._read_csv("normal_region.csv"),
"cultivate_regions": self._read_csv("cultivate_region.csv"), "cultivate_regions": self._read_csv("cultivate_region.csv"),
"sect_regions": self._read_csv("sect_region.csv"),
"techniques": self._read_csv("technique.csv"), "techniques": self._read_csv("technique.csv"),
"weapons": self._read_csv("weapon.csv"), "weapons": self._read_csv("weapon.csv"),
"auxiliarys": self._read_csv("auxiliary.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("city_regions_change", {}))
self._update_regions(result.get("normal_regions_change", {})) self._update_regions(result.get("normal_regions_change", {}))
self._update_regions(result.get("cultivate_regions_change", {})) self._update_regions(result.get("cultivate_regions_change", {}))
self._update_regions(result.get("sect_regions_change", {}))
# 3.2 功法变更 # 3.2 功法变更
self._update_techniques(result.get("techniques_change", {})) self._update_techniques(result.get("techniques_change", {}))

View File

@@ -16,6 +16,9 @@
修炼区域信息: 修炼区域信息:
{cultivate_regions} {cultivate_regions}
宗门区域信息:
{sect_regions}
功法信息: 功法信息:
{techniques} {techniques}
@@ -39,6 +42,7 @@
}}, }},
"normal_regions_change": {{}} // dict, 结构同上 "normal_regions_change": {{}} // dict, 结构同上
"cultivate_regions_change": {{}} // dict, 结构同上 "cultivate_regions_change": {{}} // dict, 结构同上
"sect_regions_change": {{}} // dict, 结构同上
"techniques_change": {{}} // dict, 结构同上 "techniques_change": {{}} // dict, 结构同上
"weapons_change": {{}} // dict, 结构同上 "weapons_change": {{}} // dict, 结构同上
"auxiliarys_change": {{}} // dict, 结构同上 "auxiliarys_change": {{}} // dict, 结构同上

View File

@@ -31,7 +31,7 @@ def target_avatar(base_world):
def gift_action(dummy_avatar, base_world): def gift_action(dummy_avatar, base_world):
"""初始化 Gift 动作""" """初始化 Gift 动作"""
# 模拟 _call_llm_feedback避免 step 中调用 asyncio.get_running_loop() # 模拟 _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 # 返回一个 mock task确保 task.done() 初始为 False
# 但在这里我们主要是为了让 step 不报错 # 但在这里我们主要是为了让 step 不报错
mock_llm.return_value = {} mock_llm.return_value = {}

View File

@@ -5,5 +5,7 @@ export { systemApi } from './modules/system';
export { llmApi } from './modules/llm'; export { llmApi } from './modules/llm';
export { eventApi } from './modules/event'; export { eventApi } from './modules/event';
export type { InitStatusDTO } from '../types/api';
// 保持向后兼容的聚合对象 (Optional, for transition) // 保持向后兼容的聚合对象 (Optional, for transition)
// 但这次我们直接重构,不再保留大对象,鼓励按需引用 // 但这次我们直接重构,不再保留大对象,鼓励按需引用

View File

@@ -55,7 +55,7 @@ const tips = [
'丹药有生效的时间限制', '丹药有生效的时间限制',
'由于大模型需要思考,游戏启动可能耗时较久', '由于大模型需要思考,游戏启动可能耗时较久',
'模拟世界对大模型token消耗较大请注意', '模拟世界对大模型token消耗较大请注意',
'设定开局历史,世界也会随之而改变', '开局时设定历史,整个修仙世界也会随之而改变',
] ]
const currentTip = ref(tips[Math.floor(Math.random() * tips.length)]) const currentTip = ref(tips[Math.floor(Math.random() * tips.length)])