supervisor-simulator/scripts/Core/DomainEvents.cs
2026-01-11 23:57:24 +08:00

70 lines
1.4 KiB
C#

using Models;
namespace Core;
/// <summary>
/// 领域事件(用于系统解耦)
/// 设计说明:
/// 1) Task/Economy/Turn 等系统通过事件通信,避免直接依赖。
/// 2) 事件只携带最小必要信息,避免模型被过度暴露。
/// 注意事项:
/// - 事件是同步派发,请避免在处理器中做耗时操作。
/// 未来扩展:
/// - 可加入“事件上下文/来源系统”等字段,便于调试。
/// </summary>
public readonly struct TaskCompletedEvent
{
/// <summary>
/// 完成的任务
/// </summary>
public TaskModel Task { get; }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="task">任务</param>
public TaskCompletedEvent(TaskModel task)
{
Task = task;
}
}
/// <summary>
/// 任务失败事件
/// </summary>
public readonly struct TaskFailedEvent
{
/// <summary>
/// 失败的任务
/// </summary>
public TaskModel Task { get; }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="task">任务</param>
public TaskFailedEvent(TaskModel task)
{
Task = task;
}
}
/// <summary>
/// 回合结束事件
/// </summary>
public readonly struct TurnEndedEvent
{
/// <summary>
/// 结束的回合数
/// </summary>
public int Turn { get; }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="turn">回合数</param>
public TurnEndedEvent(int turn)
{
Turn = turn;
}
}