fix(map): 调整下一回合刷怪时机避免与英雄过场同帧移动

修改 autoNextPhase 逻辑,将 advanceToNextSection 从 PrepareStart 阶段移至 PrepareEnd 阶段,确保英雄归位待机约 1 秒后再生成怪物,使怪物随回合开始横幅同步登场,解决与英雄过场行军同帧移动的显示问题。
This commit is contained in:
panFD
2026-10-08 16:44:49 +08:00
parent fef913bd75
commit f4fb561319

View File

@@ -582,12 +582,15 @@ export class MissionComp extends CCComp {
private autoNextPhase() {
switch (this.currentPhase) {
case MissionPhase.PrepareStart:
// 节间过场倒计时结束:推进到下一节、停背景滚动、派发 SectionStart 刷怪,进入 PrepareEnd 自动开战
// 节间过场倒计时结束:停背景滚动、英雄归位转待机,进入 PrepareEnd 缓冲
this.stopWaveCountdown();
this.advanceToNextSection();
this.changePhase(MissionPhase.PrepareEnd);
break;
case MissionPhase.PrepareEnd:
// 先生成下一回合怪物再进 BattleStart:此时英雄已待机约 1s,
// 怪物随"第 X 回合开始"横幅从右侧跑入,避免与英雄过场行军同帧移动;
// SectionStart 同步派发 NewWave,保证 changePhase(BattleStart) 的 isBossWave 就绪
this.advanceToNextSection();
this.changePhase(MissionPhase.BattleStart);
break;
case MissionPhase.BattleStart:
@@ -854,7 +857,10 @@ export class MissionComp extends CCComp {
* 2. 不清理英雄/技能实体、不重置局内数据、不重新三选一——英雄保留并自动归位(编队排队)。
* 3. 进度实时镜像到 HUD,但不写持久存档(存档只在整关通关时推进到下一关)。
*
* 调用时机:PrepareStart 过场倒计时结束(autoNextPhase)。
* 调用时机:PrepareEnd 结束、进入 BattleStart 前(autoNextPhase)。
* Why: 过场倒计时(PrepareStart)结束时英雄刚归位转待机,若同帧刷怪会出现
* 怪物与英雄一起移动的表现;推迟到 PrepareEnd 结束刷怪,英雄已待机约 1s,
* 怪物从右侧跑入与"第 X 回合开始"横幅同步登场。
* 保证:仅 1~4 回合清场后触发,末回合(BOSS_SECTION)已走 open_Victory 结算,不会推进。
*/
private advanceToNextSection() {