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