using UnityEngine; using Animancer; using BaseGames.Combat; namespace BaseGames.Skills { /// /// 技能资源消耗类型。 /// public enum SkillResourceType { SoulPower, SpiritPower } /// /// 技能效果类型(决定施放时执行的逻辑分支)。 /// public enum SkillEffectType { MeleeAoE, Projectile, BarrierAura, GroundDive, DragonKick, WraithDash, ShadowDecoy, DelayedExplosion } /// /// 反馈预设 SO(FeedbackPresetSO),封装一组 MMF_Player 反馈配置。 /// [CreateAssetMenu(menuName = "Skills/FeedbackPreset")] public class FeedbackPresetSO : ScriptableObject { } /// /// 形态技能数据 SO(架构 09_ProgressionModule §8)。 /// 路径: Assets/Scripts/Skills/FormSkillSO.cs /// [CreateAssetMenu(menuName = "Skills/FormSkill")] public class FormSkillSO : ScriptableObject { [Header("Identity")] public string skillId; public string displayNameKey; [TextArea(1, 3)] public string descriptionKey; public Sprite icon; [Header("Resource")] public SkillResourceType resourceType; public int baseCost; public float cooldown; [Header("Animation")] public ClipTransition castAnimation; public float castLockDuration; // 施放锁定时长(秒) [Header("Effect")] public SkillEffectType effectType; public DamageSourceSO damageSource; [Header("Projectile")] public ProjectileConfigSO projectileConfig; public bool isHoming; public bool holdForContinuous; [Header("Dash")] public float dashForce; public float dashDuration; public bool isInvincibleDuringDash; [Header("Explosion")] public float explosionDelay; public float explosionRadius; [Header("Feedback")] public FeedbackPresetSO castFeedback; [Header("HitBox Prefab")] /// /// 近战/爆炸技能的命中盒 Prefab,内含 SkillHitBoxInstance + HitBox。 /// 投射物技能此字段留空——由 ProjectileConfigSO 负责。 /// 命名规范: Assets/Prefabs/Skills/SKL_{skillId}_HitBox.prefab /// public GameObject SkillHitBoxPrefab; } }