using Godot; using System; namespace Models; /// /// 所有角色的基类,无论是导师、学生还是博后。 /// public class UnitModel { public Guid Id { get; private set; } = Guid.NewGuid(); public string Name { get; set; } // 基础属性 /// /// 学术能力,影响科研进度 /// public PropertyValue Academic {get; set;} /// /// 工程能力,影响实验进度 /// public PropertyValue Engineering {get; set;} /// /// 写作能力,影响论文发表 /// public PropertyValue Writing {get; set;} /// /// 财务能力,影响资金相关任务 /// public PropertyValue Financial {get; set;} /// /// 社交能力 /// public PropertyValue Social {get; set;} /// /// 行动力,影响各种行为的效率和能动性 /// public PropertyValue Activation {get; set;} // 状态属性 /// /// 压力值 /// public StatusValue Stress {get; set;} /// /// 精神值 (Sanity) / 抗压能力 /// 范围 0-100。过低会导致崩溃(Breakdown)。 /// public StatusValue Sanity { get; set; } /// /// 情绪值,影响工作效率 /// public PropertyValue Mood {get; set;} /// /// 移动速度 /// public float MoveSpeed {get; set;} // 局内属性 public Vector2I TargetPosition {get; set;} public Vector2I CurrentPosition {get; set;} public Guid TargetTaskId {get; set;} protected UnitModel(string name) { Name = name; var random = new Random(); Academic = random.Next(PropertyValue.Min, PropertyValue.Max); Engineering = random.Next(PropertyValue.Min, PropertyValue.Max); Writing = random.Next(PropertyValue.Min, PropertyValue.Max); Financial = random.Next(PropertyValue.Min, PropertyValue.Max); Social = random.Next(PropertyValue.Min, PropertyValue.Max); Activation = random.Next(PropertyValue.Min, PropertyValue.Max); } }