fix(战斗逻辑): 修复非战斗状态下技能释放和状态同步问题

- 在 SCastSystem 中增加战斗状态检查,防止非战斗时误触发技能
- 同步 mission.in_fight 状态到 vmdata.mission_data.in_fight 以保持数据一致性
- 调整 MissionCardComp 在波次开始时正确布局卡牌槽位并分发卡牌
- 优化游戏地平线位置和 UI 布局参数
This commit is contained in:
panw
2026-03-27 09:31:40 +08:00
parent 0b20d773d2
commit a42d34b003
5 changed files with 13 additions and 3 deletions

View File

@@ -178,6 +178,9 @@ export class MissionCardComp extends CCComp {
private onNewWave() {
this.enterPreparePhase();
this.layoutCardSlots();
const cards = this.buildDrawCards();
this.dispatchCardsToSlots(cards);
}
/** 解除按钮监听,避免节点销毁后回调泄漏 */

View File

@@ -156,12 +156,14 @@ export class MissionComp extends CCComp {
to_fight(){
smc.mission.stop_spawn_mon = false;
smc.mission.in_fight=true
smc.vmdata.mission_data.in_fight = true
if (this.start_btn && this.start_btn.isValid) this.start_btn.active = false;
oops.message.dispatchEvent(GameEvent.FightStart) //GameSetMonComp 监听刷怪
}
private enterPreparePhase() {
smc.mission.in_fight = false;
smc.vmdata.mission_data.in_fight = false
smc.mission.stop_spawn_mon = true;
if (this.start_btn && this.start_btn.isValid) this.start_btn.active = true;
}
@@ -207,6 +209,7 @@ export class MissionComp extends CCComp {
smc.mission.play=false
smc.mission.pause = false;
smc.mission.in_fight = false;
smc.vmdata.mission_data.in_fight = false
if (this.start_btn && this.start_btn.isValid) this.start_btn.active = false;
this.cleanComponents()
this.clearBattlePools()