310 lines
7.7 KiB
Markdown
310 lines
7.7 KiB
Markdown
# 肉鸽游戏玩家升级强化系统
|
||
|
||
## 概述
|
||
|
||
这是一个为肉鸽游戏设计的玩家升级强化选项配置系统。当玩家升级时,系统会提供多个强化选项供玩家选择,每个选项都会永久提升玩家的某项属性。
|
||
|
||
## 系统特性
|
||
|
||
### 1. 强化类型
|
||
系统支持以下10种强化类型:
|
||
- **攻击力强化** - 提升基础攻击力
|
||
- **生命值强化** - 提升最大生命值
|
||
- **攻击速度强化** - 减少攻击冷却时间
|
||
- **暴击率强化** - 提升暴击概率
|
||
- **暴击伤害强化** - 提升暴击伤害倍率
|
||
- **闪避率强化** - 提升闪避概率
|
||
- **防御力强化** - 提升伤害减免
|
||
- **技能冷却强化** - 减少技能冷却时间
|
||
- **技能伤害强化** - 提升技能伤害
|
||
- **特殊效果强化** - 提供特殊战斗效果
|
||
|
||
### 2. 品质系统
|
||
每个强化类型都有5个品质等级:
|
||
- **白色 (Common)** - 40% 出现概率,基础强化
|
||
- **绿色 (Uncommon)** - 30% 出现概率,中等强化
|
||
- **蓝色 (Rare)** - 20% 出现概率,强力强化
|
||
- **紫色 (Epic)** - 8% 出现概率,史诗强化
|
||
- **橙色 (Legendary)** - 2% 出现概率,传说强化
|
||
|
||
### 3. 等级调整
|
||
系统会根据玩家等级自动调整强化选项的品质分布:
|
||
- 低等级玩家:偏向基础品质
|
||
- 高等级玩家(20级以上):更高概率获得稀有品质
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
assets/script/game/common/config/
|
||
├── LevelUpEnhancement.ts # 核心强化配置
|
||
├── LevelUpEnhancementExample.ts # 使用示例
|
||
└── README_LevelUpEnhancement.md # 本文档
|
||
```
|
||
|
||
## 使用方法
|
||
|
||
### 1. 基础使用
|
||
|
||
```typescript
|
||
import {
|
||
getRandomEnhancementOptions,
|
||
EnhancementType,
|
||
Quality
|
||
} from "./LevelUpEnhancement"
|
||
|
||
// 获取3个随机强化选项
|
||
const options = getRandomEnhancementOptions(3);
|
||
|
||
// 获取指定类型和品质的强化选项
|
||
const attackOption = getEnhancementOptionByType(EnhancementType.ATTACK, Quality.BLUE);
|
||
```
|
||
|
||
### 2. 等级调整使用
|
||
|
||
```typescript
|
||
import { getLevelAdjustedEnhancementOptions } from "./LevelUpEnhancement"
|
||
|
||
// 根据玩家等级获取调整后的强化选项
|
||
const playerLevel = 25;
|
||
const options = getLevelAdjustedEnhancementOptions(playerLevel, 3);
|
||
```
|
||
|
||
### 3. 完整管理器使用
|
||
|
||
```typescript
|
||
import { EnhancementManager, EnhancementUIManager } from "./LevelUpEnhancementExample"
|
||
|
||
// 创建强化管理器
|
||
const enhancementManager = new EnhancementManager(1);
|
||
|
||
// 创建UI管理器
|
||
const uiManager = new EnhancementUIManager(enhancementManager);
|
||
|
||
// 玩家升级时
|
||
enhancementManager.setPlayerLevel(10);
|
||
const options = enhancementManager.onPlayerLevelUp();
|
||
|
||
// 玩家选择强化选项
|
||
uiManager.onPlayerSelectOption(0, options);
|
||
```
|
||
|
||
## 强化选项配置
|
||
|
||
### 攻击力强化示例
|
||
```typescript
|
||
[EnhancementType.ATTACK]: {
|
||
[Quality.WHITE]: {
|
||
name: "力量训练",
|
||
description: "攻击力 +5",
|
||
buffType: BuffAttr.ATK,
|
||
value: 5,
|
||
icon: "attack_white",
|
||
rarity: "common"
|
||
},
|
||
[Quality.BLUE]: {
|
||
name: "战斗大师",
|
||
description: "攻击力 +20",
|
||
buffType: BuffAttr.ATK,
|
||
value: 20,
|
||
icon: "attack_blue",
|
||
rarity: "rare"
|
||
}
|
||
// ... 其他品质
|
||
}
|
||
```
|
||
|
||
### 攻击速度强化示例
|
||
```typescript
|
||
[EnhancementType.ATTACK_SPEED]: {
|
||
[Quality.GREEN]: {
|
||
name: "疾风连击",
|
||
description: "攻击速度 +15%",
|
||
buffType: BuffAttr.ATK_CD,
|
||
value: -15, // 负值表示减少CD
|
||
icon: "speed_green",
|
||
rarity: "uncommon"
|
||
}
|
||
}
|
||
```
|
||
|
||
## 强化数值参考
|
||
|
||
### 攻击力强化
|
||
- 白色: +5 攻击力
|
||
- 绿色: +12 攻击力
|
||
- 蓝色: +20 攻击力
|
||
- 紫色: +35 攻击力
|
||
- 橙色: +50 攻击力
|
||
|
||
### 生命值强化
|
||
- 白色: +10 生命值
|
||
- 绿色: +25 生命值
|
||
- 蓝色: +40 生命值
|
||
- 紫色: +65 生命值
|
||
- 橙色: +100 生命值
|
||
|
||
### 攻击速度强化
|
||
- 白色: +8% 攻击速度
|
||
- 绿色: +15% 攻击速度
|
||
- 蓝色: +25% 攻击速度
|
||
- 紫色: +40% 攻击速度
|
||
- 橙色: +60% 攻击速度
|
||
|
||
## 集成到现有系统
|
||
|
||
### 1. 与英雄系统集成
|
||
|
||
```typescript
|
||
// 在HeroViewComp.ts的to_update方法中添加
|
||
to_update() {
|
||
|
||
// 原有的升级逻辑
|
||
oops.message.dispatchEvent(GameEvent.HeroLvUp,{lv:this.lv})
|
||
this.lv+=1
|
||
this.next_exp=getUpExp(this.lv)
|
||
|
||
// 新增:触发强化选择
|
||
this.triggerEnhancementSelection();
|
||
}
|
||
|
||
private triggerEnhancementSelection() {
|
||
const options = getLevelAdjustedEnhancementOptions(this.lv, 3);
|
||
// 显示强化选择UI
|
||
oops.message.dispatchEvent('ShowEnhancementUI', { options });
|
||
}
|
||
```
|
||
|
||
### 2. 与事件系统集成
|
||
|
||
```typescript
|
||
// 监听强化选择事件
|
||
this.on('EnhancementSelected', this.onEnhancementSelected, this);
|
||
|
||
private onEnhancementSelected(option: EnhancementOption) {
|
||
// 应用强化效果
|
||
this.applyEnhancement(option);
|
||
}
|
||
|
||
private applyEnhancement(option: EnhancementOption) {
|
||
switch(option.buffType) {
|
||
case BuffAttr.ATK:
|
||
this.ap = this.ap * (100 + option.value) / 100;
|
||
break;
|
||
case BuffAttr.HP:
|
||
this.hp_max = this.hp_max * (100 + option.value) / 100;
|
||
this.hp = this.hp_max; // 升级时回满血
|
||
break;
|
||
case BuffAttr.ATK_CD:
|
||
this.cd = this.cd * (100 + option.value) / 100;
|
||
break;
|
||
// ... 其他属性
|
||
}
|
||
}
|
||
```
|
||
|
||
## 扩展功能
|
||
|
||
### 1. 添加新的强化类型
|
||
|
||
```typescript
|
||
// 在EnhancementType中添加新类型
|
||
export const EnhancementType = {
|
||
// ... 现有类型
|
||
NEW_TYPE: 11, // 新强化类型
|
||
}
|
||
|
||
// 在EnhancementOptions中添加配置
|
||
export const EnhancementOptions = {
|
||
// ... 现有配置
|
||
[EnhancementType.NEW_TYPE]: {
|
||
[Quality.WHITE]: {
|
||
name: "新强化",
|
||
description: "新效果",
|
||
buffType: BuffAttr.NEW_BUFF,
|
||
value: 10,
|
||
icon: "new_white",
|
||
rarity: "common"
|
||
}
|
||
// ... 其他品质
|
||
}
|
||
}
|
||
```
|
||
|
||
### 2. 自定义品质权重
|
||
|
||
```typescript
|
||
// 修改品质权重
|
||
export const CustomQualityWeight = {
|
||
[Quality.WHITE]: 0.5, // 提高白色品质概率
|
||
[Quality.GREEN]: 0.25,
|
||
[Quality.BLUE]: 0.15,
|
||
[Quality.PURPLE]: 0.08,
|
||
[Quality.ORANGE]: 0.02,
|
||
}
|
||
```
|
||
|
||
### 3. 条件强化
|
||
|
||
```typescript
|
||
// 根据游戏状态调整强化选项
|
||
export function getConditionalEnhancementOptions(
|
||
playerLevel: number,
|
||
gameState: any,
|
||
count: number = 3
|
||
): EnhancementOption[] {
|
||
let options = getLevelAdjustedEnhancementOptions(playerLevel, count);
|
||
|
||
// 根据游戏状态过滤或调整选项
|
||
if (gameState.isBossFight) {
|
||
// Boss战中提供更多防御选项
|
||
options = options.filter(option =>
|
||
option.buffType === BuffAttr.DEF ||
|
||
option.buffType === BuffAttr.HP
|
||
);
|
||
}
|
||
|
||
return options;
|
||
}
|
||
```
|
||
|
||
## 测试和调试
|
||
|
||
### 1. 运行示例
|
||
|
||
```typescript
|
||
import { runEnhancementExamples } from "./LevelUpEnhancementExample"
|
||
|
||
// 运行所有示例
|
||
runEnhancementExamples();
|
||
```
|
||
|
||
### 2. 预览所有选项
|
||
|
||
```typescript
|
||
import { EnhancementPreviewTool } from "./LevelUpEnhancementExample"
|
||
|
||
// 预览所有强化选项
|
||
EnhancementPreviewTool.previewAllEnhancements();
|
||
|
||
// 测试随机生成
|
||
EnhancementPreviewTool.testRandomGeneration();
|
||
|
||
// 测试等级调整
|
||
EnhancementPreviewTool.testLevelAdjustment();
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. **数值平衡**: 强化数值需要根据游戏整体平衡进行调整
|
||
2. **UI集成**: 需要创建相应的UI界面来显示强化选项
|
||
3. **数据持久化**: 强化效果需要保存到玩家数据中
|
||
4. **兼容性**: 确保与现有的Buff系统兼容
|
||
5. **测试**: 充分测试各种强化组合的效果
|
||
|
||
## 更新日志
|
||
|
||
- **v1.0.0**: 初始版本,包含基础强化系统
|
||
- 支持10种强化类型
|
||
- 支持5个品质等级
|
||
- 支持等级调整功能
|
||
- 提供完整的使用示例和工具 |