/* * 肉鸽游戏玩家升级强化系统使用示例 * 展示如何在游戏中使用强化选项配置 */ import { getRandomEnhancementOptions, getLevelAdjustedEnhancementOptions, getEnhancementOptionByType, EnhancementType, EnhancementOption } from "./LevelUpEnhancement" import { BuffAttr } from "./SkillSet" import { Quality } from "./CardSet" // 强化管理器类 export class EnhancementManager { private playerLevel: number = 1; private appliedEnhancements: EnhancementOption[] = []; constructor(initialLevel: number = 1) { this.playerLevel = initialLevel; } // 玩家升级时调用,获取强化选项 onPlayerLevelUp(): EnhancementOption[] { console.log(`[EnhancementManager]: 玩家升级到 ${this.playerLevel + 1} 级,获取强化选项`); // 根据玩家等级获取调整后的强化选项 const options = getLevelAdjustedEnhancementOptions(this.playerLevel + 1, 3); console.log(`[EnhancementManager]: 获得 ${options.length} 个强化选项:`, options); return options; } // 应用选中的强化选项 applyEnhancement(option: EnhancementOption): boolean { console.log(`[EnhancementManager]: 应用强化选项: ${option.name}`); // 记录应用的强化 this.appliedEnhancements.push(option); // 根据强化类型应用对应的属性加成 this.applyBuffToPlayer(option); return true; } // 将强化效果应用到玩家属性 private applyBuffToPlayer(option: EnhancementOption): void { const buffType = option.buffType; const value = option.value; console.log(`[EnhancementManager]: 应用Buff - 类型: ${buffType}, 数值: ${value}`); // 这里应该调用游戏中的属性系统来实际应用效果 // 例如:dispatchEvent 到游戏事件系统 this.dispatchEnhancementEvent(buffType, value); } // 分发强化事件到游戏系统 private dispatchEnhancementEvent(buffType: number, value: number): void { // 这里应该调用游戏的事件系统 // 例如:oops.message.dispatchEvent('EnhancementApplied', { buffType, value }); console.log(`[EnhancementManager]: 分发强化事件 - buffType: ${buffType}, value: ${value}`); } // 获取玩家当前等级 getPlayerLevel(): number { return this.playerLevel; } // 设置玩家等级 setPlayerLevel(level: number): void { this.playerLevel = level; } // 获取已应用的强化列表 getAppliedEnhancements(): EnhancementOption[] { return this.appliedEnhancements; } // 获取特定类型的强化统计 getEnhancementStats(): { [key: number]: number } { const stats: { [key: number]: number } = {}; this.appliedEnhancements.forEach(enhancement => { const buffType = enhancement.buffType; if (!stats[buffType]) { stats[buffType] = 0; } stats[buffType] += enhancement.value; }); return stats; } // 重置强化管理器 reset(): void { this.appliedEnhancements = []; console.log("[EnhancementManager]: 强化管理器已重置"); } } // 强化UI管理器示例 export class EnhancementUIManager { private enhancementManager: EnhancementManager; constructor(enhancementManager: EnhancementManager) { this.enhancementManager = enhancementManager; } // 显示升级强化选择界面 showLevelUpEnhancementUI(): void { console.log("[EnhancementUIManager]: 显示升级强化选择界面"); // 获取强化选项 const options = this.enhancementManager.onPlayerLevelUp(); // 这里应该显示UI界面,让玩家选择 this.displayEnhancementOptions(options); } // 显示强化选项 private displayEnhancementOptions(options: EnhancementOption[]): void { console.log("[EnhancementUIManager]: 显示强化选项:"); options.forEach((option, index) => { console.log(`选项 ${index + 1}: ${option.name} - ${option.description} (${option.rarity})`); }); } // 处理玩家选择 onPlayerSelectOption(optionIndex: number, options: EnhancementOption[]): void { if (optionIndex >= 0 && optionIndex < options.length) { const selectedOption = options[optionIndex]; console.log(`[EnhancementUIManager]: 玩家选择了: ${selectedOption.name}`); // 应用选中的强化 this.enhancementManager.applyEnhancement(selectedOption); // 关闭UI界面 this.hideEnhancementUI(); } } // 隐藏强化UI private hideEnhancementUI(): void { console.log("[EnhancementUIManager]: 隐藏强化选择界面"); } } // 使用示例 export function createEnhancementExample(): void { console.log("=== 肉鸽游戏强化系统使用示例 ==="); // 创建强化管理器 const enhancementManager = new EnhancementManager(5); // 创建UI管理器 const uiManager = new EnhancementUIManager(enhancementManager); // 模拟玩家升级 console.log("\n--- 模拟玩家升级 ---"); enhancementManager.setPlayerLevel(10); uiManager.showLevelUpEnhancementUI(); // 模拟玩家选择强化选项 console.log("\n--- 模拟玩家选择强化选项 ---"); const options = getRandomEnhancementOptions(3); uiManager.onPlayerSelectOption(0, options); // 显示强化统计 console.log("\n--- 强化统计 ---"); const stats = enhancementManager.getEnhancementStats(); console.log("当前强化统计:", stats); // 测试特定强化选项 console.log("\n--- 测试特定强化选项 ---"); const attackOption = getEnhancementOptionByType(EnhancementType.ATTACK, Quality.BLUE); if (attackOption) { console.log("获取攻击力强化选项:", attackOption); enhancementManager.applyEnhancement(attackOption); } // 显示最终统计 console.log("\n--- 最终强化统计 ---"); const finalStats = enhancementManager.getEnhancementStats(); console.log("最终强化统计:", finalStats); } // 强化选项预览工具 export class EnhancementPreviewTool { // 预览所有强化选项 static previewAllEnhancements(): void { console.log("=== 所有强化选项预览 ==="); const types = [ { name: "攻击力", type: EnhancementType.ATTACK }, { name: "生命值", type: EnhancementType.HEALTH }, { name: "攻击速度", type: EnhancementType.ATTACK_SPEED }, { name: "暴击率", type: EnhancementType.CRITICAL }, { name: "暴击伤害", type: EnhancementType.CRITICAL_DMG }, { name: "闪避率", type: EnhancementType.DODGE }, { name: "防御力", type: EnhancementType.DEFENSE }, { name: "技能冷却", type: EnhancementType.SKILL_CD }, { name: "技能伤害", type: EnhancementType.SKILL_DMG }, { name: "特殊效果", type: EnhancementType.SPECIAL } ]; types.forEach(({ name, type }) => { console.log(`\n--- ${name}强化选项 ---`); const qualities = [Quality.WHITE, Quality.GREEN, Quality.BLUE, Quality.PURPLE, Quality.ORANGE]; qualities.forEach(quality => { const option = getEnhancementOptionByType(type, quality); if (option) { console.log(`${option.rarity}: ${option.name} - ${option.description}`); } }); }); } // 测试随机强化选项生成 static testRandomGeneration(): void { console.log("\n=== 测试随机强化选项生成 ==="); for (let i = 0; i < 5; i++) { console.log(`\n第 ${i + 1} 次随机生成:`); const options = getRandomEnhancementOptions(3); options.forEach((option, index) => { console.log(` 选项 ${index + 1}: ${option.name} (${option.rarity}) - ${option.description}`); }); } } // 测试等级调整功能 static testLevelAdjustment(): void { console.log("\n=== 测试等级调整功能 ==="); const levels = [1, 10, 20, 30]; levels.forEach(level => { console.log(`\n玩家等级 ${level} 的强化选项:`); const options = getLevelAdjustedEnhancementOptions(level, 3); options.forEach((option, index) => { console.log(` 选项 ${index + 1}: ${option.name} (${option.rarity}) - ${option.description}`); }); }); } } // 导出使用示例函数 export function runEnhancementExamples(): void { // 运行所有示例 createEnhancementExample(); EnhancementPreviewTool.previewAllEnhancements(); EnhancementPreviewTool.testRandomGeneration(); EnhancementPreviewTool.testLevelAdjustment(); }