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