using System; using UnityEngine; using Colosseum.Skills; using Colosseum.Stats; namespace Colosseum.Passives { /// /// 패시브 노드의 개별 효과 정의입니다. /// [Serializable] public class PassiveEffectEntry { [Tooltip("패시브 효과 종류")] [SerializeField] private PassiveEffectType effectType = PassiveEffectType.StatModifier; [Tooltip("스탯 수정자일 때 대상 스탯")] [SerializeField] private StatType statType = StatType.Vitality; [Tooltip("스탯 수정자일 때 적용 방식")] [SerializeField] private StatModType modType = StatModType.PercentAdd; [Tooltip("효과 값")] [SerializeField] private float value = 1f; [Tooltip("스킬 역할에 따른 제한이 필요한 경우 사용")] [SerializeField] private SkillRoleType skillRoleMask = SkillRoleType.All; public PassiveEffectType EffectType => effectType; public StatType StatType => statType; public StatModType ModType => modType; public float Value => value; public SkillRoleType SkillRoleMask => skillRoleMask; /// /// 이 효과가 현재 스킬에 적용 가능한지 확인합니다. /// public bool AppliesToSkill(SkillData skill) { if (skillRoleMask == SkillRoleType.None || skillRoleMask == SkillRoleType.All) return true; if (skill == null) return false; return (skillRoleMask & skill.SkillRole) != 0; } } }