From 2d9d25786ca92d7c7864c5d204e518d33bac4f3f Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 01 十二月 2025 11:43:13 +0800
Subject: [PATCH] 125 战斗 回合变更时机改变

---
 Main/System/Battle/BattleField/BattleField.cs                          |   20 ++++++++--
 Main/System/Battle/BattleField/RecordActions/RoundChangeAction.cs      |   32 ++++++++++++++++
 Main/System/Battle/RecordPlayer/RecordActionType.cs                    |    2 +
 Main/System/Battle/BattleField/RecordActions/RoundChangeAction.cs.meta |   11 +++++
 4 files changed, 61 insertions(+), 4 deletions(-)

diff --git a/Main/System/Battle/BattleField/BattleField.cs b/Main/System/Battle/BattleField/BattleField.cs
index 983f2f6..a7a00be 100644
--- a/Main/System/Battle/BattleField/BattleField.cs
+++ b/Main/System/Battle/BattleField/BattleField.cs
@@ -334,14 +334,26 @@
     public virtual void TurnFightState(int TurnNum, int State,
         uint FuncLineID, JsonData extendData)
     {
-        round = TurnNum;
-        OnRoundChange?.Invoke(round, turnMax);
+        // var tempTurnNum = TurnNum;
+        // RoundChangeAction roundChangeAction = new RoundChangeAction(this, () =>
+        // {
+        //     round = tempTurnNum;
+        //     OnRoundChange?.Invoke(round, turnMax);
+        // });
+
+        // recordPlayer.PlayRecord(roundChangeAction);
     }
 
     public virtual void OnTurnFightObjAction(int turnNum, int ObjID)
     {
-        round = turnNum;
-        OnRoundChange?.Invoke(round, turnMax);
+        var tempTurnNum = turnNum;
+        RoundChangeAction roundChangeAction = new RoundChangeAction(this, () =>
+        {
+            round = tempTurnNum;
+            OnRoundChange?.Invoke(round, turnMax);
+        });
+
+        recordPlayer.PlayRecord(roundChangeAction);
     }
 
     public virtual void OnTurnFightState(int turnNum, int State, int FuncLineID, JsonData turnFightStateData)
diff --git a/Main/System/Battle/BattleField/RecordActions/RoundChangeAction.cs b/Main/System/Battle/BattleField/RecordActions/RoundChangeAction.cs
new file mode 100644
index 0000000..9587aa2
--- /dev/null
+++ b/Main/System/Battle/BattleField/RecordActions/RoundChangeAction.cs
@@ -0,0 +1,32 @@
+using UnityEngine;
+using System.Collections.Generic;
+using System;
+
+public class RoundChangeAction : RecordAction
+{
+	private Action roundChangeCallback;
+
+	public RoundChangeAction(BattleField _battleField, Action _roundChangeCallback = null)
+		: base(RecordActionType.RoundChange, _battleField, null)
+	{
+		roundChangeCallback = _roundChangeCallback;
+	}
+
+    public override void ForceFinish()
+    {
+		if (isFinish)
+			return;
+
+		roundChangeCallback?.Invoke();
+		isFinish = true;
+    }
+
+	public override void Run()
+	{
+		if (isFinish)
+			return;
+		base.Run();
+		roundChangeCallback?.Invoke();
+		isFinish = true;
+	}
+}
\ No newline at end of file
diff --git a/Main/System/Battle/BattleField/RecordActions/RoundChangeAction.cs.meta b/Main/System/Battle/BattleField/RecordActions/RoundChangeAction.cs.meta
new file mode 100644
index 0000000..ce15472
--- /dev/null
+++ b/Main/System/Battle/BattleField/RecordActions/RoundChangeAction.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d5654a9657402024ba4fd44796a67dc3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/Battle/RecordPlayer/RecordActionType.cs b/Main/System/Battle/RecordPlayer/RecordActionType.cs
index a2ee241..cd8f4b3 100644
--- a/Main/System/Battle/RecordPlayer/RecordActionType.cs
+++ b/Main/System/Battle/RecordPlayer/RecordActionType.cs
@@ -10,4 +10,6 @@
     BattleStart,//鎴樻枟寮�濮�
 
     DodgeFinish,//闂伩瀹屾垚
+
+    RoundChange,//鍥炲悎鍒囨崲
 }

--
Gitblit v1.8.0