2026-04-17 12:01:50 -04:00
|
|
|
|
using SLSUtilities.General;
|
2026-04-01 12:23:27 -04:00
|
|
|
|
|
|
|
|
|
|
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());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|