地图修改

This commit is contained in:
panfudan
2025-07-28 00:14:20 +08:00
parent 4bd2e5566a
commit 48eaa6d1ad
39 changed files with 6805 additions and 2484 deletions

View File

@@ -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() {