| | |
| | | |
| | | // 清理死亡处理记录 |
| | | processingDeathObjIds.Clear(); |
| | | |
| | | |
| | | // 清空当前战场的血量记录 |
| | | if (BattleHeroInfoBar.largestPackUID.ContainsKey(guid)) |
| | | { |
| | |
| | | } |
| | | if (recordPlayer == null || battleObjMgr == null) |
| | | return; |
| | | |
| | | |
| | | recordPlayer.Run(); |
| | | battleObjMgr.Run(); |
| | | battleEffectMgr.Run(); |
| | |
| | | } |
| | | |
| | | operationAgent.Run(); |
| | | |
| | | |
| | | // 触发 UI 层的更新回调 |
| | | OnBattleRun?.Invoke(); |
| | | } |
| | |
| | | { |
| | | // 过滤掉正在处理死亡的角色,避免重复处理 |
| | | List<BattleDeadPack> validDeadList = new List<BattleDeadPack>(); |
| | | |
| | | |
| | | foreach (var deadPack in deadPackList) |
| | | { |
| | | var objID = deadPack.deadPack.ObjID; |
| | |
| | | // Debug.LogWarning($"OnObjsDead: 角色正在处理死亡,忽略重复死亡消息 ObjID={objID}"); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | BattleObject battleObj = battleObjMgr.GetBattleObject((int)objID); |
| | | if (battleObj == null) |
| | | { |
| | | Debug.LogError($"OnObjsDead: 找不到角色 ObjID={objID}"); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | // 添加到处理中列表 |
| | | processingDeathObjIds.Add(objID); |
| | | validDeadList.Add(deadPack); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | // 只处理有效的死亡消息 |
| | | if (validDeadList.Count > 0) |
| | | { |
| | |
| | | { |
| | | obj.layerMgr.UpdateLayer(); |
| | | } |
| | | |
| | | |
| | | battleRootNode.SetSortingOrder(); |
| | | // RendererAdjuster[] adjusters = battleRootNode.GetComponentsInChildren<RendererAdjuster>(true); |
| | | // if (null != adjusters) |
| | |
| | | |
| | | IsBattleFinish = true; |
| | | |
| | | |
| | | if (!string.IsNullOrEmpty(guid)) |
| | | { |
| | | Debug.Log($"OnBattleEnd guid {guid}"); |
| | | } |
| | | //提供外部 胜利等奖励显示 |
| | | EventBroadcast.Instance.Broadcast<string, JsonData>(EventName.BATTLE_END, guid, turnFightStateData); |
| | | }); |
| | |
| | | battleObjMgr.DestroyTeam(BattleCamp.Blue); |
| | | SetBattleStartState(); |
| | | SetBattleMode(BattleMode.Stop); |
| | | |
| | | |
| | | // 清理死亡处理记录 |
| | | processingDeathObjIds.Clear(); |
| | | |
| | | |
| | | // 清空当前战场的血量记录 |
| | | if (BattleHeroInfoBar.largestPackUID.ContainsKey(guid)) |
| | | { |
| | |
| | | battleObjMgr.DestroyTeam(BattleCamp.Blue); |
| | | BattleManager.Instance.ClearStoryQueue(); |
| | | SetBattleStartState(); |
| | | |
| | | |
| | | // 清理死亡处理记录 |
| | | processingDeathObjIds.Clear(); |
| | | } |
| | |
| | | { |
| | | recordPlayer.ForceFinish(); |
| | | } |
| | | |
| | | |
| | | |
| | | //暂停的原因有很多,需要检查各种状态 |
| | | protected virtual bool CanResumeGame() |