Files
heros/assets/script/Design.md

445 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)`: 计算装备升级成本
## 当前设计中的肉鸽元素 ✅
### 已有的肉鸽特征:
1. **随机性**
- 怪物随机出现,组合随机
- Boss随机
- 装备获取随机选择
2. **永久死亡**
- 主英雄死亡后游戏失败
3. **进度系统**
- 装备石积累系统
- 装备升级路径
4. **分数排名**
- 计算最终分值并排名
## 需要强化的肉鸽元素 🔧
### 1. **随机事件系统**
```typescript
// 建议添加的随机事件
const RandomEvents = {
// 战斗事件
BOSS_APPEAR: "随机Boss出现",
ELITE_SPAWN: "精英怪物出现",
WAVE_SKIP: "跳过一波获得奖励",
// 奖励事件
EQUIPMENT_CHEST: "装备宝箱",
SKILL_UPGRADE: "技能升级",
STAT_BOOST: "属性提升",
// 挑战事件
DOUBLE_WAVE: "双倍怪物波次",
TIME_LIMIT: "限时挑战",
RESTRICTED_EQUIP: "装备限制挑战"
}
```
### 2. **Build系统构建路径**
```typescript
// 建议添加的Build要素
const BuildElements = {
// 技能组合
SKILL_SYNERGIES: {
BURN_BUILD: "燃烧流",
CRIT_BUILD: "暴击流",
TANK_BUILD: "坦克流"
},
// 装备组合
EQUIPMENT_SETS: {
WARRIOR_SET: "战士套装",
MAGE_SET: "法师套装",
HYBRID_SET: "混合套装"
},
// 随机天赋
RANDOM_TALENTS: [
"双倍暴击伤害",
"攻击速度提升",
"生命偷取",
"技能冷却减少"
]
}
```
### 3. **关卡多样性**
```typescript
// 建议添加的关卡类型
const LevelTypes = {
NORMAL_WAVE: "普通波次",
BOSS_WAVE: "Boss战",
ELITE_WAVE: "精英怪波次",
EVENT_WAVE: "特殊事件波次",
REST_WAVE: "休息/商店波次"
}
```
### 4. **Meta进度系统**
```typescript
// 建议添加的Meta进度
const MetaProgression = {
// 永久解锁
UNLOCK_HEROES: "解锁新英雄",
UNLOCK_EQUIPMENT: "解锁新装备类型",
UNLOCK_SKILLS: "解锁新技能",
// 起始加成
STARTING_BONUS: "起始装备/属性加成",
REROLL_CHANCES: "重新选择次数",
// 难度调节
DIFFICULTY_MODIFIERS: "难度调节器"
}
```
## 建议的肉鸽塔防改进方案 📋
### 1. **随机地图系统**
```typescript
// 每局游戏随机生成不同的地图布局
const MapVariations = {
LANE_COUNT: [1, 2, 3], // 随机1-3条路径
OBSTACLES: ["障碍物", "减速区", "伤害区"],
SPECIAL_TILES: ["商店", "休息点", "挑战点"]
}
```
### 2. **动态难度调整**
```typescript
// 根据玩家表现动态调整难度
const DynamicDifficulty = {
// 玩家表现评估
ASSESS_PLAYER_STRENGTH: (equipment, level, performance) => {
return difficultyMultiplier;
},
// 动态怪物调整
ADJUST_MONSTER_STATS: (baseStats, difficulty) => {
return adjustedStats;
}
}
```
### 3. **分支选择系统**
```typescript
// 每波结束后提供选择
const WaveChoices = {
// 路径选择
PATH_A: "高风险高回报路径",
PATH_B: "稳定发展路径",
PATH_C: "特殊事件路径",
// 奖励选择
REWARD_CHOICES: [
"装备石 x10",
"技能升级机会",
"属性永久提升",
"跳过下一波"
]
}
```
## 总结建议
当前设计已经具备了肉鸽的基础框架,建议重点强化以下方面:
1. **增加随机事件系统** - 让每局游戏都有不同的体验
2. **完善Build系统** - 提供多样化的构建路径
3. **添加Meta进度** - 让玩家有长期目标
4. **强化选择机制** - 增加策略深度
5. **优化随机性** - 平衡随机性和策略性
这样就能将现有的塔防游戏真正转化为具有深度和重玩价值的肉鸽塔防游戏。
​​「主线固定波次 + 限时远征」双模式​
mermaid图片代码merm复制graph TD
A[新局开始] --> B{主线模式固定30波}
B --> C[击败4个Boss通关]
C --> D[结算基础分+事件分]
C --> E{限时远征模式}
E -->|30秒倒计时| F[无限波次冲刺]
F --> G[每多1波+200分]
G --> H[死亡/超时结算远征分]30秒倒计时
新局开始主线模式固定30波击败4个Boss通关结算基础分+事件分限时远征模式无限波次冲刺每多1波+200分死亡/超时结算远征分
​设计精髓​
​主线固定波次(核心体验)​​
节奏30波5-8分钟含4个Boss
胜利条件击败最终Boss
​核心价值​:
每10波设里程碑事件
事件选择影响Boss特性选A事件→Boss弱火
终点明确激发冲刺动力
​限时远征(延伸体验)​​
触发条件主线通关后自动进入30秒倒计时挑战
​规则​:
继承主线最终Build继续战斗
30秒内击杀怪物可延长倒计时+3秒/怪)
每秒自动累计远征分
​价值​:
神装Build的高光时刻吸血刀1v100
时间压力下极限微操​(冲排名核心区)
自然终结防沉迷(倒计时归零强制结算)
玩家类型主线固定波次限时远征小白专注生存10波解锁第一个里程碑获正反馈可跳过避免因操作弱被扣分进阶20波后策略配装针对Boss弱点用主线Build挑战个人最佳不求排名硬核速通主线冲时间分省资源憋终局神装30秒极限操作刷远征分争夺全球排名
​分数系统精算设计​
​总分 = 主线分 × 远征倍率​
主线分满分1000
(通关波次×10)+(剩余血量×0.2)+∑(事件选择价值)(耗时秒数×0.5)
远征倍率1.0-3.0
倍率=1.0+0.02×远征波次
主线900分 + 远征50波 → 总分 = 900×2.0=1800
→ 避免无限分膨胀,让休闲玩家主线分也能竞争
远征10波 送一张免广告券,最多1张,仅远征中使用
普通小怪冲锋或暂停的微小随机行为(不影响总路线时间和击杀策略)。避免视觉单调
### 装备改成