将必杀技 迁移到 skillconcom ,去除技能释放卡牌

This commit is contained in:
2025-07-14 10:52:43 +08:00
parent 9ebab375a9
commit 377c287eec
8 changed files with 1468 additions and 45 deletions

View File

@@ -0,0 +1,258 @@
/*
* 肉鸽游戏玩家升级强化系统使用示例
* 展示如何在游戏中使用强化选项配置
*/
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();
}