chore:ui
This commit is contained in:
@@ -47,8 +47,25 @@ src/
|
||||
|
||||
## Data Architecture (全部可 Mod 覆盖)
|
||||
所有游戏数据通过 `DataRegistry` 统一加载和管理。Mod 可覆盖任何数据类型:
|
||||
- **DataRegistry**: 中央数据注册表,加载 JSON 文件,监听 `mod:dataResolved` 事件
|
||||
- **数据类型**: items, weapons, armor, enemies, quests, races, skills, perks, standingStones, spells, recipes
|
||||
- **DataRegistry**: 中央数据注册表,加载 24 个 JSON 文件,监听 `mod:dataResolved` 事件
|
||||
- **19 个数据域**: items, armor, enemies, races, skills, perkTrees, spells, shouts, standingStones, quests, recipes, enchantments, soulGems, smithing, cooking, dialogue, transforms, vampireStages, gameConfig
|
||||
- **JSON 数据文件** (24 个):
|
||||
- `src/data/items/` — items.json, weapons.json, armor.json, enchantments.json, soul-gems.json
|
||||
- `src/data/spells/` — spells.json, shouts.json
|
||||
- `src/data/enemies/` — enemies.json
|
||||
- `src/data/quests/` — quests.json
|
||||
- `src/data/races/` — races.json
|
||||
- `src/data/skills/` — skills.json, perks.json, werewolf-perks.json, vampire-perks.json
|
||||
- `src/data/world/` — standing-stones.json
|
||||
- `src/data/alchemy/` — ingredients.json, potions.json
|
||||
- `src/data/crafting/` — smithing.json, cooking.json
|
||||
- `src/data/dialogue/` — trees.json
|
||||
- `src/data/transforms.json`, `vampire-stages.json`, `game-config.json`
|
||||
- **系统数据驱动化**: 11 个游戏系统全部从 DataRegistry 读取数据,不再硬编码:
|
||||
- MagicSystem, CombatSystem, LevelingSystem, RegenSystem
|
||||
- EnchantingSystem, SmithingSystem, AlchemySystem, CookingSystem
|
||||
- TransformationSystem, VampireSystem, DialogueSystem
|
||||
- **循环依赖解决**: CombatSystem/MagicSystem/QuestSystem/DialogueSystem 通过 `globalThis` 注册,ScriptContext lazy 访问
|
||||
- **地图数据**: 由 MapManager 从 `zones.json` 加载,支持 Mod 覆盖
|
||||
- **UI 组件**: CharacterCreationUI/SkillTreeUI 从 DataRegistry 读取数据,不再直接导入 JSON
|
||||
|
||||
@@ -211,11 +228,14 @@ src/
|
||||
- **高级系统**: 狼人变形 + 吸血鬼感染 + 传奇技能
|
||||
|
||||
## Mod 生态
|
||||
- Mod 格式: JSON 数据文件 + manifest.json 清单
|
||||
- 加载方式: 深度合并,后加载覆盖先加载
|
||||
- 事件钩子: GameEvents.on('event:name', callback)
|
||||
- Mod 格式: `ModPackage` (manifest + data + scripts),通过 `modLoader.loadMod()` 加载
|
||||
- 加载方式: 深度合并,按 priority 排序后加载,后加载覆盖先加载
|
||||
- 依赖检查: `manifest.dependencies` 声明前置依赖,未满足则拒绝加载
|
||||
- 冲突检测: 同域同 ID 多个 Mod 声明冲突,最后一个赢
|
||||
- 事件钩子: `mod:loaded`, `mod:dataResolved` 事件
|
||||
- Mod 管理器: 启用/禁用/排序/冲突检测
|
||||
- **全部数据可覆盖**: 所有游戏数据 (物品/武器/护甲/敌人/任务/种族/技能/天赋/站立之石/法术/配方/地图) 均通过 DataRegistry 或 MapManager 加载,Mod 可覆盖任何数据
|
||||
- **19 个数据域全部可覆盖**: items, armor, enemies, races, skills, perkTrees, spells, shouts, standingStones, quests, recipes, enchantments, soulGems, smithing, cooking, dialogue, transforms, vampireStages, gameConfig
|
||||
- **E2E 测试验证**: `src/mods/ModE2E.test.ts` — 10 个测试覆盖数据覆盖、新数据添加、优先级排序、依赖检查、系统热重载
|
||||
|
||||
## Mod 脚本系统
|
||||
Mod 可为游戏实体附加自定义脚本逻辑,与原版上古卷轴的脚本系统一致。
|
||||
|
||||
Reference in New Issue
Block a user