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

73 lines
1.8 KiB
C#

namespace Models;
/// <summary>
/// 导师数据模型 (MentorModel)
/// 设计说明:
/// 1) 改为组合式结构,不再使用单例,避免全局隐式依赖。
/// 2) 导师只保留“角色自身状态”,资金/声望等全局资源归 EconomyState 管理。
/// 3) 这样便于后续扩展多导师/多人模式或 Mod 玩法。
/// 注意事项:
/// - 构造函数不做复杂逻辑,具体初始数值交由 GameSession 初始化。
/// 未来扩展:
/// - 可加入“导师技能树/天赋树”组件,与肉鸽继承系统对接。
/// - 可加入“导师光环”组件,在系统层计算对学生的影响范围。
/// </summary>
public sealed class MentorModel
{
/// <summary>
/// 导师模式
/// </summary>
public enum MentorModeType
{
Worker, // 打工人
Manager // 管理者
}
/// <summary>
/// 核心单位数据
/// </summary>
public UnitModel Core { get; }
/// <summary>
/// 导师特有资源
/// </summary>
public MentorResources Resources { get; }
/// <summary>
/// 当前模式
/// </summary>
public MentorModeType Mode { get; set; } = MentorModeType.Worker;
/// <summary>
/// 名字(便捷访问)
/// </summary>
public string Name
{
get => Core.Name;
set => Core.Name = value;
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="name">名字</param>
public MentorModel(string name)
{
Core = new UnitModel(name);
Resources = new MentorResources();
}
}
/// <summary>
/// 导师资源组件(角色自身能量池)
/// </summary>
public sealed class MentorResources
{
/// <summary>
/// 精力值
/// </summary>
public StatusValue Energy { get; set; }
public MentorResources()
{
Energy = new StatusValue(100, 100, 0);
}
}