using System; using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; namespace Ichni.Story { /// /// StoryData 编辑期的互斥路线声明。 /// 本类不会参与运行时条件求值:路线的开放与禁用仍只由 StoryBlockDefinition 中的 /// Unlock Condition / Forbidden Condition 控制。它的唯一职责是让 Validate Story Data 能够 /// 对“多个结局只能完成一个”的人工配置意图进行可定位检查。 /// [Serializable] [InlineProperty] [HideReferenceObjectPicker] public class StoryRouteValidationGroup { [HorizontalGroup("Identity", 0.34f)] [LabelText("Group ID")] [LabelWidth(58)] [Tooltip("仅用于编辑器验证与日志定位的稳定 ID。使用小写英文、数字和下划线,例如 chapter0_ending。")] public string groupId; [HorizontalGroup("Identity")] [LabelText("Terminal Blocks")] [Tooltip("同一互斥结局组中的终点 Block ID。Validate Story Data 会检查它们是否存在、是否重复、是否为图终点,以及是否配置 Forbidden Condition。")] public List terminalBlockIds = new List(); } }