using UnityEngine; namespace Colosseum.Stats { /// /// 캐릭터 스탯 관리 컴포넌트. /// 6개 기본 스탯과 파생 스탯을 관리. /// public class CharacterStats : MonoBehaviour { [Header("기본 스탯")] [SerializeField] private CharacterStat strength = new CharacterStat(10f); [SerializeField] private CharacterStat dexterity = new CharacterStat(10f); [SerializeField] private CharacterStat intelligence = new CharacterStat(10f); [SerializeField] private CharacterStat vitality = new CharacterStat(10f); [SerializeField] private CharacterStat wisdom = new CharacterStat(10f); [SerializeField] private CharacterStat spirit = new CharacterStat(10f); // 기본 스탯 접근자 public CharacterStat Strength => strength; public CharacterStat Dexterity => dexterity; public CharacterStat Intelligence => intelligence; public CharacterStat Vitality => vitality; public CharacterStat Wisdom => wisdom; public CharacterStat Spirit => spirit; // 파생 스탯 프로퍼티 // 최대 체력 = VIT * 10 public float MaxHealth => vitality.FinalValue * 10f; // 최대 마나 = SPI * 5 public float MaxMana => spirit.FinalValue * 5f; // 물리 대미지 = STR * 2 public float PhysicalDamage => strength.FinalValue * 2f; // 마법 대미지 = INT * 2 public float MagicDamage => intelligence.FinalValue * 2f; // 회복력 = WIS * 1.5 public float HealPower => wisdom.FinalValue * 1.5f; /// /// 스탯 타입으로 CharacterStat 가져오기 /// public CharacterStat GetStat(StatType statType) { return statType switch { StatType.Strength => strength, StatType.Dexterity => dexterity, StatType.Intelligence => intelligence, StatType.Vitality => vitality, StatType.Wisdom => wisdom, StatType.Spirit => spirit, _ => null, }; } } }