- 组合式单位与数值基础重构:scripts/Models/UnitModel.cs, scripts/Models/UnitComponents.cs, scripts/Models/StudentModel.cs, scripts/Models/MentorModel.cs, scripts/Models/StaffModel.cs, scripts/Models/PropertyValue.cs, scripts/Models/StatusValue.cs - 任务与运行时状态骨架:scripts/Models/Task.cs, scripts/Models/TaskDefinitions.cs, scripts/Models/GameState.cs - 配置与规则定义骨架:scripts/Models/DefinitionSupport.cs, scripts/Models/DomainEnums.cs, scripts/Models/Modifiers.cs, scripts/Models/DisciplineDefinitions.cs, scripts/Models/SynergyDefinitions.cs, scripts/Models/ItemDefinitions.cs, scripts/Models/PaperDefinitions.cs, scripts/Models/RogueliteDefinitions.cs, scripts/Models/GameContentDatabase.cs, scripts/Models/CoreIds.cs - MVC/会话/系统/i18n/Mod 支撑:scripts/Core/GameSession.cs, scripts/Core/GameSystems.cs, scripts/Core/GameController.cs, scripts/Core/Mvc.cs, scripts/Core/LocalizationService.cs, scripts/Core/ContentRegistry.cs, scripts/Core/ModManifest.cs, scripts/Core/EventBus.cs - 主控流程衔接:scripts/GameManager.cs
48 lines
1.1 KiB
C#
48 lines
1.1 KiB
C#
using System;
|
|
|
|
namespace Models;
|
|
|
|
/// <summary>
|
|
/// 雇员/合作人数据模型 (StaffModel)
|
|
/// 设计说明:
|
|
/// 1) 覆盖“博后/小老师”等非学生角色,强调长期合作与野心值。
|
|
/// 2) 继续复用 UnitModel 组件,保证与学生/导师统一的数据接口。
|
|
/// 注意事项:
|
|
/// - Staff 行为逻辑应由系统层决定(例如背刺/跳槽)。
|
|
/// 未来扩展:
|
|
/// - 可加入“合作者关系网”和“派系归属”。
|
|
/// </summary>
|
|
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);
|
|
}
|
|
|