6.5 KiB
6.5 KiB
英雄等级成长系统设计文档
概述
本文档总结了游戏中英雄等级成长系统的设计,包括经验值计算、属性增长机制和英雄类型分类。
英雄类型分类
基础类型 (HType)
- 战士 (warrior = 0): 近战物理输出,高生存能力
- 远程 (remote = 1): 远程物理输出,中等生存能力
- 法师 (mage = 2): 魔法输出,低生存能力但高伤害
经验值系统
升级经验计算
- 基础经验值: 100
- 递增规律: 每级递增10,且递增值本身也会递增
- 公式: 基础经验值 + 递增值累加
升级经验示例
- 1级→2级: 100经验
- 2级→3级: 110经验
- 3级→4级: 120经验
- 4级→5级: 130经验
属性增长机制
攻击力增长
| 英雄类型 | 增长公式 | 说明 |
|---|---|---|
| 战士 | Math.floor(baseAp * 0.05) + 3 |
固定增长为主 |
| 远程 | Math.floor(baseAp * 0.10) + 2 |
平衡增长 |
| 法师 | Math.floor(baseAp * 0.15) + 1 |
百分比增长为主 |
生命值增长
| 英雄类型 | 增长公式 | 说明 |
|---|---|---|
| 战士 | Math.floor(baseHp * 0.08) + 10 |
高增长 |
| 远程 | Math.floor(baseHp * 0.05) + 5 |
中等增长 |
| 法师 | Math.floor(baseHp * 0.03) + 3 |
低增长 |
怪物配置
基础属性
- 普通怪物: HP 25, AP 8, 经验值 15
- 远程怪物: HP 20, AP 12, 经验值 25
- 法师怪物: HP 18, AP 15, 经验值 35
配置原则
- 怪物HP ≤ 英雄AP × 3 (确保3次攻击击杀)
- 怪物AP = 英雄AP × (0.8-1.5倍)
- 经验值与怪物威胁度成正比
怪物波次系统设计
游戏模式设定
- 我方阵容: 2个英雄(1主将+1伙伴)
- 战斗方式: 怪物从右侧单线路向我方攻击
- 失败条件: 主英雄死亡
- 装备系统: 武器、盾牌、饰品各1件
每波怪物数量设计
第1-5波(新手期)
// 单一怪物类型,便于熟悉机制
波次1: 3只普通怪物 (总HP: 75, 总AP: 24)
波次2: 4只普通怪物 (总HP: 100, 总AP: 32)
波次3: 2只普通 + 1只远程 (总HP: 70, 总AP: 28)
波次4: 5只普通怪物 (总HP: 125, 总AP: 40)
波次5: 3只普通 + 1只远程 (总HP: 95, 总AP: 36)
第6-10波(成长期)
// 引入法师怪物,增加战术深度
波次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波(挑战期)
// 混合搭配,考验装备和技能运用
波次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波+ (无限模式)
// 每5波一个难度递增周期
基础公式:
- 普通怪物数 = 3 + floor(波次/5)
- 远程怪物数 = 1 + floor(波次/8)
- 法师怪物数 = 0 + floor(波次/10)
- 最大单波总数限制: 12只
怪物等级提升机制
每10波等级提升
怪物等级 = 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))
}
}
等级对应的怪物强度示例
| 等级 | 普通怪物 | 远程怪物 | 法师怪物 |
|---|---|---|---|
| 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 |
装备石系统设计
装备石获取机制
// 每只怪物掉落装备石数量
getEquipStoneDrops(monsterType, level) {
const baseDrops = {
[HType.warrior]: 2, // 普通怪物
[HType.remote]: 3, // 远程怪物
[HType.mage]: 4 // 法师怪物
};
return Math.floor(baseDrops[monsterType] * (1 + (level-1) * 0.2));
}
装备获取/升级成本
// 装备石需求量
getEquipUpgradeCost(equipLevel, quality) {
const baseCosts = {
[Quality.GREEN]: 50,
[Quality.BLUE]: 80,
[Quality.PURPLE]: 120
};
// 每次升级成本翻倍
return baseCosts[quality] * Math.pow(2, equipLevel - 1);
}
装备石需求示例
| 装备等级 | 绿色品质 | 蓝色品质 | 紫色品质 |
|---|---|---|---|
| 1级→2级 | 50石 | 80石 | 120石 |
| 2级→3级 | 100石 | 160石 | 240石 |
| 3级→4级 | 200石 | 320石 | 480石 |
| 4级→5级 | 400石 | 640石 | 960石 |
装备掉落策略
// 每5波可能掉落新装备类型
每波次奖励:
- 波次5: 解锁绿色武器选择
- 波次10: 解锁绿色盾牌选择
- 波次15: 解锁绿色饰品选择
- 波次20: 解锁蓝色装备选择
- 波次30: 解锁紫色装备选择
平衡性分析
装备影响下的战力增长
// 玩家战力发展曲线
初期无装备: 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): 计算装备升级成本