diff --git a/assets/script/game/map/MissionComp.ts b/assets/script/game/map/MissionComp.ts index 1cfb284a..ebc05040 100644 --- a/assets/script/game/map/MissionComp.ts +++ b/assets/script/game/map/MissionComp.ts @@ -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() {