Files
heros/assets/script/game/common/config/README_LevelUpEnhancement.md
2025-07-14 16:53:39 +08:00

310 lines
7.7 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.

# 肉鸽游戏玩家升级强化系统
## 概述
这是一个为肉鸽游戏设计的玩家升级强化选项配置系统。当玩家升级时,系统会提供多个强化选项供玩家选择,每个选项都会永久提升玩家的某项属性。
## 系统特性
### 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个品质等级
- 支持等级调整功能
- 提供完整的使用示例和工具