78 lines
3.1 KiB
C#
78 lines
3.1 KiB
C#
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());
|
||
}
|
||
}
|
||
}
|