feat(测试模式): 新增怪物技能测试覆盖功能并完善测试配置

修复怪物生成位置索引越界问题,通过对位置数组长度取模限制合法索引范围
新增测试模式专属的怪物技能覆盖逻辑,支持覆盖普攻及各类触发技能配置
扩展测试模式配置项,新增怪物生成数量、词缀配置以及全类型技能覆盖参数
优化 Rogue 关卡生成引擎,支持批量生成测试怪物并计算词缀属性加成
This commit is contained in:
pan
2026-06-12 16:31:32 +08:00
parent 85ab6b0507
commit 488b1632ef
3 changed files with 83 additions and 11 deletions

View File

@@ -194,6 +194,29 @@ export class Monster extends ecs.Entity {
// 最终技能等级 = 初始技能等级 + 怪物等级增量,且下限为 0
model.skills[skill.uuid] = { ...skill, lv: Math.max(0,skill.lv + mon_lv - 2), ccd: 0 };
}
// 【测试模式专属】如果有覆盖技能配置则应用
const testSkills = (this as any)._testSkills;
if (testSkills) {
if (testSkills.skill !== undefined) {
// 如果是替换普攻,通常是修改 hero.skill 字段或从 model.skills 里清除并注入
model.skills = {};
if (testSkills.skill) {
model.skills[testSkills.skill.s_uuid] = {
uuid: testSkills.skill.s_uuid,
cd: testSkills.skill.cd ?? 0,
lv: 1,
ccd: 0,
overrides: testSkills.skill.overrides
};
}
}
if (testSkills.atking !== undefined) model.atking = testSkills.atking;
if (testSkills.atked !== undefined) model.atked = testSkills.atked;
if (testSkills.dead !== undefined) model.dead = testSkills.dead;
if (testSkills.fstart !== undefined) model.fstart = testSkills.fstart;
if (testSkills.fend !== undefined) model.fend = testSkills.fend;
}
// 缓存技能射程等派生数据,减少战斗帧内重复计算
model.updateSkillDistanceCache();