From 3af0d67c58acff1e066d8f7902f9747fbaf51b62 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 10 十月 2025 16:22:20 +0800
Subject: [PATCH] 125 战斗 buff支持多个buff同时释放
---
Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs | 29 ++++++++++++++++++-----------
Main/System/Battle/Buff/BattleObjectBuffMgr.cs | 19 +++++++++++++++----
2 files changed, 33 insertions(+), 15 deletions(-)
diff --git a/Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs b/Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs
index 7f3ce1b..3ce6331 100644
--- a/Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs
+++ b/Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs
@@ -4,23 +4,23 @@
public class BuffMountAction : RecordAction
{
- protected HB428_tagSCBuffRefresh hB428_TagSCBuffRefresh;
+ protected List<HB428_tagSCBuffRefresh> buffList;
protected Action onComplete;
- public BuffMountAction(BattleField _battleField, BattleObject _battleObj, HB428_tagSCBuffRefresh vNetData, Action _onComplete)
- : base(RecordActionType.BuffMount, _battleField, _battleObj)
+ public BuffMountAction(BattleField _battleField, List<HB428_tagSCBuffRefresh> buffPackList, Action _onComplete = null)
+ : base(RecordActionType.Death, _battleField, null)
{
isFinish = false;
- hB428_TagSCBuffRefresh = vNetData;
+ buffList = buffPackList;
onComplete = _onComplete;
}
+
public override bool IsFinished()
{
return isFinish;
}
-
public override void Run()
{
@@ -28,17 +28,19 @@
if (!isRunOnce)
{
- SkillConfig skillConfig = SkillConfig.Get((int)hB428_TagSCBuffRefresh.SkillID);
- if (null != skillConfig)
+ foreach (var hB428_TagSCBuffRefresh in buffList)
{
- // 椋樺瓧
- battleObject.heroInfoBar.ShowTips(skillConfig.SkillName);
+ SkillConfig skillConfig = SkillConfig.Get((int)hB428_TagSCBuffRefresh.SkillID);
+ BattleObject obj = battleField.battleObjMgr.GetBattleObject((int)hB428_TagSCBuffRefresh.ObjID);
+ if (null != skillConfig && obj != null)
+ {
+ // 椋樺瓧
+ obj.heroInfoBar.ShowTips(skillConfig.SkillName);
+ }
}
-
// 鍔燽uff(onComplete鍐欎簡)
onComplete?.Invoke();
-
isFinish = true;
return;
@@ -48,6 +50,11 @@
public override void ForceFinish()
{
+ if (isFinish)
+ {
+ return;
+ }
+
// 1甯у氨缁撴潫浜� 涓嶇
base.ForceFinish();
}
diff --git a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
index 2a2b56f..2143f97 100644
--- a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
+++ b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -93,7 +93,7 @@
}
// 鍒锋柊buff
- public void RefreshBuff(HB428_tagSCBuffRefresh vNetData)
+ public void RefreshBuff(HB428_tagSCBuffRefresh vNetData, bool insert = false)
{
SkillConfig skillConfig = SkillConfig.Get((int)vNetData.SkillID);
@@ -114,9 +114,9 @@
buffDataDict.Add(vNetData.BuffID, vNetData);
}
- if (isNew)
+ if (vNetData.IsAdd != 0)
{
- BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, battleObject, vNetData, () =>
+ BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, new List<HB428_tagSCBuffRefresh>(){ vNetData}, () =>
{
if (null != skillConfig && skillConfig.BuffEffect > 0)
{
@@ -135,7 +135,14 @@
}
battleObject.heroInfoBar.RefreshBuff(buffDataDict.Values.ToList());
});
- battleObject.battleField.recordPlayer.PlayRecord(buffMountAction);
+ if (insert)
+ {
+ battleObject.battleField.recordPlayer.ImmediatelyPlay(buffMountAction);
+ }
+ else
+ {
+ battleObject.battleField.recordPlayer.PlayRecord(buffMountAction);
+ }
}
else
{
@@ -144,4 +151,8 @@
}
}
+ public void InsertBuff(HB428_tagSCBuffRefresh vNetData)
+ {
+ RefreshBuff(vNetData, true);
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0