关卡调整
This commit is contained in:
@@ -218,27 +218,40 @@ export function getMonsterEnhancement(monsterType: MonsterType, useRandom: boole
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据关卡号判断关卡类型
|
||||
* 根据关卡号和等级判断关卡类型
|
||||
* @param stageNumber 关卡号(从1开始)
|
||||
* @param level 等级(1-5)
|
||||
* @returns 关卡类型
|
||||
*/
|
||||
export function getStageType(stageNumber: number): StageType {
|
||||
export function getStageType(stageNumber: number, level: number = 1): StageType {
|
||||
// 第10关的特殊规则
|
||||
if (stageNumber % 10 === 0) {
|
||||
return StageType.BOSS; // 每10关为Boss关
|
||||
} else if (stageNumber % 5 === 0) {
|
||||
return StageType.ELITE; // 每5关(非10的倍数)为精英关
|
||||
} else {
|
||||
return StageType.NORMAL; // 其他关卡为普通关
|
||||
if (level === 5) {
|
||||
return StageType.BOSS; // 第10关第5级为Boss关
|
||||
} else if (level === 4) {
|
||||
return StageType.ELITE; // 第10关第4级为精英关
|
||||
} else {
|
||||
return StageType.NORMAL; // 第10关1-3级为普通关
|
||||
}
|
||||
}
|
||||
// 1-9关的规则
|
||||
else {
|
||||
if (level === 5) {
|
||||
return StageType.ELITE; // 1-9关第5级为精英关
|
||||
} else {
|
||||
return StageType.NORMAL; // 1-9关1-4级为普通关
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成关卡配置
|
||||
* @param stageNumber 关卡号(从1开始)
|
||||
* @param level 等级(1-5)
|
||||
* @returns MonsterType数组格式
|
||||
*/
|
||||
export function generateStageConfig(stageNumber: number): MonsterType[] {
|
||||
const stageType = getStageType(stageNumber);
|
||||
export function generateStageConfig(stageNumber: number, level: number = 1): MonsterType[] {
|
||||
const stageType = getStageType(stageNumber, level);
|
||||
const rule = StageConfigRules[stageType];
|
||||
const monsterArray: MonsterType[] = [];
|
||||
|
||||
@@ -249,7 +262,7 @@ export function generateStageConfig(stageNumber: number): MonsterType[] {
|
||||
}
|
||||
});
|
||||
|
||||
return monsterArray;
|
||||
return monsterArray;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -276,10 +289,11 @@ export function getMonsterUUIDsByType(monsterType: MonsterType): number[] {
|
||||
/**
|
||||
* 获取当前关卡对应的所有怪物UUID数组
|
||||
* @param stageNumber 关卡号
|
||||
* @param level 等级(1-5)
|
||||
* @returns 怪物UUID数组,按关卡配置顺序排列
|
||||
*/
|
||||
export function getStageMonsterUUIDs(stageNumber: number): number[] {
|
||||
const monsterTypes = generateStageConfig(stageNumber);
|
||||
export function getStageMonsterUUIDs(stageNumber: number, level: number = 1): number[] {
|
||||
const monsterTypes = generateStageConfig(stageNumber, level);
|
||||
const monsterUUIDs: number[] = [];
|
||||
|
||||
monsterTypes.forEach(monsterType => {
|
||||
@@ -297,11 +311,12 @@ export function getStageMonsterUUIDs(stageNumber: number): number[] {
|
||||
/**
|
||||
* 获取关卡怪物配置(包含UUID和增强属性)
|
||||
* @param stageNumber 关卡号
|
||||
* @param level 等级(1-5)
|
||||
* @param useRandomBuff 是否使用随机buff
|
||||
* @returns 完整的怪物配置数组
|
||||
*/
|
||||
export function getStageMonsterConfigs(stageNumber: number, useRandomBuff: boolean = true) {
|
||||
const monsterTypes = generateStageConfig(stageNumber);
|
||||
export function getStageMonsterConfigs(stageNumber: number, level: number = 1, useRandomBuff: boolean = true) {
|
||||
const monsterTypes = generateStageConfig(stageNumber, level);
|
||||
const stageMultipliers = getStageAllMultipliers(stageNumber);
|
||||
const monsterConfigs = [];
|
||||
|
||||
@@ -312,10 +327,11 @@ export function getStageMonsterConfigs(stageNumber: number, useRandomBuff: boole
|
||||
const enhancement = getMonsterEnhancement(monsterType, useRandomBuff);
|
||||
|
||||
monsterConfigs.push({
|
||||
id: `stage_${stageNumber}_${index}`,
|
||||
id: `stage_${stageNumber}_level_${level}_${index}`,
|
||||
uuid: randomUUID,
|
||||
type: monsterType,
|
||||
stageNumber: stageNumber,
|
||||
level: level,
|
||||
enhancement: enhancement,
|
||||
stageMultipliers: stageMultipliers
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user