- 组合式单位与数值基础重构: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
45 lines
1.6 KiB
C#
45 lines
1.6 KiB
C#
using System;
|
||
|
||
namespace Models;
|
||
|
||
/// <summary>
|
||
/// UnitModel(组合式数据容器)
|
||
/// 设计说明:
|
||
/// 1) 该类不再是“基类”,而是用于聚合组件的纯数据对象。
|
||
/// 2) 这样 Student/Mentor/Staff 可以按需组合组件,避免继承链的耦合。
|
||
/// 3) 任何业务逻辑应放在 System/Controller 层,Model 保持可序列化、可测试。
|
||
/// 注意事项:
|
||
/// - 不引用 Godot 类型,保证与视图层隔离。
|
||
/// - 通过 Name 属性提供便捷访问,便于旧代码过渡。
|
||
/// 未来扩展:
|
||
/// - 可以增加“能力衰减/成长曲线”等组件,而不影响现有对象结构。
|
||
/// - 可引入“只读快照”用于回放/结算等需求。
|
||
/// </summary>
|
||
public sealed class UnitModel
|
||
{
|
||
public UnitComponents.UnitIdentity Identity { get; }
|
||
public UnitComponents.UnitAttributes Attributes { get; }
|
||
public UnitComponents.UnitStatuses Statuses { get; }
|
||
public UnitComponents.UnitTags Tags { get; }
|
||
public UnitComponents.UnitAssignment Assignment { get; }
|
||
public UnitComponents.UnitPlacement Placement { get; }
|
||
public UnitComponents.UnitEquipment Equipment { get; }
|
||
|
||
public string Name
|
||
{
|
||
get => Identity.Name;
|
||
set => Identity.Name = value;
|
||
}
|
||
|
||
public UnitModel(string name, Random random = null)
|
||
{
|
||
Identity = new UnitComponents.UnitIdentity(name);
|
||
Attributes = new UnitComponents.UnitAttributes(random);
|
||
Statuses = new UnitComponents.UnitStatuses();
|
||
Tags = new UnitComponents.UnitTags();
|
||
Assignment = new UnitComponents.UnitAssignment();
|
||
Placement = new UnitComponents.UnitPlacement();
|
||
Equipment = new UnitComponents.UnitEquipment();
|
||
}
|
||
}
|