更新
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
using SLSFramework.General;
|
||||
|
||||
namespace Continentis.MainGame.Character
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色生命周期事件的统一分发入口。
|
||||
/// 每个 Dispatch 方法按固定顺序触发:角色 → 装备 → Buff → 卡牌,
|
||||
/// 消除 CombatMainManager 中手动遍历各层级的冗余代码。
|
||||
/// </summary>
|
||||
public partial class CharacterBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 战斗开始时分发:角色 → 装备 → Buff → 卡牌。
|
||||
/// </summary>
|
||||
public void DispatchCombatStart()
|
||||
{
|
||||
eventSubmodule.onCombatStart.Invoke();
|
||||
equipmentSubmodule.currentEquipments.ForEach(e => e.eventSubmodule.onCombatStart.Invoke());
|
||||
combatBuffSubmodule.CombatStart();
|
||||
deckSubmodule.GetAllCards().ForEach(c => c.eventSubmodule.onCombatStart.Invoke());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 战斗结束时分发:角色 → 装备 → Buff。
|
||||
/// </summary>
|
||||
public void DispatchCombatEnd()
|
||||
{
|
||||
eventSubmodule.onCombatEnd.Invoke();
|
||||
equipmentSubmodule.currentEquipments.ForEach(e => e.eventSubmodule.onCombatEnd.Invoke());
|
||||
combatBuffSubmodule.CombatEnd();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 回合开始时分发:角色 → 装备 → Buff(含回合计数更新) → 卡牌。
|
||||
/// </summary>
|
||||
public void DispatchRoundStart()
|
||||
{
|
||||
eventSubmodule.onRoundStart.Invoke();
|
||||
equipmentSubmodule.currentEquipments.ForEach(e => e.eventSubmodule.onRoundStart.Invoke());
|
||||
combatBuffSubmodule.RoundStart();
|
||||
deckSubmodule.GetAllCards().ForEach(c => c.eventSubmodule.onRoundStart.Invoke());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 回合结束时分发:角色 → 装备 → Buff → 卡牌。
|
||||
/// </summary>
|
||||
public void DispatchRoundEnd()
|
||||
{
|
||||
eventSubmodule.onRoundEnd.Invoke();
|
||||
equipmentSubmodule.currentEquipments.ForEach(e => e.eventSubmodule.onRoundEnd.Invoke());
|
||||
combatBuffSubmodule.RoundEnd();
|
||||
deckSubmodule.GetAllCards().ForEach(c => c.eventSubmodule.onRoundEnd.Invoke());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 行动开始时分发:角色 → 装备 → Buff(含行动计数更新) → 卡牌。
|
||||
/// </summary>
|
||||
public void DispatchActionStart()
|
||||
{
|
||||
eventSubmodule.onActionStart.Invoke();
|
||||
equipmentSubmodule.currentEquipments.ForEach(e => e.eventSubmodule.onActionStart.Invoke());
|
||||
combatBuffSubmodule.ActionStart();
|
||||
deckSubmodule.GetAllCards().ForEach(c => c.eventSubmodule.onActionStart.Invoke());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 行动结束时分发:角色 → 装备 → Buff → 卡牌。
|
||||
/// </summary>
|
||||
public void DispatchActionEnd()
|
||||
{
|
||||
eventSubmodule.onActionEnd.Invoke();
|
||||
equipmentSubmodule.currentEquipments.ForEach(e => e.eventSubmodule.onActionEnd.Invoke());
|
||||
combatBuffSubmodule.ActionEnd();
|
||||
deckSubmodule.GetAllCards().ForEach(c => c.eventSubmodule.onActionEnd.Invoke());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user