diff --git a/assets/script/Design.md b/assets/script/Design.md new file mode 100644 index 00000000..d4729caf --- /dev/null +++ b/assets/script/Design.md @@ -0,0 +1,367 @@ +# 英雄等级成长系统设计文档 + +## 概述 +本文档总结了游戏中英雄等级成长系统的设计,包括经验值计算、属性增长机制和英雄类型分类。 + +## 英雄类型分类 + +### 基础类型 (HType) +- **战士 (warrior = 0)**: 近战物理输出,高生存能力 +- **远程 (remote = 1)**: 远程物理输出,中等生存能力 +- **法师 (mage = 2)**: 魔法输出,低生存能力但高伤害 + +### 元素类型 (HeroKind) +- **烈焰 (fire = 1)**: 攻击带击退效果 +- **寒冰 (water = 2)**: 攻击带速度效果 +- **自然 (nature = 3)**: 攻击偷取生命 +- **暗影 (shadow = 4)**: 攻击偷取攻击 +- **神圣 (holy = 5)**: 攻击带2倍伤害 + +## 经验值系统 + +### 经验值计算公式 +- **基础经验值**: 100 +- **递增值规律**: 每级递增10,且递增值本身也会递增 +- **公式**: 基础经验值 + 递增值累加 +- **递增值规律**: 第1级递增值=10,第2级递增值=20,第3级递增值=30... + +### 升级经验示例 +- 1级→2级: 100经验 +- 2级→3级: 110经验 +- 3级→4级: 120经验 +- 4级→5级: 130经验 +- 以此类推... + +## 属性增长机制 + +### 攻击力增长 (AP Growth) +根据英雄类型采用不同的增长模式: + +| 英雄类型 | 增长公式 | 说明 | +|---------|---------|------| +| 战士 | `Math.floor(baseAp * 0.05) + 3` | 固定增长为主(每级+3,+5%) | +| 远程 | `Math.floor(baseAp * 0.10) + 2` | 平衡增长(每级+2,+10%) | +| 法师 | `Math.floor(baseAp * 0.15) + 1` | 百分比增长为主(每级+1,+15%) | + +### 生命值增长 (HP Growth) +根据英雄类型采用不同的增长模式: + +| 英雄类型 | 增长公式 | 说明 | +|---------|---------|------| +| 战士 | `Math.floor(baseHp * 0.08) + 10` | 高增长(每级+10,+8%) | +| 远程 | `Math.floor(baseHp * 0.05) + 5` | 中等增长(每级+5,+5%) | +| 法师 | `Math.floor(baseHp * 0.03) + 3` | 低增长(每级+3,+3%) | + +## 英雄成长特点分析 + +### 战士型英雄 +- **特点**: 高生存能力,稳定输出 +- **AP增长**: 固定增长为主,适合持续战斗 +- **HP增长**: 高增长,提供优秀的生存能力 +- **适用场景**: 前排坦克,持续输出 + +### 远程型英雄 +- **特点**: 平衡型输出,中等生存能力 +- **AP增长**: 平衡增长,既有固定加成又有百分比提升 +- **HP增长**: 中等增长,提供基本生存能力 +- **适用场景**: 后排输出,灵活战斗 + +### 法师型英雄 +- **特点**: 高伤害输出,低生存能力 +- **AP增长**: 百分比增长为主,后期伤害爆发 +- **HP增长**: 低增长,需要保护 +- **适用场景**: 后排爆发输出,需要团队保护 + +## 核心函数说明 + +### 经验值相关函数 +- `getUpExp(currentLevel)`: 获取指定等级升级所需经验 +- `getTotalUpExp(currentLevel, targetLevel)`: 获取从当前等级升级到目标等级所需总经验 + +### 属性增长相关函数 +- `getUpAp(heroId)`: 获取英雄升级增加的攻击力 +- `getUpHp(heroId)`: 获取英雄升级增加的生命值 +- `getHeroTotalAp(heroId, level)`: 获取英雄在指定等级的总攻击力 +- `getHeroTotalHp(heroId, level)`: 获取英雄在指定等级的总生命值 +- `getLevelUpStats(heroId, currentLevel, targetLevel)`: 获取升级后的完整属性信息 + +## 初始怪物配置分析 + +### 英雄基础属性分析 + +#### 主将英雄 (5001-5007) +- **HP**: 50 (所有主将) +- **AP**: 10 (所有主将) +- **攻击距离**: 700 +- **冷却时间**: 1.5秒 +- **移动速度**: 50 + +#### 伙伴英雄 (5021-5028) +- **HP**: 50 (所有伙伴) +- **AP**: 10-15 (大部分10,远程15) +- **攻击距离**: 700 +- **冷却时间**: 1.5秒 +- **移动速度**: 50 + +### 当前怪物配置分析 + +#### 普通怪物 (5201-5206, 5219-5224) +- **HP**: 200 (是英雄的4倍) +- **AP**: 5 (是英雄的1/2-1/3) +- **攻击距离**: 250 (比英雄短很多) +- **冷却时间**: 1.5秒 +- **移动速度**: 50 + +#### 精英怪物 (5225-5227) +- **HP**: 200 +- **AP**: 5 +- **攻击距离**: 250 +- **冷却时间**: 1.5秒 +- **移动速度**: 50 + +### 初始怪物配置建议 + +**重要前提**: 初始英雄只有一个人,需要在3次攻击内击杀普通怪物 + +#### 计算分析 +- **英雄AP**: 10 +- **3次攻击总伤害**: 10 × 3 = 30 +- **怪物HP上限**: 30 (确保3次攻击击杀) + +#### 1. 普通怪物 (5201-5206) - 重新配置 +```typescript +// 兽人战士、兽人刺客、兽人护卫、石卫、土卫、树人 +{ + hp: 25, // 降低到英雄的0.5倍,确保3次攻击击杀 (10×3=30) + ap: 8, // 提升到英雄的80% (原5) + dis: 300, // 提升攻击距离 (原250) + cd: 1.5, // 保持不变 + speed: 45 // 稍微降低移动速度 (原50) +} +``` + +#### 2. 远程怪物 (5203, 5220, 5224) - 重新配置 +```typescript +// 兽人护卫、牛头战士(远程)、独眼巨人(远程) +{ + hp: 20, // 降低到英雄的0.4倍,确保3次攻击击杀 + ap: 12, // 提升到英雄的120% + dis: 500, // 提升远程攻击距离 + cd: 1.5, // 保持不变 + speed: 50 // 保持移动速度 +} +``` + +#### 3. 法师怪物 (5216-5218, 5225-5227) - 重新配置 +```typescript +// 元素1-3、精英独眼、精英牛头、精英兽人 +{ + hp: 18, // 降低到英雄的0.36倍,确保3次攻击击杀 + ap: 15, // 提升到英雄的150% + dis: 600, // 提升法师攻击距离 + cd: 1.2, // 降低冷却时间 + speed: 40 // 降低移动速度 +} +``` + +### 平衡性考虑 + +#### 战斗时长控制 +- **目标**: 英雄3次攻击击杀普通怪物 +- **普通怪物**: 25HP ÷ 10AP = 2.5次攻击 (3次内击杀) +- **远程怪物**: 20HP ÷ 10AP = 2次攻击 (3次内击杀) +- **法师怪物**: 18HP ÷ 10AP = 1.8次攻击 (3次内击杀) + +#### 伤害输出平衡 +- **英雄**: AP 10,3次攻击总伤害 30 +- **普通怪物**: AP 8,对英雄威胁适中 +- **远程怪物**: AP 12,对英雄威胁较高 +- **法师怪物**: AP 15,对英雄威胁最高 + +#### 生存压力分析 +- **英雄HP**: 50 +- **普通怪物**: 需要6.25次攻击击杀英雄 (50÷8) +- **远程怪物**: 需要4.17次攻击击杀英雄 (50÷12) +- **法师怪物**: 需要3.33次攻击击杀英雄 (50÷15) + +### 配置调整原则 + +1. **HP配置**: 怪物HP ≤ 英雄AP × 3,确保3次攻击击杀 +2. **AP配置**: 怪物AP = 英雄AP × (0.8-1.5倍),提供适当威胁 +3. **攻击距离**: 远程怪物 > 法师怪物 > 战士怪物 +4. **移动速度**: 战士怪物 > 远程怪物 > 法师怪物 +5. **冷却时间**: 法师怪物 < 其他类型,体现爆发特性 + +### 难度递进设计 + +#### 第一波怪物 (推荐) +- **普通怪物**: HP 25, AP 8 +- **特点**: 基础威胁,适合新手熟悉战斗机制 + +#### 第二波怪物 (推荐) +- **远程怪物**: HP 20, AP 12 +- **特点**: 增加攻击距离威胁,需要战术考虑 + +#### 第三波怪物 (推荐) +- **法师怪物**: HP 18, AP 15 +- **特点**: 高伤害但脆弱,需要优先击杀 + +### 注意事项 + +- 所有怪物HP都确保在英雄3次攻击内击杀 +- 怪物AP根据类型递增,提供递进式挑战 +- 保持攻击距离和移动速度的差异化 +- 为后续多人团队战斗预留调整空间 + +## 怪物经验值系统设计 + +### 经验值设置原则 + +#### 1. 基于怪物威胁度设置 +- **普通怪物**: 基础经验值,适合新手 +- **远程怪物**: 中等经验值,提供战术挑战 +- **法师怪物**: 高经验值,高风险高回报 + +#### 2. 基于英雄升级需求 +- **英雄升级经验**: 1级→2级需要100经验 +- **怪物经验分配**: 确保合理的升级节奏 + +### 推荐经验值配置 + +#### 1. 普通怪物 (战士型) - 推荐经验值 +```typescript +// 兽人战士、兽人刺客、石卫、土卫、树人、牛头战士、独眼巨人 +{ + exp: 15, // 基础经验值 + reason: "普通怪物,基础威胁,适合新手" +} +``` + +#### 2. 远程怪物 - 推荐经验值 +```typescript +// 兽人护卫、牛头战士(远程)、独眼巨人(远程) +{ + exp: 25, // 中等经验值 + reason: "远程威胁,需要战术考虑" +} +``` + +#### 3. 法师怪物 - 推荐经验值 +```typescript +// 元素1-3、精英独眼、精英牛头、精英兽人 +{ + exp: 35, // 高经验值 + reason: "高伤害但脆弱,高风险高回报" +} +``` + +### 升级节奏分析 + +#### 单人英雄升级路径 +- **1级→2级**: 需要100经验 +- **击杀普通怪物**: 需要7只 (100÷15≈6.67) +- **击杀远程怪物**: 需要4只 (100÷25=4) +- **击杀法师怪物**: 需要3只 (100÷35≈2.86) + +#### 混合怪物组合升级 +- **2只普通 + 2只远程**: 15×2 + 25×2 = 80经验 +- **1只普通 + 1只远程 + 2只法师**: 15 + 25 + 35×2 = 110经验 +- **3只法师**: 35×3 = 105经验 + +### 经验值平衡考虑 + +#### 1. 战斗时长与经验值平衡 +- **普通怪物**: 3次攻击击杀,15经验 +- **远程怪物**: 2次攻击击杀,25经验 +- **法师怪物**: 1.8次攻击击杀,35经验 +- **效率比**: 法师怪物 > 远程怪物 > 普通怪物 + +#### 2. 风险与回报平衡 +- **普通怪物**: 低风险,低回报 +- **远程怪物**: 中等风险,中等回报 +- **法师怪物**: 高风险,高回报 + +#### 3. 新手友好性 +- **第一波**: 普通怪物,让新手熟悉机制 +- **第二波**: 远程怪物,引入战术考虑 +- **第三波**: 法师怪物,提供高经验奖励 + +### 经验值计算公式建议 + +#### 基础公式 +```typescript +// 基于怪物类型和等级的经验值计算 +const getMonsterExp = (monsterType: HType, level: number = 1): number => { + const baseExp = { + [HType.warrior]: 15, // 普通怪物 + [HType.remote]: 25, // 远程怪物 + [HType.mage]: 35 // 法师怪物 + }; + + return baseExp[monsterType] * level; +}; +``` + +#### 等级递增公式 +```typescript +// 高等级怪物经验值递增 +const getLeveledMonsterExp = (baseExp: number, level: number): number => { + if (level <= 1) return baseExp; + return Math.floor(baseExp * (1 + (level - 1) * 0.5)); +}; +``` + +### 经验值配置示例 + +#### 1级怪物经验值 +| 怪物类型 | 基础经验值 | 说明 | +|---------|-----------|------| +| 普通怪物 | 15 | 基础威胁,适合新手 | +| 远程怪物 | 25 | 中等威胁,需要战术 | +| 法师怪物 | 35 | 高威胁,高风险高回报 | + +#### 2级怪物经验值 (等级递增) +| 怪物类型 | 2级经验值 | 说明 | +|---------|-----------|------| +| 普通怪物 | 22 | 15 × 1.5 | +| 远程怪物 | 37 | 25 × 1.5 | +| 法师怪物 | 52 | 35 × 1.5 | + +### 实现建议 + +#### 1. 在怪物配置中添加经验值字段 +```typescript +// 在HeroInfo中添加exp字段 +5201: { + uuid: 5201, + name: "兽人战士", + // ... 其他属性 + exp: 15, // 新增经验值字段 + info: "普通怪物-战士型" +} +``` + +#### 2. 经验值获取函数 +```typescript +// 获取怪物经验值 +export const getMonsterExp = (monsterId: number): number => { + const monsterInfo = HeroInfo[monsterId]; + return monsterInfo?.exp || 10; // 默认10经验 +}; +``` + +#### 3. 升级检查函数 +```typescript +// 检查英雄是否可以升级 +export const checkLevelUp = (currentExp: number, currentLevel: number): boolean => { + const requiredExp = getUpExp(currentLevel); + return currentExp >= requiredExp; +}; +``` + +### 注意事项 + +- 经验值设置要考虑游戏节奏,避免升级过快或过慢 +- 不同类型怪物提供不同的经验值,增加战术选择 +- 为后续多人团队和高级怪物预留经验值空间 +- 经验值要与怪物的威胁度和击杀难度成正比 diff --git a/assets/script/Design.md.meta b/assets/script/Design.md.meta new file mode 100644 index 00000000..259c1262 --- /dev/null +++ b/assets/script/Design.md.meta @@ -0,0 +1,11 @@ +{ + "ver": "1.0.2", + "importer": "text", + "imported": true, + "uuid": "ecad0109-344e-47b2-aaa9-ee5902b9b016", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/assets/script/game/common/config/heroSet.ts b/assets/script/game/common/config/heroSet.ts index bd5450d1..32a0e70f 100644 --- a/assets/script/game/common/config/heroSet.ts +++ b/assets/script/game/common/config/heroSet.ts @@ -5,21 +5,21 @@ import { BuffAttr } from "./SkillSet" /** * kind :1:烈焰 2:寒冰 3:自然 4:暗影 5:神圣 **/ -export enum HeroKind { -/** -* 词条解释: -* 烈焰:攻击带击退效果 -* 寒冰:攻击带速度效果 -* 自然:攻击偷取生命 -* 暗影:攻击偷取攻击 -* 神圣:攻击带2倍伤害 -* */ - fire = 1, - water = 2, - nature = 3, - shadow = 4, - holy = 5, -} +// export enum HeroKind { +// /** +// * 词条解释: +// * 烈焰:攻击带击退效果 +// * 寒冰:攻击带速度效果 +// * 自然:攻击偷取生命 +// * 暗影:攻击偷取攻击 +// * 神圣:攻击带2倍伤害 +// * */ +// fire = 1, +// water = 2, +// nature = 3, +// shadow = 4, +// holy = 5, +// } /** * 词条解释: * 0:战士 1:远程 2:法师 @@ -321,112 +321,112 @@ export const HeroInfo = { //怪物 5201:{uuid:5201,name:"兽人战士",path:"mor1", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.warrior,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"普通怪物-战士型"}, 5202:{uuid:5202,name:"兽人刺客",path:"mor2", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.warrior,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"普通怪物-战士型"}, 5203:{uuid:5203,name:"兽人护卫",path:"mor3", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.remote,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.remote,hp:20,ap:12,dis:500,cd:1.5,speed:50,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"远程怪物-高伤害"}, 5204:{uuid:5204,name:"石卫", path:"mgem1",quality:HQuality.BLUE,lv:1,kind:1, - type:HType.warrior,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"普通怪物-战士型"}, 5205:{uuid:5205,name:"土卫", path:"mgem2",quality:HQuality.BLUE,lv:1,kind:1, - type:HType.warrior,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"普通怪物-战士型"}, 5206:{uuid:5206,name:"树人", path:"mgem3",quality:HQuality.BLUE,lv:1,kind:1, - type:HType.warrior,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"普通怪物-战士型"}, 5216:{uuid:5216,name:"元素1", path:"my1", quality:HQuality.BLUE,lv:2,kind:1, - type:HType.mage,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"法师怪物-高伤害脆弱"}, 5217:{uuid:5217,name:"元素2", path:"my2", quality:HQuality.BLUE,lv:2,kind:1, - type:HType.mage,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"法师怪物-高伤害脆弱"}, 5218:{uuid:5218,name:"元素3", path:"my3", quality:HQuality.BLUE,lv:2,kind:1, - type:HType.mage,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"法师怪物-高伤害脆弱"}, 5219:{uuid:5219,name:"牛头战士",path:"mn1", quality:HQuality.BLUE,lv:2,kind:1, - type:HType.warrior,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"普通怪物-战士型"}, 5220:{uuid:5220,name:"牛头战士",path:"mn2", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.remote,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.remote,hp:20,ap:12,dis:500,cd:1.5,speed:50,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"远程怪物-高伤害"}, 5221:{uuid:5221,name:"牛头战士",path:"mn3", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.warrior,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"普通怪物-战士型"}, 5222:{uuid:5222,name:"独眼巨人",path:"md1", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.warrior,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"普通怪物-战士型"}, 5223:{uuid:5223,name:"独眼巨人",path:"md2", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.warrior,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"普通怪物-战士型"}, 5224:{uuid:5224,name:"独眼巨人",path:"md3", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.remote,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.remote,hp:20,ap:12,dis:500,cd:1.5,speed:50,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"远程怪物-高伤害"}, 5225:{uuid:5225,name:"精英独眼",path:"md4", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.mage,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"法师怪物-高伤害脆弱"}, 5226:{uuid:5226,name:"精英牛头",path:"mn4", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.mage,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007], buff:[ - ],info:"说明"}, + ],info:"法师怪物-高伤害脆弱"}, 5227:{uuid:5227,name:"精英兽人",path:"mor4", quality:HQuality.BLUE,lv:1,kind:1, - type:HType.mage,hp:200,ap:5,dis:250,cd:1.5,speed:50,skills:[6007], + type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007], buff:[ - ],info:"说明"} + ],info:"法师怪物-高伤害脆弱"} }; diff --git a/assets/script/game/hero/Hero.ts b/assets/script/game/hero/Hero.ts index 024e5b22..078dd744 100644 --- a/assets/script/game/hero/Hero.ts +++ b/assets/script/game/hero/Hero.ts @@ -143,7 +143,7 @@ export class Hero extends ecs.Entity { hv.stun_ratto=buff.value break case BuffAttr.FROST_RATIO: - hv.frost_ratio=buff.value + hv.frost_ratto=buff.value break case BuffAttr.FROST_TIME: hv.frost_time=buff.value diff --git a/assets/script/todo.md b/assets/script/todo.md index 0e7ed5e6..50b42e42 100644 --- a/assets/script/todo.md +++ b/assets/script/todo.md @@ -103,7 +103,6 @@ buff 主要靠装备,临时buff尽量减少 锤:低攻速+暴击+爆伤 +紫武4,5击晕 剑:高攻速+穿刺+穿刺伤害 斧头:低攻速+风怒+紫武4,5击退 -修改 刀剑 各增加一把 带冰冻的紫武 锤 斧头 各增加一个 带击晕的紫武, \ No newline at end of file diff --git a/assets/wp.md b/assets/script/wp.md similarity index 100% rename from assets/wp.md rename to assets/script/wp.md diff --git a/assets/wp.md.meta b/assets/script/wp.md.meta similarity index 72% rename from assets/wp.md.meta rename to assets/script/wp.md.meta index f09a7e85..69ca14f4 100644 --- a/assets/wp.md.meta +++ b/assets/script/wp.md.meta @@ -2,7 +2,7 @@ "ver": "1.0.2", "importer": "text", "imported": true, - "uuid": "f06ae1d1-368a-4066-88fa-3affd08d53f4", + "uuid": "a34c8fe6-ba55-4bcb-b918-14c046cd5ef2", "files": [ ".json" ],