supervisor-simulator/scripts/Models/DefinitionSupport.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

33 lines
1.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections.Generic;
namespace Models;
/// <summary>
/// 定义数据的通用结构i18n + 标识 + 标签)
/// 设计说明:
/// 1) LocalizedText 只保存 Key/Fallback不做翻译翻译交给服务层。
/// 2) DefinitionHeader 用组合而非继承,避免所有定义都挂在同一基类。
/// 3) Tags 统一用 string Id便于 Mod 增删与过滤。
/// 注意事项:
/// - 资源路径统一使用 res:// 且小写下划线。
/// - Id 建议使用 “namespace:name” 形式,例如 “core:discipline_biology”。
/// 未来扩展:
/// - 可加入 Icon/Color/SortOrder 以支持 UI 排序与分组。
/// - 可加入 Source/Version 字段用于 Mod 冲突排查。
/// </summary>
public sealed class LocalizedText
{
public string Key { get; set; }
public string Fallback { get; set; }
}
public sealed class DefinitionHeader
{
public string Id { get; set; }
public LocalizedText Name { get; set; } = new();
public LocalizedText Description { get; set; } = new();
public string IconPath { get; set; }
public List<string> Tags { get; } = new();
}