using UnityEngine; using Colosseum.Abnormalities; namespace Colosseum.Skills.Effects { /// /// 이상 상태 효과 /// AbnormalityManager를 통해 대상에게 이상 상태를 적용합니다. /// [CreateAssetMenu(fileName = "AbnormalityEffect", menuName = "Colosseum/Skills/Effects/Abnormality")] public class AbnormalityEffect : SkillEffect { [Header("Abnormality")] [Tooltip("적용할 이상 상태 데이터")] [SerializeField] private AbnormalityData abnormalityData; protected override void ApplyEffect(GameObject caster, GameObject target) { if (target == null) return; if (abnormalityData == null) { Debug.LogWarning($"[AbnormalityEffect] AbnormalityData is not assigned"); return; } var abnormalityManager = target.GetComponent(); if (abnormalityManager == null) { Debug.LogWarning($"[AbnormalityEffect] Target {target.name} has no AbnormalityManager"); return; } abnormalityManager.ApplyAbnormality(abnormalityData, caster); Debug.Log($"[AbnormalityEffect] Applied {abnormalityData.abnormalityName} to {target.name} from {caster?.name ?? "unknown"}"); } /// /// 이상 상태 데이터 설정 (런타임용) /// public void SetAbnormalityData(AbnormalityData data) { abnormalityData = data; } } }