supervisor-simulator/scripts/Models/MentorModel.cs
wjsjwr b8fecd080f 已把模型层改成组合式结构并补齐 MVC/内容配置骨架:Unit/任务/运行时状态现在通过组件组合,GameManager 作为桥接层改为驱动 GameSession/Controller;同时新增学科/羁绊/装备/任务/肉鸽等定义结构,预留 i18n 与 Mod 内容加载接口。
- 组合式单位与数值基础重构: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
2025-12-31 23:54:31 +08:00

52 lines
1.3 KiB
C#

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