| Main/System/Battle/ArenaBattleWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/BaseBattleWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/BattleField/BattleField.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/BattleField/RecordActions/BattleStartAction.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/BoneFieldBattleWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/StoryBossBattleWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Battle/TianziBillboradBattleWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Settlement/BattleSettlementManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/System/Battle/ArenaBattleWin.cs
@@ -47,6 +47,7 @@ { base.OnPreOpen(); MainWin.TabChangeEvent += OnTabChangeEvent; UIManager.Instance.OnOpenWindow += OnOpenWindow; bool isOpenBattleChangeTab = IsOpenBattleChangeTab(); transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 130 : 0, 0); if (isOpenBattleChangeTab) @@ -57,12 +58,14 @@ { UIManager.Instance.CloseWindow<MainWin>(); } isClickSkip = false; } protected override void OnPreClose() { base.OnPreClose(); MainWin.TabChangeEvent -= OnTabChangeEvent; UIManager.Instance.OnOpenWindow -= OnOpenWindow; bool isOpenBattleChangeTab = IsOpenBattleChangeTab(); if (isOpenBattleChangeTab) { @@ -72,8 +75,51 @@ { UIManager.Instance.OpenWindow<MainWin>(); } if (isClickSkip) { isClickSkip = false; TryPass(); } } void OnOpenWindow(UIBase win) { if (win is ArenaBattleVictoryWin || win is ArenaBattleFailWin) { isClickSkip = false; } } bool isClickSkip = false; protected override void OnClickPass() { if (!IsPass()) return; isClickSkip = true; clickTime = Time.time; // 记录点击时间 battleField.ForceFinish(); } float stayTime = 2f; float clickTime = 0f; void LateUpdate() { if (isClickSkip && Time.time - clickTime >= stayTime) { isClickSkip = false; TryPass(); } } private void TryPass() { if (UIManager.Instance.IsOpened<ArenaBattleVictoryWin>() || UIManager.Instance.IsOpened<ArenaBattleFailWin>()) return; CloseWindow(); Debug.LogError($"OnBattleEnd 异常关闭"); BattleSettlementManager.Instance.WinShowOver(BattleConst.ArenaBattleField); } private void OnTabChangeEvent() { UIManager.Instance.CloseWindow<ArenaBattleWin>(); Main/System/Battle/BaseBattleWin.cs
@@ -200,12 +200,24 @@ public bool IsPass() { if (null == battleField) return false; return true; // 检查是否为永久特权卡玩家 bool hasForeverPrivilege = InvestModel.Instance.IsInvested(InvestModel.foreverCardType); if (!hasForeverPrivilege && !FuncOpen.Instance.IsFuncOpen(BattleManager.Instance.passFuncId, true)) string battleFieldName = battleField.ToString(); if (!hasForeverPrivilege && !FuncOpen.Instance.IsFuncOpen(BattleManager.Instance.passFuncId)) { if (battleFieldName != BattleConst.StoryBossBattleField) { //等级达到20级后解锁或开通终身特权解锁 SysNotifyMgr.Instance.ShowTip("BattlePass2"); } else { FuncOpen.Instance.ProcessorFuncErrorTip(BattleManager.Instance.passFuncId); } return false; } int passRound = BattleManager.Instance.defaultPassRound; var name = battleField.ToString(); @@ -254,7 +266,16 @@ int realPassRound = passRound + 1; // 配置是超过x回合可以跳,意味着x+1回合可以跳 if (nowRound < realPassRound) { SysNotifyMgr.Instance.ShowTip("BattlePass", realPassRound - nowRound); if (battleFieldName != BattleConst.StoryBossBattleField) { //%s0回合后可跳过,开通终身特权立即跳过 SysNotifyMgr.Instance.ShowTip("BattlePass1", realPassRound - nowRound); } else { SysNotifyMgr.Instance.ShowTip("BattlePass", realPassRound - nowRound); } return false; } } Main/System/Battle/BattleField/BattleField.cs
@@ -273,7 +273,7 @@ // 清理死亡处理记录 processingDeathObjIds.Clear(); // 清空当前战场的血量记录 if (BattleHeroInfoBar.largestPackUID.ContainsKey(guid)) { @@ -303,7 +303,7 @@ } if (recordPlayer == null || battleObjMgr == null) return; recordPlayer.Run(); battleObjMgr.Run(); battleEffectMgr.Run(); @@ -315,7 +315,7 @@ } operationAgent.Run(); // 触发 UI 层的更新回调 OnBattleRun?.Invoke(); } @@ -475,7 +475,7 @@ { // 过滤掉正在处理死亡的角色,避免重复处理 List<BattleDeadPack> validDeadList = new List<BattleDeadPack>(); foreach (var deadPack in deadPackList) { var objID = deadPack.deadPack.ObjID; @@ -485,21 +485,21 @@ // 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) { @@ -583,7 +583,7 @@ { obj.layerMgr.UpdateLayer(); } battleRootNode.SetSortingOrder(); // RendererAdjuster[] adjusters = battleRootNode.GetComponentsInChildren<RendererAdjuster>(true); // if (null != adjusters) @@ -681,7 +681,10 @@ IsBattleFinish = true; if (!string.IsNullOrEmpty(guid)) { Debug.Log($"OnBattleEnd guid {guid}"); } //提供外部 胜利等奖励显示 EventBroadcast.Instance.Broadcast<string, JsonData>(EventName.BATTLE_END, guid, turnFightStateData); }); @@ -698,10 +701,10 @@ battleObjMgr.DestroyTeam(BattleCamp.Blue); SetBattleStartState(); SetBattleMode(BattleMode.Stop); // 清理死亡处理记录 processingDeathObjIds.Clear(); // 清空当前战场的血量记录 if (BattleHeroInfoBar.largestPackUID.ContainsKey(guid)) { @@ -730,7 +733,7 @@ battleObjMgr.DestroyTeam(BattleCamp.Blue); BattleManager.Instance.ClearStoryQueue(); SetBattleStartState(); // 清理死亡处理记录 processingDeathObjIds.Clear(); } @@ -764,7 +767,7 @@ { recordPlayer.ForceFinish(); } //暂停的原因有很多,需要检查各种状态 protected virtual bool CanResumeGame() Main/System/Battle/BattleField/RecordActions/BattleStartAction.cs
@@ -41,6 +41,10 @@ UniTaskExtension.DelayTime((GameObject)null, 1f, () => { if (battleField ==null|| battleField.battleRootNode == null|| battleField.battleRootNode.battleStartNode == null) { return; } battleField.battleRootNode.battleStartNode.SetActive(false); StartBattleCallback(); }); Main/System/Battle/BoneFieldBattleWin.cs
@@ -18,6 +18,7 @@ { base.OnPreOpen(); MainWin.TabChangeEvent += OnTabChangeEvent; UIManager.Instance.OnOpenWindow += OnOpenWindow; bool isOpenBattleChangeTab = IsOpenBattleChangeTab(); transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 130 : 0, 0); if (isOpenBattleChangeTab) @@ -28,6 +29,7 @@ { UIManager.Instance.CloseWindow<MainWin>(); } isClickSkip = false; } protected override void OnPreClose() @@ -35,6 +37,7 @@ base.OnPreClose(); MainWin.TabChangeEvent -= OnTabChangeEvent; UIManager.Instance.OnOpenWindow -= OnOpenWindow; bool isOpenBattleChangeTab = IsOpenBattleChangeTab(); if (isOpenBattleChangeTab) { @@ -54,8 +57,53 @@ bossBattleObject = null; } if (isClickSkip) { isClickSkip = false; TryPass(); } } void OnOpenWindow(UIBase win) { if (win is BoneBattleVictoryWin || win is BoneBattleFailWin) { isClickSkip = false; } } bool isClickSkip = false; protected override void OnClickPass() { if (!IsPass()) return; isClickSkip = true; clickTime = Time.time; // 记录点击时间 battleField.ForceFinish(); } float stayTime = 2f; float clickTime = 0f; void LateUpdate() { if (isClickSkip && Time.time - clickTime >= stayTime) { isClickSkip = false; TryPass(); } } private void TryPass() { if (UIManager.Instance.IsOpened<BoneBattleVictoryWin>() || UIManager.Instance.IsOpened<BoneBattleFailWin>()) return; CloseWindow(); Debug.LogError($"OnBattleEnd 异常关闭"); BattleSettlementManager.Instance.WinShowOver(BattleConst.BoneBattleField); } private void OnTabChangeEvent() { UIManager.Instance.CloseWindow<BoneFieldBattleWin>(); @@ -142,7 +190,7 @@ { // Debug.LogError("OnDamageTaken 被调用 调用者是 " + info.battleHurtParam.caster.casterObj?.teamHero.name + " 对象 " + info.battleHurtParam.hurter.hurtObj?.teamHero.name); base.OnDamageTaken(info); if (battleField == null || info.battleFieldGuid != battleField.guid) return; Main/System/Battle/StoryBossBattleWin.cs
@@ -1,4 +1,5 @@ using System.Collections.Generic; using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; @@ -22,14 +23,15 @@ protected override void OnPreOpen() { base.OnPreOpen(); UIManager.Instance.OnOpenWindow += OnOpenWindow; UIManager.Instance.CloseWindow<MainWin>(); isClickSkip = false; } protected override void OnPreClose() { base.OnPreClose(); UIManager.Instance.OnOpenWindow -= OnOpenWindow; if (!UIManager.Instance.IsOpened<MainWin>()) UIManager.Instance.OpenWindow<MainWin>(); @@ -38,8 +40,52 @@ bossBattleObject.buffMgr.onBuffChanged -= OnBuffChanged; bossBattleObject = null; } if (isClickSkip) { isClickSkip = false; TryPass(); } } bool isClickSkip = false; protected override void OnClickPass() { if (!IsPass()) return; isClickSkip = true; clickTime = Time.time; // 记录点击时间 battleField.ForceFinish(); } void OnOpenWindow(UIBase win) { if (win is BattleVictoryWin || win is BattleFailWin) { isClickSkip = false; } } float stayTime = 2f; float clickTime = 0f; void LateUpdate() { if (isClickSkip && Time.time - clickTime >= stayTime) { isClickSkip = false; TryPass(); } } private void TryPass() { if (UIManager.Instance.IsOpened<BattleVictoryWin>() || UIManager.Instance.IsOpened<BattleFailWin>()) return; CloseWindow(); Debug.LogError($"OnBattleEnd 异常关闭"); BattleSettlementManager.Instance.WinShowOver(BattleConst.StoryBossBattleField); } protected override void OnCreateBattleField(string guid, BattleField field) { if (field is StoryBossBattleField) Main/System/Battle/TianziBillboradBattleWin.cs
@@ -28,6 +28,7 @@ TianziBillboradManager.Instance.OnUpdateBarInfoEvent += OnUpdateBarInfoEvent; TianziBillboradManager.Instance.PlayUiEffectAction += OnPlayUiEffectAction; MainWin.TabChangeEvent += OnTabChangeEvent; UIManager.Instance.OnOpenWindow += OnOpenWindow; bool isOpenBattleChangeTab = IsOpenBattleChangeTab(); transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 130 : 0, 0); if (isOpenBattleChangeTab) @@ -55,6 +56,7 @@ TianziBillboradManager.Instance.OnUpdateBarInfoEvent -= OnUpdateBarInfoEvent; TianziBillboradManager.Instance.PlayUiEffectAction -= OnPlayUiEffectAction; MainWin.TabChangeEvent -= OnTabChangeEvent; UIManager.Instance.OnOpenWindow -= OnOpenWindow; bool isOpenBattleChangeTab = IsOpenBattleChangeTab(); if (isOpenBattleChangeTab) { @@ -81,14 +83,23 @@ } } void OnOpenWindow(UIBase win) { if (win is TianziBillboradVictoryWin) { isClickSkip = false; } } bool isClickSkip = false; protected override void OnClickPass() { if (!IsPass()) return; battleField.ForceFinish(); isClickSkip = true; clickTime = Time.time; // 记录点击时间 battleField.ForceFinish(); } float stayTime = 2f; @@ -104,12 +115,12 @@ private void TryPass() { if (!UIManager.Instance.IsOpened<TianziBillboradVictoryWin>()) { CloseWindow(); BattleSettlementManager.Instance.WinShowOver(BattleConst.TianziBillboradBattleField); TianziBillboradManager.Instance.isSweepVictory = false; } if (UIManager.Instance.IsOpened<TianziBillboradVictoryWin>()) return; CloseWindow(); Debug.LogError($"OnBattleEnd 异常关闭"); BattleSettlementManager.Instance.WinShowOver(BattleConst.TianziBillboradBattleField); TianziBillboradManager.Instance.isSweepVictory = false; } private void OnUpdateBarInfoEvent(ulong loaclNowHunt, ulong loaclMaxHp, int loaclHpNum) Main/System/Settlement/BattleSettlementManager.cs
@@ -108,20 +108,29 @@ { if (string.Empty == _guid) return; Debug.Log($"OnBattleEnd 结算 guid {_guid}"); var battle = BattleManager.Instance.GetBattleField(_guid); if (battle == null) return; var battleName = battle.ToString(); battleSettlementDic[battleName] = _data; if (battleAwardDic.ContainsKey(battleName)) try { //合并战报和结算数据 JsonData extendData = battleAwardDic[battleName]; foreach (var key in extendData.Keys) battleSettlementDic[battleName] = _data; if (battleAwardDic.ContainsKey(battleName)) { _data[key] = extendData[key]; //合并战报和结算数据 JsonData extendData = battleAwardDic[battleName]; foreach (var key in extendData.Keys) { _data[key] = extendData[key]; } } } catch (Exception e) { Debug.LogError(e.ToString()); } string activeBattleName = BattleManager.Instance.GetActiveBattleName();