关卡调整
This commit is contained in:
@@ -57,9 +57,11 @@ export class BattleMoveSystem extends ecs.ComblockSystem implements ecs.ISystemU
|
||||
if (enemyX > currentX) {
|
||||
move.direction = 1; // 向右移动
|
||||
view.node.setScale(1, 1, 1); // 面向右侧
|
||||
view.node.getChildByName("top").setScale(1, 1, 1); // 面向右侧
|
||||
} else {
|
||||
move.direction = -1; // 向左移动
|
||||
view.node.setScale(-1, 1, 1); // 面向左侧
|
||||
view.node.getChildByName("top").setScale(-1, 1, 1); // 面向左侧
|
||||
}
|
||||
|
||||
// 继续向敌人方向移动
|
||||
@@ -96,8 +98,10 @@ export class BattleMoveSystem extends ecs.ComblockSystem implements ecs.ISystemU
|
||||
// 设置朝向
|
||||
if (direction === 1) {
|
||||
view.node.setScale(1, 1, 1); // 面向右侧
|
||||
view.node.getChildByName("top").setScale(1, 1, 1); // 面向右侧
|
||||
} else {
|
||||
view.node.setScale(-1, 1, 1); // 面向左侧
|
||||
view.node.getChildByName("top").setScale(-1, 1, 1); // 面向左侧
|
||||
}
|
||||
|
||||
// 确保不会超过目标位置
|
||||
@@ -114,6 +118,7 @@ export class BattleMoveSystem extends ecs.ComblockSystem implements ecs.ISystemU
|
||||
// 到达目标位置后,面向右侧(敌人方向)
|
||||
move.direction = 1;
|
||||
view.node.setScale(1, 1, 1); // 面向右侧
|
||||
view.node.getChildByName("top").setScale(1, 1, 1); // 面向右侧
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -103,8 +103,9 @@ export class MissionMonCompComp extends CCComp { // 添加刷怪队列 - 使
|
||||
|
||||
const currentStage = smc.data.mission;
|
||||
// 使用新的肉鸽关卡配置
|
||||
const stageType = getStageType(currentStage);
|
||||
const monsterConfigs = getStageMonsterConfigs(currentStage);
|
||||
let level=smc.vmdata.mission_data.level
|
||||
const stageType = getStageType(currentStage,level);
|
||||
const monsterConfigs = getStageMonsterConfigs(currentStage,level);
|
||||
console.log(`[MissionMonComp]:第${currentStage}关 - ${stageType}类型,怪物数量: ${monsterConfigs.length}`);
|
||||
this.generateMonstersFromStageConfig(monsterConfigs);
|
||||
}
|
||||
|
||||
@@ -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