feat(测试模式): 新增怪物技能测试覆盖功能并完善测试配置
修复怪物生成位置索引越界问题,通过对位置数组长度取模限制合法索引范围 新增测试模式专属的怪物技能覆盖逻辑,支持覆盖普攻及各类触发技能配置 扩展测试模式配置项,新增怪物生成数量、词缀配置以及全类型技能覆盖参数 优化 Rogue 关卡生成引擎,支持批量生成测试怪物并计算词缀属性加成
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user