feat(mission): 更新关卡显示与回合提示逻辑
1. 调整关卡UI文本格式,添加回合数显示并缩小字体 2. 新增监听回合进度数据源,更新注释描述 3. 重构阶段过滤逻辑,补充PrepareStart/End阶段的排除 4. 将回合开始提示移至BattleStart阶段播放,优化提示显示时机 5. 修正回合管理相关注释与逻辑,移除旧的首回合延迟提示
This commit is contained in:
@@ -5746,10 +5746,10 @@
|
|||||||
"b": 255,
|
"b": 255,
|
||||||
"a": 255
|
"a": 255
|
||||||
},
|
},
|
||||||
"_string": "第 {{0}}-{{1}}关",
|
"_string": "第 {{0}} - {{1}}关 {{2}}回合",
|
||||||
"_horizontalAlign": 1,
|
"_horizontalAlign": 1,
|
||||||
"_verticalAlign": 1,
|
"_verticalAlign": 1,
|
||||||
"_actualFontSize": 26,
|
"_actualFontSize": 17,
|
||||||
"_fontSize": 25,
|
"_fontSize": 25,
|
||||||
"_fontFamily": "Arial",
|
"_fontFamily": "Arial",
|
||||||
"_lineHeight": 40,
|
"_lineHeight": 40,
|
||||||
@@ -5809,7 +5809,8 @@
|
|||||||
"labelType": "cc.Label",
|
"labelType": "cc.Label",
|
||||||
"watchPathArr": [
|
"watchPathArr": [
|
||||||
"data.stage_progress.chapter ",
|
"data.stage_progress.chapter ",
|
||||||
"data.stage_progress.stage"
|
"data.stage_progress.stage",
|
||||||
|
"data.stage_progress.section"
|
||||||
],
|
],
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -457,9 +457,12 @@ export class MissionComp extends CCComp {
|
|||||||
|
|
||||||
const phaseName = MissionComp.PhaseNameMap[targetPhase] || "未知";
|
const phaseName = MissionComp.PhaseNameMap[targetPhase] || "未知";
|
||||||
|
|
||||||
// 播放状态切换提示栏动效(过滤掉 None、Prepare 准备阶段、Battle 战斗中阶段)
|
// 播放状态切换提示栏动效(过滤掉 None、Prepare/PrepareStart/PrepareEnd 准备阶段、Battle 战斗中阶段;
|
||||||
|
// 回合提示统一由 BattleStart 的"第 X 回合开始"承担,准备相关阶段不弹提示)
|
||||||
if (targetPhase !== MissionPhase.None &&
|
if (targetPhase !== MissionPhase.None &&
|
||||||
targetPhase !== MissionPhase.Prepare &&
|
targetPhase !== MissionPhase.Prepare &&
|
||||||
|
targetPhase !== MissionPhase.PrepareStart &&
|
||||||
|
targetPhase !== MissionPhase.PrepareEnd &&
|
||||||
targetPhase !== MissionPhase.Battle) {
|
targetPhase !== MissionPhase.Battle) {
|
||||||
this.playTooltipAnim(phaseName);
|
this.playTooltipAnim(phaseName);
|
||||||
}
|
}
|
||||||
@@ -502,6 +505,8 @@ export class MissionComp extends CCComp {
|
|||||||
case MissionPhase.BattleStart:
|
case MissionPhase.BattleStart:
|
||||||
// 触发战斗开始技能(fstart)
|
// 触发战斗开始技能(fstart)
|
||||||
this.triggerHeroBattleSkills();
|
this.triggerHeroBattleSkills();
|
||||||
|
// 回合开始提示:"第 X 回合开始"(准备阶段不显示,战斗开始才播)
|
||||||
|
this.playTooltipAnim(`第 ${this.currentWave} 回合开始`);
|
||||||
// Boss 预警:Boss 同步场立即登场(eta=0)
|
// Boss 预警:Boss 同步场立即登场(eta=0)
|
||||||
if (this.isBossWave) {
|
if (this.isBossWave) {
|
||||||
oops.message.dispatchEvent(GameEvent.BossWarning, {
|
oops.message.dispatchEvent(GameEvent.BossWarning, {
|
||||||
@@ -924,12 +929,12 @@ export class MissionComp extends CCComp {
|
|||||||
// ======================== 回合管理 ========================
|
// ======================== 回合管理 ========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新一节事件回调(SectionStart 时由 MissionMonComp 派发,wave = 小节号):
|
* 新一回合事件回调(SectionStart 时由 MissionMonComp 派发,wave = 回合号):
|
||||||
* 1. 更新当前节号与 HUD 进度。
|
* 1. 更新当前回合号与 HUD 进度。
|
||||||
* 2. 按节配置判定是否含 Boss(驱动 Boss 预警)。
|
* 2. 按回合配置判定是否含 Boss(驱动 Boss 预警)。
|
||||||
* 3. 首回合延迟播放回合提示。
|
|
||||||
*
|
*
|
||||||
* 注意:节间推进在 autoNextPhase(PrepareStart) 完成,此处仅同步显示与 Boss 预警。
|
* 注意:回合推进在 autoNextPhase(PrepareStart) 完成,此处仅同步显示与 Boss 预警;
|
||||||
|
* "第 X 回合开始"提示改在 BattleStart(战斗开始)时播放,准备阶段不显示。
|
||||||
*
|
*
|
||||||
* @param event 事件名
|
* @param event 事件名
|
||||||
* @param data { wave: number, bossWave?: boolean }
|
* @param data { wave: number, bossWave?: boolean }
|
||||||
@@ -938,18 +943,9 @@ export class MissionComp extends CCComp {
|
|||||||
const wave = Number(data?.wave ?? 0);
|
const wave = Number(data?.wave ?? 0);
|
||||||
if (wave <= 0) return;
|
if (wave <= 0) return;
|
||||||
|
|
||||||
// Boss 预警:本节怪物列表含 Boss 时置位(Boss 节 Boss 延迟登场,BattleStart 时发预警)
|
// Boss 预警:本回合怪物列表含 Boss 时置位(Boss 回合 Boss 延迟登场,BattleStart 时发预警)
|
||||||
this.isBossWave = !!data?.bossWave;
|
this.isBossWave = !!data?.bossWave;
|
||||||
|
|
||||||
if (this.currentPhase === MissionPhase.Prepare) {
|
|
||||||
// 首回合:延迟一点播放提示,避免被开始游戏的 loading 遮挡
|
|
||||||
this.scheduleOnce(() => {
|
|
||||||
if (this.currentPhase === MissionPhase.Prepare) {
|
|
||||||
this.playTooltipAnim(`第 ${wave} 节`);
|
|
||||||
}
|
|
||||||
}, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.currentWave = wave;
|
this.currentWave = wave;
|
||||||
smc.vmdata.mission_data.level = wave;
|
smc.vmdata.mission_data.level = wave;
|
||||||
// 金币改为怪物死亡掉落(见 HeroAtkSystem),不再每回合固定发放
|
// 金币改为怪物死亡掉落(见 HeroAtkSystem),不再每回合固定发放
|
||||||
|
|||||||
Reference in New Issue
Block a user