Files
heros/assets/script/game/common/config/README_LevelUpEnhancement.md

7.7 KiB
Raw Blame History

肉鸽游戏玩家升级强化系统

概述

这是一个为肉鸽游戏设计的玩家升级强化选项配置系统。当玩家升级时,系统会提供多个强化选项供玩家选择,每个选项都会永久提升玩家的某项属性。

系统特性

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. 基础使用

import { 
    getRandomEnhancementOptions, 
    EnhancementType,
    Quality 
} from "./LevelUpEnhancement"

// 获取3个随机强化选项
const options = getRandomEnhancementOptions(3);

// 获取指定类型和品质的强化选项
const attackOption = getEnhancementOptionByType(EnhancementType.ATTACK, Quality.BLUE);

2. 等级调整使用

import { getLevelAdjustedEnhancementOptions } from "./LevelUpEnhancement"

// 根据玩家等级获取调整后的强化选项
const playerLevel = 25;
const options = getLevelAdjustedEnhancementOptions(playerLevel, 3);

3. 完整管理器使用

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);

强化选项配置

攻击力强化示例

[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"
    }
    // ... 其他品质
}

攻击速度强化示例

[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. 与英雄系统集成

// 在HeroViewComp.ts的to_update方法中添加
to_update() {
    if(!this.is_master) return
    
    // 原有的升级逻辑
    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. 与事件系统集成

// 监听强化选择事件
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. 添加新的强化类型

// 在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. 自定义品质权重

// 修改品质权重
export const CustomQualityWeight = {
    [Quality.WHITE]: 0.5,   // 提高白色品质概率
    [Quality.GREEN]: 0.25,
    [Quality.BLUE]: 0.15,
    [Quality.PURPLE]: 0.08,
    [Quality.ORANGE]: 0.02,
}

3. 条件强化

// 根据游戏状态调整强化选项
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. 运行示例

import { runEnhancementExamples } from "./LevelUpEnhancementExample"

// 运行所有示例
runEnhancementExamples();

2. 预览所有选项

import { EnhancementPreviewTool } from "./LevelUpEnhancementExample"

// 预览所有强化选项
EnhancementPreviewTool.previewAllEnhancements();

// 测试随机生成
EnhancementPreviewTool.testRandomGeneration();

// 测试等级调整
EnhancementPreviewTool.testLevelAdjustment();

注意事项

  1. 数值平衡: 强化数值需要根据游戏整体平衡进行调整
  2. UI集成: 需要创建相应的UI界面来显示强化选项
  3. 数据持久化: 强化效果需要保存到玩家数据中
  4. 兼容性: 确保与现有的Buff系统兼容
  5. 测试: 充分测试各种强化组合的效果

更新日志

  • v1.0.0: 初始版本,包含基础强化系统
  • 支持10种强化类型
  • 支持5个品质等级
  • 支持等级调整功能
  • 提供完整的使用示例和工具