From 09bc892c7283df8757a07b646d5af21ddaa263d1 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 06 十一月 2025 18:22:34 +0800
Subject: [PATCH] 164 天子的考验-客户端
---
Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs | 76 +++++++++++++++++++++++++-------------
1 files changed, 50 insertions(+), 26 deletions(-)
diff --git a/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs b/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
index 0e6a4a0..c4ee7c8 100644
--- a/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
+++ b/Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
@@ -9,18 +9,17 @@
public DeathRecordAction(BattleField _battleField, List<HB422_tagMCTurnFightObjDead> _deadPackList)
: base(RecordActionType.Death, _battleField, null)
{
- isFinish = false;
deadPackList = _deadPackList;
- }
-
- public override bool IsFinished()
- {
- return isFinish;
}
public override void Run()
{
+ if (isFinish)
+ {
+ return;
+ }
+
base.Run();
if (!isRunOnce)
@@ -29,43 +28,68 @@
bool isLastOne = false;
int index = 0;
int total = deadPackList.Count;
+
+ bool canFind = true;
+
foreach (var deadPack in deadPackList)
{
BattleObject deadObj = battleField.battleObjMgr.GetBattleObject((int)deadPack.ObjID);
- deadObj.OnDeath(() =>
+ if (null != deadObj)
{
- index++;
-
- isLastOne = index >= total;
-
- OnDeathAnimationEnd(deadObj);
-
- if (isLastOne)
+ PerformDrop(deadObj);
+ deadObj.OnDeath(() =>
{
- UniTaskExtension.DelayTime((GameObject)null, 0.3f / battleField.speedRatio, () =>
+ index++;
+
+ isLastOne = index >= total;
+
+ if (isLastOne)
{
+ // UniTaskExtension.DelayTime((GameObject)null, 0.3f / battleField.speedRatio, () =>
+ // {
isFinish = true;
- });
- }
- });
+ // });
+ }
+ });
+ }
+ else
+ {
+ canFind = false;
+ }
}
+
+ if (!canFind)
+ {
+ isFinish = true;
+ }
+
return;
}
-
}
- private void OnDeathAnimationEnd(BattleObject deadObj)
+ public override void ForceFinish()
+ {
+ isFinish = true;
+
+ // 鐩存帴缁撴潫
+ foreach (var deadPack in deadPackList)
+ {
+ BattleObject deadObj = battleField.battleObjMgr.GetBattleObject((int)deadPack.ObjID);
+ if (null != deadObj)
+ {
+ PerformDrop(deadObj);
+ }
+ }
+
+ base.ForceFinish();
+ }
+
+ private void PerformDrop(BattleObject deadObj)
{
// 鍙湁涓荤嚎鎺夎惤鐗╁搧
if (battleField.MapID == 1 || battleField.MapID == 2)
{
deadObj.PerformDrop();
}
- }
-
- public override void ForceFinish()
- {
- // 璁剧疆缁撴潫flag 璁板緱娓呯┖motionBase閲岀殑浜嬩欢
- base.ForceFinish();
}
}
\ No newline at end of file
--
Gitblit v1.8.0