supervisor-simulator/scripts/Core/DomainEvents.cs
wjsjwr 9c1593e717 已把 TaskSystem/SynergySystem/EconomySystem 按设计文档的“核心规则”落地成可运行逻辑,并把回合结算从 GameManager 下沉到系统与事件流上。
- 任务推进与结算:执行阶段按任务类型用属性权重计算进度、考虑角色/学科匹配、状态衰减与难度缩放,回合结束统一扣 Deadline、判定完成/失败并派发事件,同时记录署名贡献度 scripts/Core/GameSystems.cs
  - 经济结算:接收任务事件发奖惩,学术探索根据难度生成论文卡;回合结束统一扣工资并结息(经济学学科触发基础利率)scripts/Core/GameSystems.cs
  - 羁绊层数与效果:统计人群画像/职能分工堆叠,激活层级并聚合为全局 ModifierBundle 给数值解析器使用 scripts/Core/GameSystems.cs, scripts/Models/GameState.cs
  - 事件与数值解析支撑:新增领域事件与统一属性合成器,兼容羁绊/学科/特质/装备的叠加 scripts/Core/DomainEvents.cs, scripts/Core/StatResolver.cs
  - 回合结算入口调整:Review 阶段改由系统处理并发布回合结束事件 scripts/GameManager.cs
2026-01-01 00:07:16 +08:00

45 lines
869 B
C#

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