using System; using UnityEngine; using Animancer; using BaseGames.Combat; namespace BaseGames.Boss { /// /// Boss 单个技能的所有数据,包括攻击模式、弱点窗口、互动标签等。 /// [CreateAssetMenu(menuName = "BaseGames/Boss/BossSkill")] public class BossSkillSO : ScriptableObject { [Header("元信息")] [Tooltip("技能唯一标识符(全小写英文 + 下划线,如 'slash_combo'、'phase_dash')。BD_UseBossSkill 通过此 Id 引用")] public string skillId; [Tooltip("编辑器中显示的可读名称,不影响运行逻辑")] public string displayName; [TextArea(1, 4)] [Tooltip("设计备注(仅供编辑器参考,不影响运行)")] public string designNote; [Header("技能分类")] public BossSkillCategory category; public BossSkillType skillType; [Header("阶段可用性")] [Tooltip("空数组 = 全阶段可用")] public int[] availablePhaseIndices; [Header("核心攻击动作引用")] public AttackPatternSO[] attackPatterns; [Header("弱点窗口(至少 1 个)")] public VulnerabilityWindow[] vulnerabilityWindows; [Header("互动标签")] public InteractionTag interactionTags; [Header("连段")] public SkillSequenceSO sequenceOnHit; public SkillSequenceSO sequenceOnMiss; [Header("玩家反制接口")] public PlayerCounterResponse[] counterResponses; [Header("场景联动")] public ArenaEventTrigger[] arenaEvents; [Header("Boss 资源")] public BossResourceCost resourceCost; public bool buildsRage; [Header("霸体配置")] public PoiseWindowConfig poiseWindow; [Header("动画")] public ClipTransition skillAnimation; [Header("冷却")] [Min(0f)] public float cooldown; [Header("权重随机(UseBossSkillWeighted 使用)")] [Tooltip("相对权重,数值越大被随机选中的概率越高;0 = 禁用随机选择")] [Min(0f)] public float weight = 1f; } }