using UnityEngine; using Colosseum.Abnormalities; using Colosseum.Combat; namespace Colosseum.Skills.Effects { /// /// 이상상태와 위협 생성 배율을 함께 적용하는 자기 강화 효과입니다. /// 탱킹 스킬의 방어/위협 유지 용도로 사용합니다. /// [CreateAssetMenu(fileName = "CombatBuffEffect", menuName = "Colosseum/Skills/Effects/Combat Buff")] public class CombatBuffEffect : SkillEffect { [Header("Buff")] [Tooltip("적용할 이상상태 데이터")] [SerializeField] private AbnormalityData abnormalityData; [Tooltip("함께 적용할 위협 생성 배율")] [Min(0f)] [SerializeField] private float threatMultiplier = 1f; [Tooltip("위협 생성 배율 지속 시간")] [Min(0f)] [SerializeField] private float threatMultiplierDuration = 0f; protected override void ApplyEffect(GameObject caster, GameObject target) { if (target == null) return; ApplyAbnormality(target, caster); ApplyThreatMultiplier(target); } private void ApplyAbnormality(GameObject target, GameObject caster) { if (abnormalityData == null) return; AbnormalityManager abnormalityManager = target.GetComponent(); if (abnormalityManager == null) return; abnormalityManager.ApplyAbnormality(abnormalityData, caster); } private void ApplyThreatMultiplier(GameObject target) { if (threatMultiplier <= 0f || threatMultiplierDuration <= 0f) return; ThreatController threatController = target.GetComponent(); if (threatController == null) { threatController = target.AddComponent(); } threatController.ApplyThreatMultiplier(threatMultiplier, threatMultiplierDuration); } } }