地图修改
This commit is contained in:
@@ -27,7 +27,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
isBoss: boolean,
|
||||
level: number,
|
||||
affixes?: any[],
|
||||
buffData?: any[] // 使用BuffAttr格式的buff数据
|
||||
buffData?: any[], // 使用BuffAttr格式的buff数据
|
||||
rogueHp?: number, // 肉鸽固定血量
|
||||
rogueAttack?: number // 肉鸽固定攻击力
|
||||
}> = [];
|
||||
private isSpawning: boolean = false;// 是否正在生成怪物
|
||||
private spawnInterval: number = 0.5; // 每个怪物生成间隔时间
|
||||
@@ -106,12 +108,8 @@ export class MissionMonCompComp extends CCComp {
|
||||
const currentWave = smc.vmdata.mission_data.current_wave;
|
||||
const monsterLevel = RogueConfig.getMonsterLevel(currentWave);
|
||||
|
||||
// 处理非战斗波次
|
||||
if (waveType === RogueWaveType.SHOP || waveType === RogueWaveType.REST) {
|
||||
console.log(`[MissionMonComp]:${waveType}波次,无需生成怪物`);
|
||||
// 可以在这里触发商店或休息事件
|
||||
return;
|
||||
}
|
||||
// 固定9波模式,所有波次都是战斗波次
|
||||
console.log(`[MissionMonComp]:第${currentWave}波 - ${waveType}战斗波次`);
|
||||
|
||||
if (!monsters || monsters.length === 0) {
|
||||
console.warn(`[MissionMonComp]:肉鸽波次配置中没有怪物信息`);
|
||||
@@ -119,7 +117,7 @@ export class MissionMonCompComp extends CCComp {
|
||||
}
|
||||
|
||||
monsters.forEach((monsterGroup: any) => {
|
||||
const { uuid, count, affixes, enhancedStats, buffData, isBoss } = monsterGroup;
|
||||
const { uuid, count, affixes, enhancedStats, buffData, isBoss, rogueHp, rogueAttack } = monsterGroup;
|
||||
|
||||
// 为每个怪物组生成指定数量的怪物
|
||||
for (let i = 0; i < count; i++) {
|
||||
@@ -130,7 +128,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
isBoss || false,
|
||||
monsterLevel,
|
||||
affixes,
|
||||
buffData // 现在传递buffData而不是enhancedStats和specialEffects
|
||||
buffData, // 现在传递buffData而不是enhancedStats和specialEffects
|
||||
rogueHp, // 传递固定血量
|
||||
rogueAttack // 传递固定攻击力
|
||||
);
|
||||
}
|
||||
});
|
||||
@@ -170,7 +170,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
isBoss: boolean = false,
|
||||
level: number = 1,
|
||||
affixes?: any[],
|
||||
buffData?: any[]
|
||||
buffData?: any[],
|
||||
rogueHp?: number,
|
||||
rogueAttack?: number
|
||||
) {
|
||||
this.monsterQueue.push({
|
||||
uuid: uuid,
|
||||
@@ -178,7 +180,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
isBoss: isBoss,
|
||||
level: level,
|
||||
affixes: affixes,
|
||||
buffData: buffData
|
||||
buffData: buffData,
|
||||
rogueHp: rogueHp,
|
||||
rogueAttack: rogueAttack
|
||||
});
|
||||
}
|
||||
|
||||
@@ -194,7 +198,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
monsterData.isBoss,
|
||||
false,
|
||||
monsterData.level,
|
||||
monsterData.buffData
|
||||
monsterData.buffData,
|
||||
monsterData.rogueHp,
|
||||
monsterData.rogueAttack
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -205,19 +211,26 @@ export class MissionMonCompComp extends CCComp {
|
||||
is_boss: boolean = false,
|
||||
is_call: boolean = false,
|
||||
lv: number = 1,
|
||||
buffData?: any[]
|
||||
buffData?: any[],
|
||||
rogueHp?: number,
|
||||
rogueAttack?: number
|
||||
) {
|
||||
let mon = ecs.getEntity<Monster>(Monster);
|
||||
let scale = -1;
|
||||
let pos: Vec3 = v3(MonSet[i].pos);
|
||||
|
||||
// 生成怪物,传递词条buff数据
|
||||
mon.load(pos, scale, uuid, is_boss, is_call, lv, buffData);
|
||||
// 生成怪物,传递词条buff数据和肉鸽固定数值
|
||||
mon.load(pos, scale, uuid, is_boss, is_call, lv, buffData, rogueHp, rogueAttack);
|
||||
|
||||
// 如果有词条buff数据,记录到控制台
|
||||
if (buffData && buffData.length > 0) {
|
||||
console.log(`[MissionMonComp]: 怪物 ${uuid} 获得肉鸽词条Buff:`, buffData);
|
||||
}
|
||||
|
||||
// 如果有肉鸽固定数值,记录到控制台
|
||||
if (rogueHp !== undefined && rogueAttack !== undefined) {
|
||||
console.log(`[MissionMonComp]: 怪物 ${uuid} 使用肉鸽固定数值 - HP: ${rogueHp}, 攻击: ${rogueAttack}`);
|
||||
}
|
||||
}
|
||||
/** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */
|
||||
reset() {
|
||||
|
||||
Reference in New Issue
Block a user