Files
pixelheros/assets/script/Design.md
panw a302bbd65f dd
2025-07-11 11:12:06 +08:00

224 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 游戏总设计
## 游戏模式(已确定)
玩家角色固定在左边位置,不可移动,怪物从右边进入,玩家主英雄死亡后,游戏失败,干掉 4个boss后胜利(胜利条件还在设计中),boss随机,怪物随机,通过达成一定条件完成事件,获得特定分值,不管输赢,计算最终分值 并排名
### 玩家角色: 主英雄 + 副英雄
### 装备栏: 武器,盾牌,饰品
### 武器:剑,刀,斧,锤
### 盾牌:盾
### 饰品:饰品
### 武器获取和升级方式:
怪物掉落装备石,达到一定要求数量后可以 选择或升级装备
lv1:10个
lv2:20个
lv3:40个
...以此类推,
每达到一次要求 可以选择获取当前还未获取的装备,或升级现有装备,武器,盾牌,饰品,共用一个装备石要求池(如lv1 选择了1级武器,lv2 可以选择升级武器到lv2,或者获取lv1的盾牌和饰品)
## 英雄等级成长系统设计文档
### 基础类型 (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波新手期
```typescript
// 单一怪物类型,便于熟悉机制
波次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波成长期
```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))
}
}
```
#### 等级对应的怪物强度示例
| 等级 | 普通怪物 | 远程怪物 | 法师怪物 |
|------|----------|----------|----------|
| 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
// 每只怪物掉落装备石数量
getEquipStoneDrops(monsterType, level) {
const baseDrops = {
[HType.warrior]: 2, // 普通怪物
[HType.remote]: 3, // 远程怪物
[HType.mage]: 4 // 法师怪物
};
return Math.floor(baseDrops[monsterType] * (1 + (level-1) * 0.2));
}
```
### 装备获取/升级成本
```typescript
// 装备石需求量
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石 |
### 装备掉落策略
```typescript
// 每5波可能掉落新装备类型
:
- 波次5: 解锁绿色武器选择
- 波次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)`: 计算装备升级成本