using UnityEngine; using Colosseum.Stats; namespace Colosseum.Enemy { /// /// 적 캐릭터 데이터. 기본 스탯과 보상을 정의합니다. /// [CreateAssetMenu(fileName = "NewEnemyData", menuName = "Colosseum/Enemy Data")] public class EnemyData : ScriptableObject { [Header("기본 정보")] [SerializeField] private string enemyName; [TextArea(2, 4)] [SerializeField] private string description; [SerializeField] private Sprite icon; [Header("기본 스탯")] [Min(1f)] [SerializeField] private float baseStrength = 10f; [Min(1f)] [SerializeField] private float baseDexterity = 10f; [Min(1f)] [SerializeField] private float baseIntelligence = 10f; [Min(1f)] [SerializeField] private float baseVitality = 10f; [Min(1f)] [SerializeField] private float baseWisdom = 10f; [Min(1f)] [SerializeField] private float baseSpirit = 10f; [Header("이동")] [Min(0f)] [SerializeField] private float moveSpeed = 3f; [Min(0f)] [SerializeField] private float rotationSpeed = 10f; [Header("전투")] [Min(0f)] [SerializeField] private float aggroRange = 10f; [Min(0f)] [SerializeField] private float attackRange = 2f; [Min(0f)] [SerializeField] private float attackCooldown = 1f; // Properties public string EnemyName => enemyName; public string Description => description; public Sprite Icon => icon; public float BaseStrength => baseStrength; public float BaseDexterity => baseDexterity; public float BaseIntelligence => baseIntelligence; public float BaseVitality => baseVitality; public float BaseWisdom => baseWisdom; public float BaseSpirit => baseSpirit; public float MoveSpeed => moveSpeed; public float RotationSpeed => rotationSpeed; public float AggroRange => aggroRange; public float AttackRange => attackRange; public float AttackCooldown => attackCooldown; /// /// CharacterStats에 기본 스탯 적용 /// public void ApplyBaseStats(CharacterStats stats) { if (stats == null) return; stats.Strength.BaseValue = baseStrength; stats.Dexterity.BaseValue = baseDexterity; stats.Intelligence.BaseValue = baseIntelligence; stats.Vitality.BaseValue = baseVitality; stats.Wisdom.BaseValue = baseWisdom; stats.Spirit.BaseValue = baseSpirit; } } }