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;
}
}
}