dd
This commit is contained in:
@@ -10,358 +10,205 @@
|
|||||||
- **远程 (remote = 1)**: 远程物理输出,中等生存能力
|
- **远程 (remote = 1)**: 远程物理输出,中等生存能力
|
||||||
- **法师 (mage = 2)**: 魔法输出,低生存能力但高伤害
|
- **法师 (mage = 2)**: 魔法输出,低生存能力但高伤害
|
||||||
|
|
||||||
### 元素类型 (HeroKind)
|
|
||||||
- **烈焰 (fire = 1)**: 攻击带击退效果
|
|
||||||
- **寒冰 (water = 2)**: 攻击带速度效果
|
|
||||||
- **自然 (nature = 3)**: 攻击偷取生命
|
|
||||||
- **暗影 (shadow = 4)**: 攻击偷取攻击
|
|
||||||
- **神圣 (holy = 5)**: 攻击带2倍伤害
|
|
||||||
|
|
||||||
## 经验值系统
|
## 经验值系统
|
||||||
|
|
||||||
### 经验值计算公式
|
### 升级经验计算
|
||||||
- **基础经验值**: 100
|
- **基础经验值**: 100
|
||||||
- **递增值规律**: 每级递增10,且递增值本身也会递增
|
- **递增规律**: 每级递增10,且递增值本身也会递增
|
||||||
- **公式**: 基础经验值 + 递增值累加
|
- **公式**: 基础经验值 + 递增值累加
|
||||||
- **递增值规律**: 第1级递增值=10,第2级递增值=20,第3级递增值=30...
|
|
||||||
|
|
||||||
### 升级经验示例
|
### 升级经验示例
|
||||||
- 1级→2级: 100经验
|
- 1级→2级: 100经验
|
||||||
- 2级→3级: 110经验
|
- 2级→3级: 110经验
|
||||||
- 3级→4级: 120经验
|
- 3级→4级: 120经验
|
||||||
- 4级→5级: 130经验
|
- 4级→5级: 130经验
|
||||||
- 以此类推...
|
|
||||||
|
|
||||||
## 属性增长机制
|
## 属性增长机制
|
||||||
|
|
||||||
### 攻击力增长 (AP Growth)
|
### 攻击力增长
|
||||||
根据英雄类型采用不同的增长模式:
|
|
||||||
|
|
||||||
| 英雄类型 | 增长公式 | 说明 |
|
| 英雄类型 | 增长公式 | 说明 |
|
||||||
|---------|---------|------|
|
|---------|---------|------|
|
||||||
| 战士 | `Math.floor(baseAp * 0.05) + 3` | 固定增长为主(每级+3,+5%) |
|
| 战士 | `Math.floor(baseAp * 0.05) + 3` | 固定增长为主 |
|
||||||
| 远程 | `Math.floor(baseAp * 0.10) + 2` | 平衡增长(每级+2,+10%) |
|
| 远程 | `Math.floor(baseAp * 0.10) + 2` | 平衡增长 |
|
||||||
| 法师 | `Math.floor(baseAp * 0.15) + 1` | 百分比增长为主(每级+1,+15%) |
|
| 法师 | `Math.floor(baseAp * 0.15) + 1` | 百分比增长为主 |
|
||||||
|
|
||||||
### 生命值增长 (HP Growth)
|
|
||||||
根据英雄类型采用不同的增长模式:
|
|
||||||
|
|
||||||
|
### 生命值增长
|
||||||
| 英雄类型 | 增长公式 | 说明 |
|
| 英雄类型 | 增长公式 | 说明 |
|
||||||
|---------|---------|------|
|
|---------|---------|------|
|
||||||
| 战士 | `Math.floor(baseHp * 0.08) + 10` | 高增长(每级+10,+8%) |
|
| 战士 | `Math.floor(baseHp * 0.08) + 10` | 高增长 |
|
||||||
| 远程 | `Math.floor(baseHp * 0.05) + 5` | 中等增长(每级+5,+5%) |
|
| 远程 | `Math.floor(baseHp * 0.05) + 5` | 中等增长 |
|
||||||
| 法师 | `Math.floor(baseHp * 0.03) + 3` | 低增长(每级+3,+3%) |
|
| 法师 | `Math.floor(baseHp * 0.03) + 3` | 低增长 |
|
||||||
|
|
||||||
## 英雄成长特点分析
|
## 怪物配置
|
||||||
|
|
||||||
### 战士型英雄
|
### 基础属性
|
||||||
- **特点**: 高生存能力,稳定输出
|
- **普通怪物**: HP 25, AP 8, 经验值 15
|
||||||
- **AP增长**: 固定增长为主,适合持续战斗
|
- **远程怪物**: HP 20, AP 12, 经验值 25
|
||||||
- **HP增长**: 高增长,提供优秀的生存能力
|
- **法师怪物**: HP 18, AP 15, 经验值 35
|
||||||
- **适用场景**: 前排坦克,持续输出
|
|
||||||
|
|
||||||
### 远程型英雄
|
### 配置原则
|
||||||
- **特点**: 平衡型输出,中等生存能力
|
- 怪物HP ≤ 英雄AP × 3 (确保3次攻击击杀)
|
||||||
- **AP增长**: 平衡增长,既有固定加成又有百分比提升
|
- 怪物AP = 英雄AP × (0.8-1.5倍)
|
||||||
- **HP增长**: 中等增长,提供基本生存能力
|
- 经验值与怪物威胁度成正比
|
||||||
- **适用场景**: 后排输出,灵活战斗
|
|
||||||
|
|
||||||
### 法师型英雄
|
## 怪物波次系统设计
|
||||||
- **特点**: 高伤害输出,低生存能力
|
|
||||||
- **AP增长**: 百分比增长为主,后期伤害爆发
|
|
||||||
- **HP增长**: 低增长,需要保护
|
|
||||||
- **适用场景**: 后排爆发输出,需要团队保护
|
|
||||||
|
|
||||||
## 核心函数说明
|
### 游戏模式设定
|
||||||
|
- **我方阵容**: 2个英雄(1主将+1伙伴)
|
||||||
|
- **战斗方式**: 怪物从右侧单线路向我方攻击
|
||||||
|
- **失败条件**: 主英雄死亡
|
||||||
|
- **装备系统**: 武器、盾牌、饰品各1件
|
||||||
|
|
||||||
### 经验值相关函数
|
### 每波怪物数量设计
|
||||||
- `getUpExp(currentLevel)`: 获取指定等级升级所需经验
|
|
||||||
- `getTotalUpExp(currentLevel, targetLevel)`: 获取从当前等级升级到目标等级所需总经验
|
|
||||||
|
|
||||||
### 属性增长相关函数
|
#### 第1-5波(新手期)
|
||||||
- `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
|
```typescript
|
||||||
// 兽人战士、兽人刺客、兽人护卫、石卫、土卫、树人
|
// 单一怪物类型,便于熟悉机制
|
||||||
{
|
波次1: 3只普通怪物 (总HP: 75, 总AP: 24)
|
||||||
hp: 25, // 降低到英雄的0.5倍,确保3次攻击击杀 (10×3=30)
|
波次2: 4只普通怪物 (总HP: 100, 总AP: 32)
|
||||||
ap: 8, // 提升到英雄的80% (原5)
|
波次3: 2只普通 + 1只远程 (总HP: 70, 总AP: 28)
|
||||||
dis: 300, // 提升攻击距离 (原250)
|
波次4: 5只普通怪物 (总HP: 125, 总AP: 40)
|
||||||
cd: 1.5, // 保持不变
|
波次5: 3只普通 + 1只远程 (总HP: 95, 总AP: 36)
|
||||||
speed: 45 // 稍微降低移动速度 (原50)
|
```
|
||||||
|
|
||||||
|
#### 第6-10波(成长期)
|
||||||
|
```typescript
|
||||||
|
// 引入法师怪物,增加战术深度
|
||||||
|
波次6: 2只普通 + 2只远程 (总HP: 90, 总AP: 40)
|
||||||
|
波次7: 4只普通 + 1只法师 (总HP: 118, 总AP: 47)
|
||||||
|
波次8: 1只普通 + 3只远程 (总HP: 85, 总AP: 44)
|
||||||
|
波次9: 3只普通 + 1只远程 + 1只法师 (总HP: 113, 总AP: 51)
|
||||||
|
波次10: 2只普通 + 2只远程 + 1只法师 (总HP: 108, 总AP: 56)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 第11-15波(挑战期)
|
||||||
|
```typescript
|
||||||
|
// 混合搭配,考验装备和技能运用
|
||||||
|
波次11: 6只普通怪物 (总HP: 150, 总AP: 48)
|
||||||
|
波次12: 2只普通 + 3只远程 (总HP: 110, 总AP: 52)
|
||||||
|
波次13: 5只普通 + 2只法师 (总HP: 161, 总AP: 70)
|
||||||
|
波次14: 3只普通 + 2只远程 + 2只法师 (总HP: 151, 总AP: 74)
|
||||||
|
波次15: 1只普通 + 4只远程 + 2只法师 (总HP: 141, 总AP: 78)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 第16波+ (无限模式)
|
||||||
|
```typescript
|
||||||
|
// 每5波一个难度递增周期
|
||||||
|
基础公式:
|
||||||
|
- 普通怪物数 = 3 + floor(波次/5)
|
||||||
|
- 远程怪物数 = 1 + floor(波次/8)
|
||||||
|
- 法师怪物数 = 0 + floor(波次/10)
|
||||||
|
- 最大单波总数限制: 12只
|
||||||
|
```
|
||||||
|
|
||||||
|
### 怪物等级提升机制
|
||||||
|
|
||||||
|
#### 每10波等级提升
|
||||||
|
```typescript
|
||||||
|
怪物等级 = 1 + floor(波次/10)
|
||||||
|
|
||||||
|
// 怪物属性随等级增长
|
||||||
|
getMonsterStats(baseStats, level) {
|
||||||
|
return {
|
||||||
|
hp: Math.floor(baseStats.hp * (1 + (level-1) * 0.3)),
|
||||||
|
ap: Math.floor(baseStats.ap * (1 + (level-1) * 0.25)),
|
||||||
|
exp: Math.floor(baseStats.exp * (1 + (level-1) * 0.4))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2. 远程怪物 (5203, 5220, 5224) - 重新配置
|
#### 等级对应的怪物强度示例
|
||||||
|
| 等级 | 普通怪物 | 远程怪物 | 法师怪物 |
|
||||||
|
|------|----------|----------|----------|
|
||||||
|
| 1级 | HP:25, AP:8 | HP:20, AP:12 | HP:18, AP:15 |
|
||||||
|
| 2级 | HP:33, AP:10 | HP:26, AP:15 | HP:23, AP:19 |
|
||||||
|
| 3级 | HP:41, AP:12 | HP:32, AP:18 | HP:29, AP:23 |
|
||||||
|
| 4级 | HP:49, AP:14 | HP:38, AP:21 | HP:35, AP:27 |
|
||||||
|
| 5级 | HP:57, AP:16 | HP:44, AP:24 | HP:41, AP:31 |
|
||||||
|
|
||||||
|
## 装备石系统设计
|
||||||
|
|
||||||
|
### 装备石获取机制
|
||||||
```typescript
|
```typescript
|
||||||
// 兽人护卫、牛头战士(远程)、独眼巨人(远程)
|
// 每只怪物掉落装备石数量
|
||||||
{
|
getEquipStoneDrops(monsterType, level) {
|
||||||
hp: 20, // 降低到英雄的0.4倍,确保3次攻击击杀
|
const baseDrops = {
|
||||||
ap: 12, // 提升到英雄的120%
|
[HType.warrior]: 2, // 普通怪物
|
||||||
dis: 500, // 提升远程攻击距离
|
[HType.remote]: 3, // 远程怪物
|
||||||
cd: 1.5, // 保持不变
|
[HType.mage]: 4 // 法师怪物
|
||||||
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;
|
return Math.floor(baseDrops[monsterType] * (1 + (level-1) * 0.2));
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 等级递增公式
|
|
||||||
```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
|
```typescript
|
||||||
// 获取怪物经验值
|
// 装备石需求量
|
||||||
export const getMonsterExp = (monsterId: number): number => {
|
getEquipUpgradeCost(equipLevel, quality) {
|
||||||
const monsterInfo = HeroInfo[monsterId];
|
const baseCosts = {
|
||||||
return monsterInfo?.exp || 10; // 默认10经验
|
[Quality.GREEN]: 50,
|
||||||
};
|
[Quality.BLUE]: 80,
|
||||||
|
[Quality.PURPLE]: 120
|
||||||
|
};
|
||||||
|
|
||||||
|
// 每次升级成本翻倍
|
||||||
|
return baseCosts[quality] * Math.pow(2, equipLevel - 1);
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3. 升级检查函数
|
### 装备石需求示例
|
||||||
|
| 装备等级 | 绿色品质 | 蓝色品质 | 紫色品质 |
|
||||||
|
|----------|----------|----------|----------|
|
||||||
|
| 1级→2级 | 50石 | 80石 | 120石 |
|
||||||
|
| 2级→3级 | 100石 | 160石 | 240石 |
|
||||||
|
| 3级→4级 | 200石 | 320石 | 480石 |
|
||||||
|
| 4级→5级 | 400石 | 640石 | 960石 |
|
||||||
|
|
||||||
|
### 装备掉落策略
|
||||||
```typescript
|
```typescript
|
||||||
// 检查英雄是否可以升级
|
// 每5波可能掉落新装备类型
|
||||||
export const checkLevelUp = (currentExp: number, currentLevel: number): boolean => {
|
每波次奖励:
|
||||||
const requiredExp = getUpExp(currentLevel);
|
- 波次5: 解锁绿色武器选择
|
||||||
return currentExp >= requiredExp;
|
- 波次10: 解锁绿色盾牌选择
|
||||||
};
|
- 波次15: 解锁绿色饰品选择
|
||||||
|
- 波次20: 解锁蓝色装备选择
|
||||||
|
- 波次30: 解锁紫色装备选择
|
||||||
```
|
```
|
||||||
|
|
||||||
### 注意事项
|
## 平衡性分析
|
||||||
|
|
||||||
- 经验值设置要考虑游戏节奏,避免升级过快或过慢
|
### 装备影响下的战力增长
|
||||||
- 不同类型怪物提供不同的经验值,增加战术选择
|
```typescript
|
||||||
- 为后续多人团队和高级怪物预留经验值空间
|
// 玩家战力发展曲线
|
||||||
- 经验值要与怪物的威胁度和击杀难度成正比
|
初期无装备: AP 20, HP 100
|
||||||
|
5波后(绿武器1级): AP 30, HP 100
|
||||||
|
10波后(+绿盾1级): AP 30, HP 140
|
||||||
|
15波后(+绿饰品1级): AP 36, HP 160
|
||||||
|
20波后(蓝装备2级): AP 50, HP 200
|
||||||
|
30波后(紫装备3级): AP 80, HP 300
|
||||||
|
```
|
||||||
|
|
||||||
|
### 难度递增合理性验证
|
||||||
|
- **初期(1-5波)**: 怪物总威胁度略低于玩家,学习期
|
||||||
|
- **成长期(6-15波)**: 怪物威胁度与玩家装备提升同步
|
||||||
|
- **挑战期(16波+)**: 需要技能配合和装备优化才能通过
|
||||||
|
|
||||||
|
## 核心函数
|
||||||
|
|
||||||
|
### 经验值相关
|
||||||
|
- `getUpExp(currentLevel)`: 获取升级所需经验
|
||||||
|
- `getTotalUpExp(currentLevel, targetLevel)`: 获取总经验需求
|
||||||
|
|
||||||
|
### 属性增长相关
|
||||||
|
- `getUpAp(heroId)`: 获取攻击力增长
|
||||||
|
- `getUpHp(heroId)`: 获取生命值增长
|
||||||
|
- `getHeroTotalAp(heroId, level)`: 获取总攻击力
|
||||||
|
- `getHeroTotalHp(heroId, level)`: 获取总生命值
|
||||||
|
- `getLevelUpStats(heroId, currentLevel, targetLevel)`: 获取完整属性信息
|
||||||
|
|
||||||
|
### 怪物波次相关
|
||||||
|
- `getWaveMonsters(waveNumber)`: 获取指定波次的怪物配置
|
||||||
|
- `getMonsterLevel(waveNumber)`: 获取怪物等级
|
||||||
|
- `getEquipStoneDrops(monsterType, level)`: 计算装备石掉落
|
||||||
|
- `getEquipUpgradeCost(equipLevel, quality)`: 计算装备升级成本
|
||||||
|
|||||||
Reference in New Issue
Block a user