using UnityEngine; using Colosseum.Abnormalities; using Colosseum.Combat; using Colosseum.Skills; namespace Colosseum.Skills.Effects { /// /// 이상 상태 효과. /// AbnormalityManager를 통해 대상에게 이상 상태를 적용하며, /// 버프 적용 시 적에게 위협을 생성할 수 있습니다. /// [CreateAssetMenu(fileName = "AbnormalityEffect", menuName = "Colosseum/Skills/Effects/Abnormality")] public class AbnormalityEffect : SkillEffect { [Header("Abnormality")] [Tooltip("적용할 이상 상태 데이터")] [SerializeField] private AbnormalityData abnormalityData; [Header("Threat")] [Tooltip("버프 적용 시 생성할 고정 위협 수치")] [Min(0f)] [SerializeField] private float flatThreatAmount = 5f; [Tooltip("위협을 생성할 반경 (시전자 기준)")] [Min(0f)] [SerializeField] private float threatRadius = 50f; protected override void ApplyEffect(GameObject caster, GameObject target) { if (target == null) return; if (abnormalityData == null) return; var abnormalityManager = target.GetComponent(); if (abnormalityManager == null) return; abnormalityManager.ApplyAbnormality(abnormalityData, caster); // 위협 생성: 고정 수치 if (flatThreatAmount > 0f) { ThreatUtility.GenerateThreatOnNearbyEnemies(caster, flatThreatAmount, threatRadius); } } /// /// 이상 상태 데이터 설정 (런타임용) /// public void SetAbnormalityData(AbnormalityData data) { abnormalityData = data; } } }