using System; namespace Models; /// /// 雇员/合作人数据模型 (StaffModel) /// 设计说明: /// 1) 覆盖“博后/小老师”等非学生角色,强调长期合作与野心值。 /// 2) 继续复用 UnitModel 组件,保证与学生/导师统一的数据接口。 /// 注意事项: /// - Staff 行为逻辑应由系统层决定(例如背刺/跳槽)。 /// 未来扩展: /// - 可加入“合作者关系网”和“派系归属”。 /// public sealed class StaffModel { /// /// 职员类型 /// public enum StaffType { PostDoc, // 博士后 JuniorFaculty // 青年教师 } /// /// 核心单位数据 /// public UnitModel Core { get; } /// /// 职员类型 /// public StaffType Type { get; private set; } /// /// 动机数据 /// public StaffMotivation Motivation { get; } /// /// 名字(便捷访问) /// public string Name { get => Core.Name; set => Core.Name = value; } /// /// 构造函数 /// /// 名字 /// 类型 /// 随机数生成器 public StaffModel(string name, StaffType type, Random random = null) { Core = new UnitModel(name, random); Type = type; Motivation = new StaffMotivation(); } } /// /// 职员动机组件 /// public sealed class StaffMotivation { /// /// 野心 /// public StatusValue Ambition { get; set; } = new(50, 100, 0); /// /// 忠诚度 /// public StatusValue Loyalty { get; set; } = new(70, 100, 0); /// /// 合同剩余回合 /// public StatusValue ContractTurns { get; set; } = new(6, 12, 0); }